From 6a0e47becb006ac949f9708abb257d194ce0b0cd Mon Sep 17 00:00:00 2001 From: Serhii Pashchenko <11996139+serh11p@users.noreply.github.com> Date: Sun, 22 Nov 2020 19:37:17 +0200 Subject: [PATCH 1/2] Make http requests cancelable --- .../src/taquito-http-utils.ts | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/taquito-http-utils/src/taquito-http-utils.ts b/packages/taquito-http-utils/src/taquito-http-utils.ts index 5c46470d6c..0d5f3503f5 100644 --- a/packages/taquito-http-utils/src/taquito-http-utils.ts +++ b/packages/taquito-http-utils/src/taquito-http-utils.ts @@ -18,6 +18,7 @@ interface HttpRequestOptions { json?: boolean; query?: { [key: string]: any }; headers?: { [key: string]: string }; + signal?: AbortSignal; } export class HttpResponseError implements Error { @@ -85,10 +86,15 @@ export class HttpBackend { * @param options contains options to be passed for the HTTP request (url, method and timeout) */ createRequest<T>( - { url, method, timeout, query, headers = {}, json = true }: HttpRequestOptions, + { url, method, timeout, query, headers = {}, json = true, signal }: HttpRequestOptions, data?: {} ) { return new Promise<T>((resolve, reject) => { + const cancel = () => reject(new Error("Request cancelled")); + if (signal && signal.aborted) { + return cancel(); + } + const request = this.createXHR(); request.open(method || 'GET', `${url}${this.serialize(query)}`); request.setRequestHeader('Content-Type', 'application/json'); @@ -127,6 +133,22 @@ export class HttpBackend { request.onerror = function(err) { reject(new HttpRequestFailed(url, err)); }; + + request.onabort = function() { + cancel(); + }; + + if (signal) { + const abort = () => request.abort(); + signal.addEventListener("abort", abort); + + request.onreadystatechange = function() { + if (this.readyState === 4) { + // clean handler after XHR done + signal.removeEventListener("abort", abort); + } + }; + } if (data) { const dataStr = JSON.stringify(data); From 1d4da16fdc40c85cf58fac4c207bb5aed13728d0 Mon Sep 17 00:00:00 2001 From: Michael Kernaghan <michaelkernaghan@ecadlabs.com> Date: Thu, 6 May 2021 07:56:05 -0700 Subject: [PATCH 2/2] Revert "Merge branch 'master' into patch-1" This reverts commit 83304ab31e0b6c4bf771cba6726442ad06723e23, reversing changes made to 6a0e47becb006ac949f9708abb257d194ce0b0cd. --- .github/ISSUE_TEMPLATE/bug.md | 38 - .github/ISSUE_TEMPLATE/feature_request.md | 24 - .github/ISSUE_TEMPLATE/research-design.md | 19 - .github/ISSUE_TEMPLATE/user-story.md | 31 - .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/deploy_edge.yml | 60 - .github/workflows/deploy_website.yml | 23 +- .github/workflows/main.yml | 38 +- .github/workflows/preview_website.yml | 50 - .gitignore | 17 - @nodes/alltypes.d.ts | 2 - README.md | 41 +- SECURITY.md | 3 +- docs/batch-api.md | 33 +- docs/boilerplate.md | 6 +- docs/complex_parameters.md | 46 +- docs/drain_account.md | 210 +- docs/estimate.md | 65 +- docs/inmemory_signer.md | 190 +- docs/lambda_view.md | 105 +- docs/ledger_integration_test.md | 76 +- docs/ledger_signer.md | 181 +- docs/making_transfers.md | 270 +- docs/maps_bigmaps.md | 845 +- docs/metadata-tzip16.md | 291 - docs/michelson_encoder.md | 425 - docs/michelsonmap.md | 221 - docs/originate.md | 280 +- docs/quick_start.md | 28 +- docs/rpc_nodes.md | 36 +- docs/rpc_nodes_integration_test.md | 6 +- docs/rpc_package.md | 12 +- docs/set_delegate.md | 33 +- docs/signing.md | 139 - docs/smartcontracts.md | 53 +- docs/storage_annotations.md | 144 +- docs/tickets.md | 41 - docs/tutorial_links.md | 28 - docs/tzip12.md | 195 - docs/tzip16-sequence-diagram.md | 10 - ...rading_guide.md => v7_breaking_changes.md} | 137 +- docs/validators.md | 100 +- docs/version.md | 319 +- docs/wallet_API.md | 768 +- docs/web3js_taquito.md | 18 +- example/data/knownBigMapContract.ts | 2523 -- example/data/knownContract.ts | 323 - example/deploy-integration-tests-contracts.ts | 78 - example/deploy-lambda-contract.ts | 4 +- ...ample-parallel-bigmap-local-vs-rpc-pack.ts | 96 - ...ple-sequential-bigmap-local-vs-rpc-pack.ts | 87 - .../example-streamer-custom-retry-logic.ts | 39 - example/example-tzip16.ts | 20 - example/package-lock.json | 331 +- example/package.json | 20 +- example/scan-path-ledger.ts | 2 +- integration-tests/README.md | 48 +- integration-tests/batch-api.spec.ts | 19 +- .../call-contract-method-manual-steps.spec.ts | 95 - ...call-get-delegate-when-no-delegate.spec.ts | 20 - integration-tests/config.ts | 149 +- integration-tests/contract-batch.spec.ts | 167 - .../contract-big-map-access-by-index.spec.ts | 33 +- integration-tests/contract-big-map.spec.ts | 5 +- .../contract-collections.spec.ts | 2 +- ...-account-into-new-implicit-account.spec.ts | 55 - .../contract-estimation-tests.spec.ts | 230 +- ...ntract-fetch-multiple-big-map-keys.spec.ts | 81 - ...nager-that-calls-failwith-contract.spec.ts | 5 +- .../contract-michelson-origination.spec.ts | 1 + ...contract-originate-contract-unpair.spec.ts | 137 - ...ct-originate-contract-with-sapling.spec.ts | 51 - .../contract-originate-invalid-string.spec.ts | 10 +- .../contract-pair-as-key.spec.ts | 4 +- .../contract-register-delegate.spec.ts | 28 - .../contract-simple-origination.spec.ts | 4 +- .../contract-tx-wait-2-confirmations.spec.ts | 3 +- .../contract-unit-as-param.spec.ts | 4 +- .../contract-with-bigmap-init.spec.ts | 4 +- .../data/contract-with-never-in-param.ts | 1148 - integration-tests/data/contractWithUnpair.ts | 142 - .../data/fa2-for-token-metadata-view.ts | 1917 -- integration-tests/data/fa2-token-factory.ts | 4738 --- .../data/fa2_contract_with_metadata.ts | 3738 -- .../data/ligo-simple-contract.ts | 107 +- integration-tests/data/metadataViews.ts | 646 - .../data/modified-taco-contract.ts | 127 - integration-tests/data/nft_wallet_tq.ts | 1 - .../edo-deploy-contract-having-ticket.spec.ts | 69 - .../edo-deploy-wallet-having-ticket.spec.ts | 55 - integration-tests/encode-long-numeral.spec.ts | 51 - integration-tests/lambda-view.spec.ts | 14 +- .../ledger-signer-failing-tests.spec.ts | 105 - .../ledger-signer-falling-tests.spec.ts | 100 + integration-tests/ledger-signer.spec.ts | 203 +- integration-tests/local-forging.spec.ts | 34 - .../manager-contract-scenario.spec.ts | 2 +- .../manager-wallet-scenario.spec.ts | 59 - .../multisig-contract-scenario.spec.ts | 6 +- .../multisig-wallet-scenario.spec.ts | 129 - integration-tests/pack.spec.ts | 35 - integration-tests/package-lock.json | 2456 +- integration-tests/package.json | 52 +- .../rpc-get-protocol-constants.spec.ts | 359 - integration-tests/rpc-nodes.spec.ts | 30 +- integration-tests/test-for-type-never.spec.ts | 74 - .../tzip12-token-metadata.spec.ts | 294 - .../tzip16-metadata-view.spec.ts | 106 - .../tzip16-non-compliant-contract.spec.ts | 45 - .../tzip16-non-compliant-wallet.spec.ts | 45 - ...g-metadata-on-IPFS-and-fetch-those.spec.ts | 80 - ...tadata-on-HTTPS-and-fetch-metadata.spec.ts | 191 - ...and-sha256-hash-and-fetch-metadata.spec.ts | 139 - ...adata-on-itself-and-fetch-metadata.spec.ts | 118 - ...tadata-on-HTTPS-and-fetch-metadata.spec.ts | 429 - ...tadata-on-HTTPS-and-fetch-metadata.spec.ts | 429 - ...g-metadata-on-IPFS-and-fetch-those.spec.ts | 80 - ...tadata-on-HTTPS-and-fetch-metadata.spec.ts | 185 - ...adata-on-itself-and-fetch-metadata.spec.ts | 116 - integration-tests/wallet-batch.spec.ts | 196 - integration-tests/wallet-big-map.spec.ts | 77 - integration-tests/wallet-collections.spec.ts | 49 - ...t-empty-delegated-implicit-account.spec.ts | 38 - ...et-empty-revealed-implicit-account.spec.ts | 38 - integration-tests/wallet-failwith.spec.ts | 37 - .../wallet-init-with-empty-bigmap.spec.ts | 30 - .../wallet-ligo-increment-contract.spec.ts | 35 - ...nager-that-calls-failwith-contract.spec.ts | 42 - .../wallet-michelson-origination.spec.ts | 24 - ...allet-no-annotations-call-by-index.spec.ts | 59 - .../wallet-originate-contract-unpair.spec.ts | 128 - ...allet-originate-contract-with-bool.spec.ts | 34 - ...et-originate-contract-with-sapling.spec.ts | 51 - .../wallet-originate-invalid-string.spec.ts | 38 - .../wallet-originate-token-contract.spec.ts | 32 - .../wallet-originate-vote-contract.spec.ts | 35 - ...nation-wrong-order-code-properties.spec.ts | 23 - integration-tests/wallet-pair-as-key.spec.ts | 58 - .../wallet-register-delegate.spec.ts | 36 - .../wallet-set-delegate-auto-estimate.spec.ts | 29 - .../wallet-simple-origination.spec.ts | 28 - .../wallet-tx-wait-2-confirmations.spec.ts | 22 - .../wallet-unit-as-param.spec.ts | 27 - .../wallet-with-bad-code.spec.ts | 23 - .../wallet-with-bigmap-init.spec.ts | 70 - lerna.json | 3 +- package-lock.json | 28093 +++++++++++----- package.json | 20 +- .../taquito-beacon-wallet/package-lock.json | 2138 +- packages/taquito-beacon-wallet/package.json | 31 +- packages/taquito-beacon-wallet/signature.json | 44 +- .../src/taquito-beacon-wallet.ts | 87 +- packages/taquito-beacon-wallet/src/version.ts | 8 - packages/taquito-http-utils/package-lock.json | 1792 +- packages/taquito-http-utils/package.json | 25 +- packages/taquito-http-utils/signature.json | 34 +- .../src/taquito-http-utils.ts | 16 +- packages/taquito-http-utils/src/version.ts | 8 - .../test/taquito-http-utils.spec.ts | 31 - .../taquito-ledger-signer/package-lock.json | 2505 +- packages/taquito-ledger-signer/package.json | 32 +- packages/taquito-ledger-signer/signature.json | 47 +- .../src/taquito-ledger-signer.ts | 227 +- packages/taquito-ledger-signer/src/version.ts | 8 - .../test/taquito-ledger-signer.spec.ts | 6 +- .../taquito-local-forging/package-lock.json | 1932 +- packages/taquito-local-forging/package.json | 27 +- packages/taquito-local-forging/signature.json | 62 +- .../taquito-local-forging/src/constants.ts | 29 +- .../src/michelson/codec.ts | 38 +- .../src/taquito-local-forging.ts | 7 - packages/taquito-local-forging/src/version.ts | 8 - .../test/allTestsCases.ts | 845 - .../test/data/code_with_sapling.ts | 772 - .../test/data/code_with_ticket.ts | 1693 - .../test/taquito-local-forging.spec.ts | 584 +- packages/taquito-michel-codec/README.md | 86 +- .../formatter/formatter.ts | 79 + packages/taquito-michel-codec/michelson.json | 3039 -- .../pack-test-tool/data.json | 462 - .../pack-test-tool/pack-test-tool.js | 34 - .../pack-test-tool/package-lock.json | 121 - .../pack-test-tool/package.json | 16 - .../taquito-michel-codec/package-lock.json | 2746 +- packages/taquito-michel-codec/package.json | 21 +- packages/taquito-michel-codec/signature.json | 82 +- packages/taquito-michel-codec/src/base58.ts | 57 +- packages/taquito-michel-codec/src/binary.ts | 1188 - .../taquito-michel-codec/src/formatters.ts | 12 +- packages/taquito-michel-codec/src/macros.ts | 117 +- .../src/micheline-parser.ts | 116 +- .../taquito-michel-codec/src/micheline.ts | 4 +- .../src/michelson-contract.ts | 46 +- .../src/michelson-typecheck.ts | 2102 +- .../src/michelson-types.ts | 301 +- .../src/michelson-validator.ts | 301 +- .../src/taquito-michel-codec.ts | 8 +- packages/taquito-michel-codec/src/utils.ts | 133 +- packages/taquito-michel-codec/src/version.ts | 8 - .../taquito-michel-codec/test/attic.spec.ts | 955 + .../taquito-michel-codec/test/base58.spec.ts | 56 - .../test/binary-data1.json | 484 - .../test/binary-data2.json | 5222 --- .../taquito-michel-codec/test/binary.spec.ts | 40 - .../test/contract-macros.spec.ts | 565 + .../test/contracts_007.spec.ts | 234 - .../entrypoints/big_map_entrypoints.tz | 31 - .../entrypoints/delegatable_target.tz | 79 - .../test/contracts_007/entrypoints/manager.tz | 31 - .../entrypoints/no_default_target.tz | 11 - .../entrypoints/no_entrypoint_target.tz | 11 - .../entrypoints/rooted_target.tz | 11 - .../entrypoints/simple_entrypoints.tz | 4 - .../test/contracts_007/ill_typed/big_dip.tz | 4 - .../test/contracts_007/ill_typed/big_drop.tz | 4 - .../contracts_007/ill_typed/big_map_arity.tz | 5 - .../contracts_007/ill_typed/chain_id_arity.tz | 3 - .../ill_typed/contract_annotation_default.tz | 11 - .../ill_typed/invalid_self_entrypoint.tz | 10 - .../ill_typed/missing_only_code_field.tz | 2 - .../ill_typed/missing_only_parameter_field.tz | 4 - .../ill_typed/missing_only_storage_field.tz | 4 - .../missing_parameter_and_storage_fields.tz | 3 - .../ill_typed/multiple_code_field.tz | 6 - .../ill_typed/multiple_parameter_field.tz | 6 - .../multiple_storage_and_code_fields.tz | 7 - .../ill_typed/multiple_storage_field.tz | 6 - .../contracts_007/ill_typed/pack_big_map.tz | 7 - .../contracts_007/ill_typed/pack_operation.tz | 20 - .../ill_typed/set_update_non_comparable.tz | 9 - .../test/contracts_007/macros/assert.tz | 3 - .../test/contracts_007/macros/assert_cmpeq.tz | 3 - .../test/contracts_007/macros/assert_cmpge.tz | 3 - .../test/contracts_007/macros/assert_cmpgt.tz | 3 - .../test/contracts_007/macros/assert_cmple.tz | 3 - .../test/contracts_007/macros/assert_cmplt.tz | 3 - .../contracts_007/macros/assert_cmpneq.tz | 3 - .../test/contracts_007/macros/assert_eq.tz | 3 - .../test/contracts_007/macros/assert_ge.tz | 3 - .../test/contracts_007/macros/assert_gt.tz | 3 - .../test/contracts_007/macros/assert_le.tz | 3 - .../test/contracts_007/macros/assert_lt.tz | 3 - .../test/contracts_007/macros/assert_neq.tz | 3 - .../contracts_007/macros/big_map_get_add.tz | 7 - .../test/contracts_007/macros/big_map_mem.tz | 5 - .../test/contracts_007/macros/build_list.tz | 6 - .../test/contracts_007/macros/compare.tz | 9 - .../contracts_007/macros/compare_bytes.tz | 9 - .../test/contracts_007/macros/fail.tz | 5 - .../test/contracts_007/macros/guestbook.tz | 10 - .../contracts_007/macros/macro_annotations.tz | 6 - .../test/contracts_007/macros/map_caddaadr.tz | 4 - .../test/contracts_007/macros/max_in_list.tz | 9 - .../test/contracts_007/macros/min.tz | 11 - .../test/contracts_007/macros/pair_macro.tz | 6 - .../test/contracts_007/macros/set_caddaadr.tz | 5 - .../contracts_007/macros/take_my_money.tz | 9 - .../test/contracts_007/macros/unpair_macro.tz | 9 - .../mini_scenarios/authentication.tz | 30 - .../mini_scenarios/big_map_entrypoints.tz | 31 - .../mini_scenarios/big_map_magic.tz | 41 - .../mini_scenarios/create_contract.tz | 33 - .../mini_scenarios/create_contract_simple.tz | 14 - .../mini_scenarios/default_account.tz | 9 - .../contracts_007/mini_scenarios/hardlimit.tz | 5 - .../contracts_007/mini_scenarios/lockup.tz | 19 - .../mini_scenarios/multiple_en2.tz | 77 - .../multiple_entrypoints_counter.tz | 29 - .../mini_scenarios/parameterized_multisig.tz | 24 - .../contracts_007/mini_scenarios/replay.tz | 7 - .../mini_scenarios/reveal_signed_preimage.tz | 13 - .../mini_scenarios/vote_for_delegate.tz | 30 - .../mini_scenarios/weather_insurance.tz | 19 - .../test/contracts_007/mini_scenarios/xcat.tz | 48 - .../contracts_007/mini_scenarios/xcat_dapp.tz | 79 - .../test/contracts_007/opcodes/abs.tz | 5 - .../test/contracts_007/opcodes/add.tz | 25 - .../opcodes/add_delta_timestamp.tz | 3 - .../opcodes/add_timestamp_delta.tz | 3 - .../test/contracts_007/opcodes/address.tz | 3 - .../test/contracts_007/opcodes/and.tz | 3 - .../test/contracts_007/opcodes/and_binary.tz | 27 - .../contracts_007/opcodes/and_logical_1.tz | 3 - .../test/contracts_007/opcodes/balance.tz | 3 - .../contracts_007/opcodes/big_map_mem_nat.tz | 7 - .../opcodes/big_map_mem_string.tz | 7 - .../contracts_007/opcodes/big_map_to_self.tz | 22 - .../test/contracts_007/opcodes/car.tz | 3 - .../test/contracts_007/opcodes/cdr.tz | 3 - .../test/contracts_007/opcodes/chain_id.tz | 3 - .../contracts_007/opcodes/chain_id_store.tz | 3 - .../contracts_007/opcodes/check_signature.tz | 10 - .../test/contracts_007/opcodes/compare.tz | 52 - .../test/contracts_007/opcodes/comparisons.tz | 15 - .../contracts_007/opcodes/concat_hello.tz | 4 - .../opcodes/concat_hello_bytes.tz | 4 - .../test/contracts_007/opcodes/concat_list.tz | 5 - .../test/contracts_007/opcodes/cons.tz | 3 - .../contracts_007/opcodes/contains_all.tz | 7 - .../test/contracts_007/opcodes/contract.tz | 11 - .../contracts_007/opcodes/create_contract.tz | 14 - .../opcodes/create_contract_rootname.tz | 15 - .../opcodes/create_contract_rootname_alt.tz | 14 - .../contracts_007/opcodes/diff_timestamps.tz | 3 - .../test/contracts_007/opcodes/dig_eq.tz | 14 - .../test/contracts_007/opcodes/dign.tz | 3 - .../test/contracts_007/opcodes/dip.tz | 8 - .../test/contracts_007/opcodes/dipn.tz | 3 - .../test/contracts_007/opcodes/dropn.tz | 3 - .../test/contracts_007/opcodes/dugn.tz | 3 - .../test/contracts_007/opcodes/ediv.tz | 13 - .../test/contracts_007/opcodes/ediv_mutez.tz | 12 - .../test/contracts_007/opcodes/empty_map.tz | 6 - .../test/contracts_007/opcodes/exec_concat.tz | 7 - .../contracts_007/opcodes/failwith_big_map.tz | 19 - .../test/contracts_007/opcodes/first.tz | 3 - .../opcodes/get_big_map_value.tz | 6 - .../contracts_007/opcodes/get_map_value.tz | 3 - .../opcodes/hash_consistency_checker.tz | 3 - .../test/contracts_007/opcodes/hash_key.tz | 3 - .../test/contracts_007/opcodes/hash_string.tz | 3 - .../test/contracts_007/opcodes/if.tz | 3 - .../test/contracts_007/opcodes/if_some.tz | 3 - .../test/contracts_007/opcodes/int.tz | 5 - .../test/contracts_007/opcodes/left_right.tz | 3 - .../test/contracts_007/opcodes/list_concat.tz | 3 - .../opcodes/list_concat_bytes.tz | 3 - .../test/contracts_007/opcodes/list_id.tz | 3 - .../test/contracts_007/opcodes/list_id_map.tz | 3 - .../test/contracts_007/opcodes/list_iter.tz | 5 - .../contracts_007/opcodes/list_map_block.tz | 5 - .../test/contracts_007/opcodes/list_size.tz | 3 - .../test/contracts_007/opcodes/loop_left.tz | 7 - .../test/contracts_007/opcodes/map_car.tz | 5 - .../test/contracts_007/opcodes/map_id.tz | 3 - .../test/contracts_007/opcodes/map_iter.tz | 7 - .../test/contracts_007/opcodes/map_map.tz | 8 - .../opcodes/map_map_sideeffect.tz | 12 - .../test/contracts_007/opcodes/map_mem_nat.tz | 7 - .../contracts_007/opcodes/map_mem_string.tz | 7 - .../test/contracts_007/opcodes/map_size.tz | 3 - .../opcodes/merge_comparable_pairs.tz | 14 - .../test/contracts_007/opcodes/mul.tz | 48 - .../contracts_007/opcodes/mul_overflow.tz | 18 - .../test/contracts_007/opcodes/neg.tz | 8 - .../test/contracts_007/opcodes/none.tz | 3 - .../test/contracts_007/opcodes/noop.tz | 3 - .../test/contracts_007/opcodes/not.tz | 3 - .../test/contracts_007/opcodes/not_binary.tz | 12 - .../test/contracts_007/opcodes/or.tz | 3 - .../test/contracts_007/opcodes/or_binary.tz | 9 - .../test/contracts_007/opcodes/packunpack.tz | 6 - .../contracts_007/opcodes/packunpack_rev.tz | 41 - .../opcodes/packunpack_rev_cty.tz | 31 - .../test/contracts_007/opcodes/pair_id.tz | 3 - .../test/contracts_007/opcodes/pexec.tz | 6 - .../test/contracts_007/opcodes/pexec_2.tz | 11 - .../test/contracts_007/opcodes/proxy.tz | 13 - .../test/contracts_007/opcodes/ret_int.tz | 3 - .../test/contracts_007/opcodes/reverse.tz | 5 - .../contracts_007/opcodes/reverse_loop.tz | 5 - .../test/contracts_007/opcodes/self.tz | 3 - .../opcodes/self_with_default_entrypoint.tz | 19 - .../opcodes/self_with_entrypoint.tz | 26 - .../test/contracts_007/opcodes/sender.tz | 8 - .../test/contracts_007/opcodes/set_car.tz | 3 - .../test/contracts_007/opcodes/set_cdr.tz | 3 - .../contracts_007/opcodes/set_delegate.tz | 9 - .../test/contracts_007/opcodes/set_id.tz | 3 - .../test/contracts_007/opcodes/set_iter.tz | 3 - .../test/contracts_007/opcodes/set_member.tz | 3 - .../test/contracts_007/opcodes/set_size.tz | 3 - .../test/contracts_007/opcodes/shifts.tz | 18 - .../test/contracts_007/opcodes/slice.tz | 5 - .../test/contracts_007/opcodes/slice_bytes.tz | 5 - .../test/contracts_007/opcodes/slices.tz | 11 - .../test/contracts_007/opcodes/source.tz | 10 - .../test/contracts_007/opcodes/split_bytes.tz | 16 - .../contracts_007/opcodes/split_string.tz | 16 - .../test/contracts_007/opcodes/store_input.tz | 3 - .../test/contracts_007/opcodes/store_now.tz | 3 - .../test/contracts_007/opcodes/str_id.tz | 3 - .../opcodes/sub_timestamp_delta.tz | 3 - .../test/contracts_007/opcodes/subset.tz | 12 - .../test/contracts_007/opcodes/tez_add_sub.tz | 5 - .../contracts_007/opcodes/transfer_amount.tz | 3 - .../contracts_007/opcodes/transfer_tokens.tz | 5 - .../contracts_007/opcodes/update_big_map.tz | 6 - .../test/contracts_007/opcodes/xor.tz | 13 - .../test/contracts_008.spec.ts | 312 - .../entrypoints/big_map_entrypoints.tz | 31 - .../entrypoints/delegatable_target.tz | 79 - .../test/contracts_008/entrypoints/manager.tz | 31 - .../entrypoints/no_default_target.tz | 11 - .../entrypoints/no_entrypoint_target.tz | 11 - .../entrypoints/rooted_target.tz | 11 - .../entrypoints/simple_entrypoints.tz | 4 - .../test/contracts_008/ill_typed/big_dip.tz | 4 - .../test/contracts_008/ill_typed/big_drop.tz | 4 - .../contracts_008/ill_typed/big_map_arity.tz | 5 - .../contracts_008/ill_typed/chain_id_arity.tz | 3 - .../test/contracts_008/ill_typed/comb0.tz | 3 - .../test/contracts_008/ill_typed/comb1.tz | 3 - .../ill_typed/contract_annotation_default.tz | 11 - .../test/contracts_008/ill_typed/dup0.tz | 3 - .../ill_typed/failwith_big_map.tz | 22 - .../ill_typed/invalid_self_entrypoint.tz | 10 - .../ill_typed/missing_only_code_field.tz | 2 - .../ill_typed/missing_only_parameter_field.tz | 4 - .../ill_typed/missing_only_storage_field.tz | 4 - .../missing_parameter_and_storage_fields.tz | 3 - .../ill_typed/multiple_code_field.tz | 6 - .../ill_typed/multiple_parameter_field.tz | 6 - .../multiple_storage_and_code_fields.tz | 7 - .../ill_typed/multiple_storage_field.tz | 6 - .../contracts_008/ill_typed/never_literal.tz | 6 - .../contracts_008/ill_typed/pack_big_map.tz | 7 - .../contracts_008/ill_typed/pack_operation.tz | 20 - .../ill_typed/pack_sapling_state.tz | 13 - .../push_big_map_with_id_with_parens.tz | 10 - .../push_big_map_with_id_without_parens.tz | 11 - ...ng_build_empty_state_with_int_parameter.tz | 10 - .../ill_typed/set_update_non_comparable.tz | 9 - .../contracts_008/ill_typed/ticket_apply.tz | 17 - .../contracts_008/ill_typed/ticket_dup.tz | 3 - .../ill_typed/ticket_in_ticket.tz | 16 - .../contracts_008/ill_typed/ticket_unpack.tz | 5 - .../test/contracts_008/ill_typed/uncomb0.tz | 3 - .../test/contracts_008/ill_typed/uncomb1.tz | 3 - .../ill_typed/unpack_sapling_state.tz | 12 - .../unpair_field_annotation_mismatch.tz | 10 - .../test/contracts_008/macros/assert.tz | 3 - .../test/contracts_008/macros/assert_cmpeq.tz | 3 - .../test/contracts_008/macros/assert_cmpge.tz | 3 - .../test/contracts_008/macros/assert_cmpgt.tz | 3 - .../test/contracts_008/macros/assert_cmple.tz | 3 - .../test/contracts_008/macros/assert_cmplt.tz | 3 - .../contracts_008/macros/assert_cmpneq.tz | 3 - .../test/contracts_008/macros/assert_eq.tz | 3 - .../test/contracts_008/macros/assert_ge.tz | 3 - .../test/contracts_008/macros/assert_gt.tz | 3 - .../test/contracts_008/macros/assert_le.tz | 3 - .../test/contracts_008/macros/assert_lt.tz | 3 - .../test/contracts_008/macros/assert_neq.tz | 3 - .../contracts_008/macros/big_map_get_add.tz | 7 - .../test/contracts_008/macros/big_map_mem.tz | 5 - .../test/contracts_008/macros/build_list.tz | 6 - .../contracts_008/macros/carn_and_cdrn.tz | 26 - .../test/contracts_008/macros/compare.tz | 9 - .../contracts_008/macros/compare_bytes.tz | 9 - .../test/contracts_008/macros/fail.tz | 5 - .../test/contracts_008/macros/guestbook.tz | 10 - .../contracts_008/macros/macro_annotations.tz | 6 - .../test/contracts_008/macros/map_caddaadr.tz | 4 - .../test/contracts_008/macros/max_in_list.tz | 9 - .../test/contracts_008/macros/min.tz | 11 - .../test/contracts_008/macros/pair_macro.tz | 6 - .../test/contracts_008/macros/set_caddaadr.tz | 5 - .../contracts_008/macros/take_my_money.tz | 9 - .../test/contracts_008/macros/unpair_macro.tz | 9 - .../mini_scenarios/authentication.tz | 30 - .../mini_scenarios/big_map_entrypoints.tz | 31 - .../mini_scenarios/big_map_magic.tz | 41 - .../mini_scenarios/big_map_read.tz | 9 - .../mini_scenarios/big_map_store.tz | 8 - .../mini_scenarios/big_map_write.tz | 10 - .../mini_scenarios/create_contract.tz | 33 - .../mini_scenarios/create_contract_simple.tz | 14 - .../mini_scenarios/default_account.tz | 9 - .../contracts_008/mini_scenarios/groth16.tz | 74 - .../contracts_008/mini_scenarios/hardlimit.tz | 5 - .../contracts_008/mini_scenarios/lockup.tz | 19 - .../mini_scenarios/multiple_en2.tz | 77 - .../multiple_entrypoints_counter.tz | 29 - .../mini_scenarios/parameterized_multisig.tz | 24 - .../contracts_008/mini_scenarios/replay.tz | 7 - .../mini_scenarios/reveal_signed_preimage.tz | 13 - .../mini_scenarios/self_address_receiver.tz | 12 - .../mini_scenarios/self_address_sender.tz | 17 - .../mini_scenarios/ticket_builder_fungible.tz | 40 - .../ticket_builder_non_fungible.tz | 47 - .../mini_scenarios/ticket_wallet_fungible.tz | 88 - .../ticket_wallet_non_fungible.tz | 61 - .../mini_scenarios/vote_for_delegate.tz | 30 - .../mini_scenarios/weather_insurance.tz | 19 - .../test/contracts_008/mini_scenarios/xcat.tz | 48 - .../contracts_008/mini_scenarios/xcat_dapp.tz | 79 - .../test/contracts_008/opcodes/abs.tz | 5 - .../test/contracts_008/opcodes/add.tz | 25 - .../contracts_008/opcodes/add_bls12_381_fr.tz | 3 - .../contracts_008/opcodes/add_bls12_381_g1.tz | 3 - .../contracts_008/opcodes/add_bls12_381_g2.tz | 3 - .../opcodes/add_delta_timestamp.tz | 3 - .../opcodes/add_timestamp_delta.tz | 3 - .../test/contracts_008/opcodes/address.tz | 3 - .../test/contracts_008/opcodes/and.tz | 3 - .../test/contracts_008/opcodes/and_binary.tz | 27 - .../contracts_008/opcodes/and_logical_1.tz | 3 - .../test/contracts_008/opcodes/balance.tz | 3 - .../contracts_008/opcodes/big_map_mem_nat.tz | 7 - .../opcodes/big_map_mem_string.tz | 7 - .../contracts_008/opcodes/big_map_to_self.tz | 22 - .../bls12_381_fr_push_bytes_not_padded.tz | 9 - .../opcodes/bls12_381_fr_push_nat.tz | 9 - .../opcodes/bls12_381_fr_to_int.tz | 8 - .../opcodes/bls12_381_fr_to_mutez.tz | 12 - .../opcodes/bls12_381_fr_z_int.tz | 8 - .../opcodes/bls12_381_fr_z_nat.tz | 8 - .../opcodes/bls12_381_z_fr_int.tz | 9 - .../opcodes/bls12_381_z_fr_nat.tz | 9 - .../test/contracts_008/opcodes/car.tz | 3 - .../test/contracts_008/opcodes/cdr.tz | 3 - .../test/contracts_008/opcodes/chain_id.tz | 3 - .../contracts_008/opcodes/chain_id_store.tz | 3 - .../contracts_008/opcodes/check_signature.tz | 10 - .../test/contracts_008/opcodes/comb-get.tz | 27 - .../test/contracts_008/opcodes/comb-set-2.tz | 10 - .../test/contracts_008/opcodes/comb-set.tz | 10 - .../test/contracts_008/opcodes/comb.tz | 9 - .../test/contracts_008/opcodes/compare.tz | 52 - .../contracts_008/opcodes/compare_big_type.tz | 20 - .../opcodes/compare_big_type2.tz | 22 - .../test/contracts_008/opcodes/comparisons.tz | 15 - .../contracts_008/opcodes/concat_hello.tz | 4 - .../opcodes/concat_hello_bytes.tz | 4 - .../test/contracts_008/opcodes/concat_list.tz | 5 - .../test/contracts_008/opcodes/cons.tz | 3 - .../contracts_008/opcodes/contains_all.tz | 7 - .../test/contracts_008/opcodes/contract.tz | 11 - .../contracts_008/opcodes/create_contract.tz | 14 - .../opcodes/create_contract_rootname.tz | 15 - .../opcodes/create_contract_rootname_alt.tz | 14 - .../contracts_008/opcodes/diff_timestamps.tz | 3 - .../test/contracts_008/opcodes/dig_eq.tz | 14 - .../test/contracts_008/opcodes/dign.tz | 3 - .../test/contracts_008/opcodes/dip.tz | 8 - .../test/contracts_008/opcodes/dipn.tz | 3 - .../test/contracts_008/opcodes/dropn.tz | 3 - .../test/contracts_008/opcodes/dugn.tz | 3 - .../test/contracts_008/opcodes/dup-n.tz | 18 - .../test/contracts_008/opcodes/ediv.tz | 13 - .../test/contracts_008/opcodes/ediv_mutez.tz | 12 - .../test/contracts_008/opcodes/empty_map.tz | 6 - .../test/contracts_008/opcodes/exec_concat.tz | 7 - .../test/contracts_008/opcodes/first.tz | 3 - .../opcodes/get_and_update_big_map.tz | 9 - .../opcodes/get_and_update_map.tz | 9 - .../opcodes/get_big_map_value.tz | 6 - .../contracts_008/opcodes/get_map_value.tz | 3 - .../opcodes/hash_consistency_checker.tz | 3 - .../test/contracts_008/opcodes/hash_key.tz | 3 - .../test/contracts_008/opcodes/hash_string.tz | 3 - .../test/contracts_008/opcodes/if.tz | 3 - .../test/contracts_008/opcodes/if_some.tz | 3 - .../test/contracts_008/opcodes/int.tz | 5 - .../test/contracts_008/opcodes/keccak.tz | 8 - .../test/contracts_008/opcodes/left_right.tz | 3 - .../test/contracts_008/opcodes/level.tz | 3 - .../test/contracts_008/opcodes/list_concat.tz | 3 - .../opcodes/list_concat_bytes.tz | 3 - .../test/contracts_008/opcodes/list_id.tz | 3 - .../test/contracts_008/opcodes/list_id_map.tz | 3 - .../test/contracts_008/opcodes/list_iter.tz | 5 - .../contracts_008/opcodes/list_map_block.tz | 5 - .../test/contracts_008/opcodes/list_size.tz | 3 - .../test/contracts_008/opcodes/loop_left.tz | 7 - .../test/contracts_008/opcodes/map_car.tz | 5 - .../test/contracts_008/opcodes/map_id.tz | 3 - .../test/contracts_008/opcodes/map_iter.tz | 7 - .../test/contracts_008/opcodes/map_map.tz | 8 - .../opcodes/map_map_sideeffect.tz | 12 - .../test/contracts_008/opcodes/map_mem_nat.tz | 7 - .../contracts_008/opcodes/map_mem_string.tz | 7 - .../test/contracts_008/opcodes/map_size.tz | 3 - .../opcodes/merge_comparable_pairs.tz | 14 - .../test/contracts_008/opcodes/mul.tz | 48 - .../contracts_008/opcodes/mul_bls12_381_fr.tz | 3 - .../contracts_008/opcodes/mul_bls12_381_g1.tz | 3 - .../contracts_008/opcodes/mul_bls12_381_g2.tz | 3 - .../contracts_008/opcodes/mul_overflow.tz | 18 - .../opcodes/mutez_to_bls12_381_fr.tz | 14 - .../test/contracts_008/opcodes/neg.tz | 8 - .../contracts_008/opcodes/neg_bls12_381_fr.tz | 3 - .../contracts_008/opcodes/neg_bls12_381_g1.tz | 3 - .../contracts_008/opcodes/neg_bls12_381_g2.tz | 3 - .../test/contracts_008/opcodes/none.tz | 3 - .../test/contracts_008/opcodes/noop.tz | 3 - .../test/contracts_008/opcodes/not.tz | 3 - .../test/contracts_008/opcodes/not_binary.tz | 12 - .../test/contracts_008/opcodes/or.tz | 3 - .../test/contracts_008/opcodes/or_binary.tz | 9 - .../opcodes/originate_big_map.tz | 3 - .../test/contracts_008/opcodes/packunpack.tz | 6 - .../contracts_008/opcodes/packunpack_rev.tz | 43 - .../opcodes/packunpack_rev_cty.tz | 31 - .../test/contracts_008/opcodes/pair_id.tz | 3 - .../contracts_008/opcodes/pairing_check.tz | 3 - .../test/contracts_008/opcodes/pexec.tz | 6 - .../test/contracts_008/opcodes/pexec_2.tz | 11 - .../test/contracts_008/opcodes/proxy.tz | 13 - .../test/contracts_008/opcodes/ret_int.tz | 3 - .../test/contracts_008/opcodes/reverse.tz | 5 - .../contracts_008/opcodes/reverse_loop.tz | 5 - .../opcodes/sapling_empty_state.tz | 3 - .../test/contracts_008/opcodes/self.tz | 3 - .../contracts_008/opcodes/self_address.tz | 11 - .../opcodes/self_with_default_entrypoint.tz | 19 - .../opcodes/self_with_entrypoint.tz | 26 - .../test/contracts_008/opcodes/sender.tz | 8 - .../test/contracts_008/opcodes/set_car.tz | 3 - .../test/contracts_008/opcodes/set_cdr.tz | 3 - .../contracts_008/opcodes/set_delegate.tz | 9 - .../test/contracts_008/opcodes/set_id.tz | 3 - .../test/contracts_008/opcodes/set_iter.tz | 3 - .../test/contracts_008/opcodes/set_member.tz | 3 - .../test/contracts_008/opcodes/set_size.tz | 3 - .../test/contracts_008/opcodes/sha3.tz | 8 - .../test/contracts_008/opcodes/shifts.tz | 18 - .../test/contracts_008/opcodes/slice.tz | 5 - .../test/contracts_008/opcodes/slice_bytes.tz | 5 - .../test/contracts_008/opcodes/slices.tz | 11 - .../test/contracts_008/opcodes/source.tz | 10 - .../test/contracts_008/opcodes/split_bytes.tz | 16 - .../contracts_008/opcodes/split_string.tz | 16 - .../opcodes/store_bls12_381_fr.tz | 3 - .../opcodes/store_bls12_381_g1.tz | 3 - .../opcodes/store_bls12_381_g2.tz | 3 - .../test/contracts_008/opcodes/store_input.tz | 3 - .../test/contracts_008/opcodes/store_now.tz | 3 - .../test/contracts_008/opcodes/str_id.tz | 3 - .../opcodes/sub_timestamp_delta.tz | 3 - .../test/contracts_008/opcodes/subset.tz | 12 - .../test/contracts_008/opcodes/tez_add_sub.tz | 5 - .../test/contracts_008/opcodes/ticket_bad.tz | 5 - .../contracts_008/opcodes/ticket_big_store.tz | 3 - .../test/contracts_008/opcodes/ticket_join.tz | 7 - .../test/contracts_008/opcodes/ticket_read.tz | 8 - .../contracts_008/opcodes/ticket_split.tz | 11 - .../contracts_008/opcodes/ticket_store-2.tz | 3 - .../contracts_008/opcodes/ticket_store.tz | 3 - .../test/contracts_008/opcodes/ticketer-2.tz | 9 - .../test/contracts_008/opcodes/ticketer.tz | 10 - .../contracts_008/opcodes/transfer_amount.tz | 3 - .../contracts_008/opcodes/transfer_tokens.tz | 5 - .../test/contracts_008/opcodes/uncomb.tz | 8 - .../test/contracts_008/opcodes/unpair.tz | 71 - .../contracts_008/opcodes/update_big_map.tz | 6 - .../test/contracts_008/opcodes/utxo_read.tz | 9 - .../test/contracts_008/opcodes/utxor.tz | 24 - .../contracts_008/opcodes/voting_power.tz | 7 - .../test/contracts_008/opcodes/xor.tz | 13 - .../test/entrypoints.spec.ts | 260 + .../taquito-michel-codec/test/macros.spec.ts | 164 +- .../test/mini-scenarios.spec.ts | 701 + .../taquito-michel-codec/test/opcodes.spec.ts | 2183 ++ .../test/typecheck.spec.ts | 154 +- packages/taquito-michel-codec/tslint.json | 3 +- .../data/sample17.ts | 153 - .../data/sample18_ticket.ts | 494 - .../data/sample19_sapling.ts | 1047 - .../data/sample19_timestamp_ticket.ts | 2682 -- .../package-lock.json | 1932 +- .../taquito-michelson-encoder/package.json | 29 +- .../taquito-michelson-encoder/signature.json | 86 +- .../taquito-michelson-encoder/src/errors.ts | 2 - .../src/schema/storage.ts | 66 +- .../src/taquito-michelson-encoder.ts | 8 +- .../src/tokens/comparable/int.ts | 18 +- .../src/tokens/comparable/mutez.ts | 14 +- .../src/tokens/comparable/nat.ts | 18 +- .../src/tokens/createToken.ts | 7 +- .../src/tokens/lambda.ts | 8 +- .../src/tokens/never.ts | 32 - .../src/tokens/pair.ts | 88 +- .../src/tokens/ticket.ts | 54 - .../src/tokens/token.ts | 19 +- .../src/tokens/tokens.ts | 4 - .../taquito-michelson-encoder/src/version.ts | 8 - .../test/sample1.spec.ts | 8 - .../test/sample17.spec.ts | 65 - .../test/sample18_nat_ticket.spec.ts | 56 - .../test/sample19_timestamp_ticket.spec.ts | 84 - .../test/tokens/int.spec.ts | 17 - .../test/tokens/lambda.spec.ts | 72 - .../test/tokens/map.spec.ts | 97 - .../test/tokens/mutez.spec.ts | 15 - .../test/tokens/nat.spec.ts | 17 - .../test/tokens/never.spec.ts | 58 - .../test/tokens/ticket.spec.ts | 252 - .../taquito-remote-signer/package-lock.json | 1830 +- packages/taquito-remote-signer/package.json | 33 +- packages/taquito-remote-signer/signature.json | 40 +- .../src/taquito-remote-signer.ts | 6 - packages/taquito-remote-signer/src/version.ts | 8 - packages/taquito-rpc/package-lock.json | 1798 +- packages/taquito-rpc/package.json | 25 +- packages/taquito-rpc/signature.json | 40 +- packages/taquito-rpc/src/taquito-rpc.ts | 101 +- packages/taquito-rpc/src/types.ts | 65 +- packages/taquito-rpc/src/version.ts | 8 - packages/taquito-rpc/test/taquito-rpc.spec.ts | 309 +- packages/taquito-signer/package-lock.json | 1960 +- packages/taquito-signer/package.json | 29 +- packages/taquito-signer/signature.json | 34 +- packages/taquito-signer/src/taquito-signer.ts | 5 - packages/taquito-signer/src/version.ts | 8 - .../package-lock.json | 1792 +- .../taquito-tezbridge-signer/package.json | 27 +- .../taquito-tezbridge-signer/signature.json | 34 +- .../src/taquito-tezbridge-signer.ts | 5 - .../taquito-tezbridge-signer/src/version.ts | 8 - .../package-lock.json | 1792 +- .../taquito-tezbridge-wallet/package.json | 25 +- .../taquito-tezbridge-wallet/signature.json | 38 +- .../src/taquito-tezbridge-wallet.ts | 6 - .../taquito-tezbridge-wallet/src/version.ts | 8 - packages/taquito-tzip12/package-lock.json | 6117 ---- packages/taquito-tzip12/package.json | 96 - packages/taquito-tzip12/rollup.config.ts | 30 - packages/taquito-tzip12/signature.json | 262 - packages/taquito-tzip12/src/composer.ts | 18 - packages/taquito-tzip12/src/taquito-tzip12.ts | 9 - .../src/tzip12-contract-abstraction.ts | 188 - packages/taquito-tzip12/src/tzip12-errors.ts | 22 - .../taquito-tzip12/src/tzip12-extension.ts | 15 - packages/taquito-tzip12/src/version.ts | 8 - .../test/tzip12-contract-abstraction.spec.ts | 444 - packages/taquito-tzip12/tsconfig.json | 15 - packages/taquito-tzip12/tsconfig.prod.json | 11 - packages/taquito-tzip12/tslint.json | 3 - packages/taquito-tzip16/package-lock.json | 6128 ---- packages/taquito-tzip16/package.json | 99 - packages/taquito-tzip16/rollup.config.ts | 30 - packages/taquito-tzip16/signature.json | 441 - packages/taquito-tzip16/src/composer.ts | 17 - .../src/handlers/http-handler.ts | 18 - .../src/handlers/ipfs-handler.ts | 22 - .../src/handlers/tezos-storage-handler.ts | 67 - .../taquito-tzip16/src/metadata-interface.ts | 58 - .../taquito-tzip16/src/metadata-provider.ts | 84 - .../src/metadataProviderRequirements.md | 80 - packages/taquito-tzip16/src/taquito-tzip16.ts | 25 - .../src/tzip16-contract-abstraction.ts | 123 - packages/taquito-tzip16/src/tzip16-errors.ts | 81 - .../taquito-tzip16/src/tzip16-extension.ts | 23 - packages/taquito-tzip16/src/tzip16-utils.ts | 5 - packages/taquito-tzip16/src/version.ts | 8 - .../taquito-tzip16/src/viewKind/interface.ts | 3 - .../src/viewKind/michelson-storage-view.ts | 181 - .../src/viewKind/viewFactory.ts | 44 - .../test/handlers/http-handler.spec.ts | 32 - .../test/handlers/ipfs-handler.spec.ts | 32 - .../handlers/tezos-storage-handler.spec.ts | 176 - .../test/metadata-provider.spec.ts | 211 - .../test/tzip16-contract-abstraction.spec.ts | 398 - .../viewKind/michelson-storage-view.spec.ts | 386 - packages/taquito-tzip16/tsconfig.json | 15 - packages/taquito-tzip16/tsconfig.prod.json | 11 - packages/taquito-tzip16/tslint.json | 4 - packages/taquito-utils/README.md | 2 +- packages/taquito-utils/package-lock.json | 1892 +- packages/taquito-utils/package.json | 24 +- packages/taquito-utils/signature.json | 36 +- packages/taquito-utils/src/constants.ts | 1 - packages/taquito-utils/src/taquito-utils.ts | 36 - packages/taquito-utils/src/validators.ts | 6 - packages/taquito-utils/src/version.ts | 8 - .../taquito-utils/test/taquito-utils.spec.ts | 79 +- .../taquito-utils/test/validators.spec.ts | 6 - packages/taquito/README.md | 5 +- packages/taquito/package-lock.json | 2234 +- packages/taquito/package.json | 35 +- packages/taquito/signature.json | 214 +- .../taquito/src/batch/rpc-batch-provider.ts | 5 +- packages/taquito/src/constants.ts | 18 +- packages/taquito/src/context.ts | 68 +- packages/taquito/src/contract/big-map.ts | 32 +- packages/taquito/src/contract/compose.ts | 16 - packages/taquito/src/contract/contract.ts | 8 +- packages/taquito/src/contract/errors.ts | 10 - packages/taquito/src/contract/index.ts | 2 - packages/taquito/src/contract/interface.ts | 36 +- packages/taquito/src/contract/lambda-view.ts | 2 - packages/taquito/src/contract/prepare.ts | 45 +- .../src/contract/rpc-contract-provider.ts | 102 +- .../src/contract/rpc-estimate-provider.ts | 11 +- packages/taquito/src/contract/view_lambda.ts | 2 + packages/taquito/src/extension/extension.ts | 7 - packages/taquito/src/operations/operations.ts | 11 +- packages/taquito/src/operations/types.ts | 1 - packages/taquito/src/packer/interface.ts | 5 - .../taquito/src/packer/michel-codec-packer.ts | 11 - packages/taquito/src/packer/rpc-packer.ts | 11 - packages/taquito/src/parser/interface.ts | 5 - .../taquito/src/parser/michel-codec-parser.ts | 70 - packages/taquito/src/parser/noop-parser.ts | 8 - .../src/subscribe/observable-subscription.ts | 11 +- .../taquito/src/subscribe/polling-provider.ts | 10 +- packages/taquito/src/taquito.ts | 78 +- packages/taquito/src/version.ts | 8 - packages/taquito/src/wallet/operation.ts | 4 - ...ration-factory.ts => opreation-factory.ts} | 40 +- packages/taquito/src/wallet/wallet.ts | 82 +- packages/taquito/test/context.spec.ts | 116 - .../taquito/test/contract/big-map.spec.ts | 175 - .../contract-abstraction-composer.spec.ts | 51 - .../contract/rpc-contract-provider.spec.ts | 632 +- .../operations/origination-operation.spec.ts | 4 +- .../test/packer/michel-codec-packer.spec.ts | 20 - .../taquito/test/packer/rpc-packer.spec.ts | 33 - .../test/parser/michel-codec-parser.spec.ts | 129 - packages/taquito/test/taquito.spec.ts | 7 +- ...ntract-abstraction-composer-wallet.spec.ts | 51 - .../test/wallet/operation-factory.spec.ts | 2 +- packages/taquito/version-stamping.js | 39 - signature.json | 2638 -- typedoc.js | 30 +- website/docusaurus.config.js | 6 +- website/netlify.toml | 3 - website/package-lock.json | 5031 +-- website/package.json | 41 +- website/sidebars.json | 33 +- website/src/theme/CodeBlock/index.js | 21 +- website/src/theme/Playground/index.js | 37 +- .../static/img/FlowchartGetTokenMetadata.png | Bin 244461 -> 0 bytes website/static/img/Tzip16ExecuteView.png | Bin 172698 -> 0 bytes website/static/img/diagramTzip16Metadata.png | Bin 218209 -> 0 bytes website/static/img/nomadic.png | Bin 54977 -> 64581 bytes .../static/img/taquito-michelson-encoder.png | Bin 241404 -> 0 bytes website/yarn.lock | 6850 ++-- 830 files changed, 48639 insertions(+), 104805 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 .github/ISSUE_TEMPLATE/research-design.md delete mode 100644 .github/ISSUE_TEMPLATE/user-story.md delete mode 100644 .github/workflows/deploy_edge.yml delete mode 100644 .github/workflows/preview_website.yml delete mode 100644 @nodes/alltypes.d.ts delete mode 100644 docs/metadata-tzip16.md delete mode 100644 docs/michelson_encoder.md delete mode 100644 docs/michelsonmap.md delete mode 100644 docs/signing.md delete mode 100644 docs/tickets.md delete mode 100644 docs/tutorial_links.md delete mode 100644 docs/tzip12.md delete mode 100644 docs/tzip16-sequence-diagram.md rename docs/{upgrading_guide.md => v7_breaking_changes.md} (51%) delete mode 100644 example/data/knownBigMapContract.ts delete mode 100644 example/data/knownContract.ts delete mode 100644 example/deploy-integration-tests-contracts.ts delete mode 100644 example/example-parallel-bigmap-local-vs-rpc-pack.ts delete mode 100644 example/example-sequential-bigmap-local-vs-rpc-pack.ts delete mode 100644 example/example-streamer-custom-retry-logic.ts delete mode 100644 example/example-tzip16.ts delete mode 100644 integration-tests/call-contract-method-manual-steps.spec.ts delete mode 100644 integration-tests/call-get-delegate-when-no-delegate.spec.ts delete mode 100644 integration-tests/contract-batch.spec.ts delete mode 100644 integration-tests/contract-empty-implicit-account-into-new-implicit-account.spec.ts delete mode 100644 integration-tests/contract-fetch-multiple-big-map-keys.spec.ts delete mode 100644 integration-tests/contract-originate-contract-unpair.spec.ts delete mode 100644 integration-tests/contract-originate-contract-with-sapling.spec.ts delete mode 100644 integration-tests/contract-register-delegate.spec.ts delete mode 100644 integration-tests/data/contract-with-never-in-param.ts delete mode 100644 integration-tests/data/contractWithUnpair.ts delete mode 100644 integration-tests/data/fa2-for-token-metadata-view.ts delete mode 100644 integration-tests/data/fa2-token-factory.ts delete mode 100644 integration-tests/data/fa2_contract_with_metadata.ts delete mode 100644 integration-tests/data/metadataViews.ts delete mode 100644 integration-tests/data/modified-taco-contract.ts delete mode 100644 integration-tests/data/nft_wallet_tq.ts delete mode 100644 integration-tests/edo-deploy-contract-having-ticket.spec.ts delete mode 100644 integration-tests/edo-deploy-wallet-having-ticket.spec.ts delete mode 100644 integration-tests/encode-long-numeral.spec.ts delete mode 100644 integration-tests/ledger-signer-failing-tests.spec.ts create mode 100644 integration-tests/ledger-signer-falling-tests.spec.ts delete mode 100644 integration-tests/local-forging.spec.ts delete mode 100644 integration-tests/manager-wallet-scenario.spec.ts delete mode 100644 integration-tests/multisig-wallet-scenario.spec.ts delete mode 100644 integration-tests/pack.spec.ts delete mode 100644 integration-tests/rpc-get-protocol-constants.spec.ts delete mode 100644 integration-tests/test-for-type-never.spec.ts delete mode 100644 integration-tests/tzip12-token-metadata.spec.ts delete mode 100644 integration-tests/tzip16-metadata-view.spec.ts delete mode 100644 integration-tests/tzip16-non-compliant-contract.spec.ts delete mode 100644 integration-tests/tzip16-non-compliant-wallet.spec.ts delete mode 100644 integration-tests/tzip16-originate-contract-having-metadata-on-IPFS-and-fetch-those.spec.ts delete mode 100644 integration-tests/tzip16-originate-contracts-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts delete mode 100644 integration-tests/tzip16-originate-contracts-with-metadata-on-HTTPS-and-sha256-hash-and-fetch-metadata.spec.ts delete mode 100644 integration-tests/tzip16-originate-contracts-with-metadata-on-itself-and-fetch-metadata.spec.ts delete mode 100644 integration-tests/tzip16-originate-fa2-contract-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts delete mode 100644 integration-tests/tzip16-originate-fa2-wallet-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts delete mode 100644 integration-tests/tzip16-originate-wallet-having-metadata-on-IPFS-and-fetch-those.spec.ts delete mode 100644 integration-tests/tzip16-originate-wallets-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts delete mode 100644 integration-tests/tzip16-originate-wallets-with-metadata-on-itself-and-fetch-metadata.spec.ts delete mode 100644 integration-tests/wallet-batch.spec.ts delete mode 100644 integration-tests/wallet-big-map.spec.ts delete mode 100644 integration-tests/wallet-collections.spec.ts delete mode 100644 integration-tests/wallet-empty-delegated-implicit-account.spec.ts delete mode 100644 integration-tests/wallet-empty-revealed-implicit-account.spec.ts delete mode 100644 integration-tests/wallet-failwith.spec.ts delete mode 100644 integration-tests/wallet-init-with-empty-bigmap.spec.ts delete mode 100644 integration-tests/wallet-ligo-increment-contract.spec.ts delete mode 100644 integration-tests/wallet-manager-that-calls-failwith-contract.spec.ts delete mode 100644 integration-tests/wallet-michelson-origination.spec.ts delete mode 100644 integration-tests/wallet-no-annotations-call-by-index.spec.ts delete mode 100644 integration-tests/wallet-originate-contract-unpair.spec.ts delete mode 100644 integration-tests/wallet-originate-contract-with-bool.spec.ts delete mode 100644 integration-tests/wallet-originate-contract-with-sapling.spec.ts delete mode 100644 integration-tests/wallet-originate-invalid-string.spec.ts delete mode 100644 integration-tests/wallet-originate-token-contract.spec.ts delete mode 100644 integration-tests/wallet-originate-vote-contract.spec.ts delete mode 100644 integration-tests/wallet-origination-wrong-order-code-properties.spec.ts delete mode 100644 integration-tests/wallet-pair-as-key.spec.ts delete mode 100644 integration-tests/wallet-register-delegate.spec.ts delete mode 100644 integration-tests/wallet-set-delegate-auto-estimate.spec.ts delete mode 100644 integration-tests/wallet-simple-origination.spec.ts delete mode 100644 integration-tests/wallet-tx-wait-2-confirmations.spec.ts delete mode 100644 integration-tests/wallet-unit-as-param.spec.ts delete mode 100644 integration-tests/wallet-with-bad-code.spec.ts delete mode 100644 integration-tests/wallet-with-bigmap-init.spec.ts delete mode 100644 packages/taquito-beacon-wallet/src/version.ts delete mode 100644 packages/taquito-http-utils/src/version.ts delete mode 100644 packages/taquito-http-utils/test/taquito-http-utils.spec.ts delete mode 100644 packages/taquito-ledger-signer/src/version.ts delete mode 100644 packages/taquito-local-forging/src/version.ts delete mode 100644 packages/taquito-local-forging/test/allTestsCases.ts delete mode 100644 packages/taquito-local-forging/test/data/code_with_sapling.ts delete mode 100644 packages/taquito-local-forging/test/data/code_with_ticket.ts create mode 100644 packages/taquito-michel-codec/formatter/formatter.ts delete mode 100644 packages/taquito-michel-codec/michelson.json delete mode 100644 packages/taquito-michel-codec/pack-test-tool/data.json delete mode 100755 packages/taquito-michel-codec/pack-test-tool/pack-test-tool.js delete mode 100644 packages/taquito-michel-codec/pack-test-tool/package-lock.json delete mode 100644 packages/taquito-michel-codec/pack-test-tool/package.json delete mode 100644 packages/taquito-michel-codec/src/binary.ts delete mode 100644 packages/taquito-michel-codec/src/version.ts create mode 100644 packages/taquito-michel-codec/test/attic.spec.ts delete mode 100644 packages/taquito-michel-codec/test/base58.spec.ts delete mode 100644 packages/taquito-michel-codec/test/binary-data1.json delete mode 100644 packages/taquito-michel-codec/test/binary-data2.json delete mode 100644 packages/taquito-michel-codec/test/binary.spec.ts create mode 100644 packages/taquito-michel-codec/test/contract-macros.spec.ts delete mode 100644 packages/taquito-michel-codec/test/contracts_007.spec.ts delete mode 100644 packages/taquito-michel-codec/test/contracts_007/entrypoints/big_map_entrypoints.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/entrypoints/delegatable_target.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/entrypoints/manager.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/entrypoints/no_default_target.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/entrypoints/no_entrypoint_target.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/entrypoints/rooted_target.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/entrypoints/simple_entrypoints.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/big_dip.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/big_drop.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/big_map_arity.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/chain_id_arity.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/contract_annotation_default.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/invalid_self_entrypoint.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_code_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_parameter_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_storage_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_parameter_and_storage_fields.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_code_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_parameter_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_storage_and_code_fields.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_storage_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/pack_big_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/pack_operation.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/ill_typed/set_update_non_comparable.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpeq.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpge.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpgt.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_cmple.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_cmplt.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpneq.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_eq.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_ge.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_gt.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_le.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_lt.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/assert_neq.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/big_map_get_add.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/big_map_mem.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/build_list.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/compare.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/compare_bytes.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/fail.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/guestbook.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/macro_annotations.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/map_caddaadr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/max_in_list.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/min.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/pair_macro.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/set_caddaadr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/take_my_money.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/macros/unpair_macro.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/authentication.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/big_map_entrypoints.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/big_map_magic.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/create_contract.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/create_contract_simple.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/default_account.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/hardlimit.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/lockup.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/multiple_en2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/multiple_entrypoints_counter.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/parameterized_multisig.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/replay.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/reveal_signed_preimage.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/vote_for_delegate.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/weather_insurance.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/xcat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/mini_scenarios/xcat_dapp.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/abs.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/add.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/add_delta_timestamp.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/add_timestamp_delta.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/address.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/and.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/and_binary.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/and_logical_1.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/balance.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_mem_nat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_mem_string.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_to_self.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/car.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/cdr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/chain_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/chain_id_store.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/check_signature.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/compare.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/comparisons.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/concat_hello.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/concat_hello_bytes.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/concat_list.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/cons.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/contains_all.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/contract.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract_rootname.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract_rootname_alt.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/diff_timestamps.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/dig_eq.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/dign.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/dip.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/dipn.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/dropn.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/dugn.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/ediv.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/ediv_mutez.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/empty_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/exec_concat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/failwith_big_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/first.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/get_big_map_value.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/get_map_value.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/hash_consistency_checker.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/hash_key.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/hash_string.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/if.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/if_some.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/int.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/left_right.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/list_concat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/list_concat_bytes.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/list_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/list_id_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/list_iter.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/list_map_block.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/list_size.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/loop_left.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/map_car.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/map_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/map_iter.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/map_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/map_map_sideeffect.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/map_mem_nat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/map_mem_string.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/map_size.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/merge_comparable_pairs.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/mul.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/mul_overflow.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/neg.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/none.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/noop.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/not.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/not_binary.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/or.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/or_binary.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack_rev.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack_rev_cty.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/pair_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/pexec.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/pexec_2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/proxy.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/ret_int.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/reverse.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/reverse_loop.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/self.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/self_with_default_entrypoint.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/self_with_entrypoint.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/sender.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/set_car.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/set_cdr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/set_delegate.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/set_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/set_iter.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/set_member.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/set_size.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/shifts.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/slice.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/slice_bytes.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/slices.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/source.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/split_bytes.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/split_string.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/store_input.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/store_now.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/str_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/sub_timestamp_delta.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/subset.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/tez_add_sub.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/transfer_amount.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/transfer_tokens.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/update_big_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_007/opcodes/xor.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008.spec.ts delete mode 100644 packages/taquito-michel-codec/test/contracts_008/entrypoints/big_map_entrypoints.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/entrypoints/delegatable_target.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/entrypoints/manager.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/entrypoints/no_default_target.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/entrypoints/no_entrypoint_target.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/entrypoints/rooted_target.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/entrypoints/simple_entrypoints.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/big_dip.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/big_drop.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/big_map_arity.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/chain_id_arity.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/comb0.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/comb1.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/contract_annotation_default.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/dup0.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/failwith_big_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/invalid_self_entrypoint.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_code_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_parameter_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_storage_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_parameter_and_storage_fields.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_code_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_parameter_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_storage_and_code_fields.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_storage_field.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/never_literal.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_big_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_operation.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_sapling_state.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/push_big_map_with_id_with_parens.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/push_big_map_with_id_without_parens.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/sapling_build_empty_state_with_int_parameter.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/set_update_non_comparable.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_apply.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_dup.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_in_ticket.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_unpack.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/uncomb0.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/uncomb1.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/unpack_sapling_state.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/ill_typed/unpair_field_annotation_mismatch.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpeq.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpge.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpgt.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_cmple.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_cmplt.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpneq.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_eq.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_ge.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_gt.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_le.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_lt.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/assert_neq.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/big_map_get_add.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/big_map_mem.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/build_list.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/carn_and_cdrn.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/compare.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/compare_bytes.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/fail.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/guestbook.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/macro_annotations.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/map_caddaadr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/max_in_list.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/min.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/pair_macro.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/set_caddaadr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/take_my_money.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/macros/unpair_macro.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/authentication.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_entrypoints.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_magic.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_read.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_store.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_write.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/create_contract.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/create_contract_simple.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/default_account.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/groth16.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/hardlimit.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/lockup.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/multiple_en2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/multiple_entrypoints_counter.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/parameterized_multisig.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/replay.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/reveal_signed_preimage.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/self_address_receiver.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/self_address_sender.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_builder_fungible.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_builder_non_fungible.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_wallet_fungible.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_wallet_non_fungible.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/vote_for_delegate.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/weather_insurance.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/xcat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/mini_scenarios/xcat_dapp.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/abs.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/add.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_fr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_g1.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_g2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/add_delta_timestamp.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/add_timestamp_delta.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/address.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/and.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/and_binary.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/and_logical_1.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/balance.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_mem_nat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_mem_string.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_to_self.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_push_bytes_not_padded.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_push_nat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_to_int.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_to_mutez.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_z_int.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_z_nat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_z_fr_int.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_z_fr_nat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/car.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/cdr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/chain_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/chain_id_store.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/check_signature.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/comb-get.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/comb-set-2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/comb-set.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/comb.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/compare.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/compare_big_type.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/compare_big_type2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/comparisons.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/concat_hello.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/concat_hello_bytes.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/concat_list.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/cons.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/contains_all.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/contract.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract_rootname.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract_rootname_alt.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/diff_timestamps.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/dig_eq.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/dign.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/dip.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/dipn.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/dropn.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/dugn.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/dup-n.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ediv.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ediv_mutez.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/empty_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/exec_concat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/first.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/get_and_update_big_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/get_and_update_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/get_big_map_value.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/get_map_value.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/hash_consistency_checker.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/hash_key.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/hash_string.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/if.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/if_some.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/int.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/keccak.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/left_right.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/level.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/list_concat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/list_concat_bytes.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/list_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/list_id_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/list_iter.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/list_map_block.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/list_size.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/loop_left.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/map_car.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/map_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/map_iter.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/map_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/map_map_sideeffect.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/map_mem_nat.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/map_mem_string.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/map_size.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/merge_comparable_pairs.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/mul.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_fr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_g1.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_g2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/mul_overflow.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/mutez_to_bls12_381_fr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/neg.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_fr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_g1.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_g2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/none.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/noop.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/not.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/not_binary.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/or.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/or_binary.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/originate_big_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack_rev.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack_rev_cty.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/pair_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/pairing_check.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/pexec.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/pexec_2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/proxy.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ret_int.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/reverse.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/reverse_loop.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/sapling_empty_state.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/self.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/self_address.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/self_with_default_entrypoint.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/self_with_entrypoint.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/sender.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/set_car.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/set_cdr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/set_delegate.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/set_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/set_iter.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/set_member.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/set_size.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/sha3.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/shifts.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/slice.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/slice_bytes.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/slices.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/source.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/split_bytes.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/split_string.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_fr.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_g1.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_g2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/store_input.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/store_now.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/str_id.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/sub_timestamp_delta.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/subset.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/tez_add_sub.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_bad.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_big_store.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_join.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_read.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_split.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_store-2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_store.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ticketer-2.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/ticketer.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/transfer_amount.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/transfer_tokens.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/uncomb.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/unpair.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/update_big_map.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/utxo_read.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/utxor.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/voting_power.tz delete mode 100644 packages/taquito-michel-codec/test/contracts_008/opcodes/xor.tz create mode 100644 packages/taquito-michel-codec/test/entrypoints.spec.ts create mode 100644 packages/taquito-michel-codec/test/mini-scenarios.spec.ts create mode 100644 packages/taquito-michel-codec/test/opcodes.spec.ts delete mode 100644 packages/taquito-michelson-encoder/data/sample17.ts delete mode 100644 packages/taquito-michelson-encoder/data/sample18_ticket.ts delete mode 100644 packages/taquito-michelson-encoder/data/sample19_sapling.ts delete mode 100644 packages/taquito-michelson-encoder/data/sample19_timestamp_ticket.ts delete mode 100644 packages/taquito-michelson-encoder/src/tokens/never.ts delete mode 100644 packages/taquito-michelson-encoder/src/tokens/ticket.ts delete mode 100644 packages/taquito-michelson-encoder/src/version.ts delete mode 100644 packages/taquito-michelson-encoder/test/sample17.spec.ts delete mode 100644 packages/taquito-michelson-encoder/test/sample18_nat_ticket.spec.ts delete mode 100644 packages/taquito-michelson-encoder/test/sample19_timestamp_ticket.spec.ts delete mode 100644 packages/taquito-michelson-encoder/test/tokens/lambda.spec.ts delete mode 100644 packages/taquito-michelson-encoder/test/tokens/never.spec.ts delete mode 100644 packages/taquito-michelson-encoder/test/tokens/ticket.spec.ts delete mode 100644 packages/taquito-remote-signer/src/version.ts delete mode 100644 packages/taquito-rpc/src/version.ts delete mode 100644 packages/taquito-signer/src/version.ts delete mode 100644 packages/taquito-tezbridge-signer/src/version.ts delete mode 100644 packages/taquito-tezbridge-wallet/src/version.ts delete mode 100644 packages/taquito-tzip12/package-lock.json delete mode 100644 packages/taquito-tzip12/package.json delete mode 100644 packages/taquito-tzip12/rollup.config.ts delete mode 100644 packages/taquito-tzip12/signature.json delete mode 100644 packages/taquito-tzip12/src/composer.ts delete mode 100644 packages/taquito-tzip12/src/taquito-tzip12.ts delete mode 100644 packages/taquito-tzip12/src/tzip12-contract-abstraction.ts delete mode 100644 packages/taquito-tzip12/src/tzip12-errors.ts delete mode 100644 packages/taquito-tzip12/src/tzip12-extension.ts delete mode 100644 packages/taquito-tzip12/src/version.ts delete mode 100644 packages/taquito-tzip12/test/tzip12-contract-abstraction.spec.ts delete mode 100644 packages/taquito-tzip12/tsconfig.json delete mode 100644 packages/taquito-tzip12/tsconfig.prod.json delete mode 100644 packages/taquito-tzip12/tslint.json delete mode 100644 packages/taquito-tzip16/package-lock.json delete mode 100644 packages/taquito-tzip16/package.json delete mode 100644 packages/taquito-tzip16/rollup.config.ts delete mode 100644 packages/taquito-tzip16/signature.json delete mode 100644 packages/taquito-tzip16/src/composer.ts delete mode 100644 packages/taquito-tzip16/src/handlers/http-handler.ts delete mode 100644 packages/taquito-tzip16/src/handlers/ipfs-handler.ts delete mode 100644 packages/taquito-tzip16/src/handlers/tezos-storage-handler.ts delete mode 100644 packages/taquito-tzip16/src/metadata-interface.ts delete mode 100644 packages/taquito-tzip16/src/metadata-provider.ts delete mode 100644 packages/taquito-tzip16/src/metadataProviderRequirements.md delete mode 100644 packages/taquito-tzip16/src/taquito-tzip16.ts delete mode 100644 packages/taquito-tzip16/src/tzip16-contract-abstraction.ts delete mode 100644 packages/taquito-tzip16/src/tzip16-errors.ts delete mode 100644 packages/taquito-tzip16/src/tzip16-extension.ts delete mode 100644 packages/taquito-tzip16/src/tzip16-utils.ts delete mode 100644 packages/taquito-tzip16/src/version.ts delete mode 100644 packages/taquito-tzip16/src/viewKind/interface.ts delete mode 100644 packages/taquito-tzip16/src/viewKind/michelson-storage-view.ts delete mode 100644 packages/taquito-tzip16/src/viewKind/viewFactory.ts delete mode 100644 packages/taquito-tzip16/test/handlers/http-handler.spec.ts delete mode 100644 packages/taquito-tzip16/test/handlers/ipfs-handler.spec.ts delete mode 100644 packages/taquito-tzip16/test/handlers/tezos-storage-handler.spec.ts delete mode 100644 packages/taquito-tzip16/test/metadata-provider.spec.ts delete mode 100644 packages/taquito-tzip16/test/tzip16-contract-abstraction.spec.ts delete mode 100644 packages/taquito-tzip16/test/viewKind/michelson-storage-view.spec.ts delete mode 100644 packages/taquito-tzip16/tsconfig.json delete mode 100644 packages/taquito-tzip16/tsconfig.prod.json delete mode 100644 packages/taquito-tzip16/tslint.json delete mode 100644 packages/taquito-utils/src/version.ts delete mode 100644 packages/taquito/src/contract/compose.ts delete mode 100644 packages/taquito/src/extension/extension.ts delete mode 100644 packages/taquito/src/packer/interface.ts delete mode 100644 packages/taquito/src/packer/michel-codec-packer.ts delete mode 100644 packages/taquito/src/packer/rpc-packer.ts delete mode 100644 packages/taquito/src/parser/interface.ts delete mode 100644 packages/taquito/src/parser/michel-codec-parser.ts delete mode 100644 packages/taquito/src/parser/noop-parser.ts delete mode 100644 packages/taquito/src/version.ts rename packages/taquito/src/wallet/{operation-factory.ts => opreation-factory.ts} (70%) delete mode 100644 packages/taquito/test/context.spec.ts delete mode 100644 packages/taquito/test/contract/big-map.spec.ts delete mode 100644 packages/taquito/test/contract/contract-abstraction-composer.spec.ts delete mode 100644 packages/taquito/test/packer/michel-codec-packer.spec.ts delete mode 100644 packages/taquito/test/packer/rpc-packer.spec.ts delete mode 100644 packages/taquito/test/parser/michel-codec-parser.spec.ts delete mode 100644 packages/taquito/test/wallet/contract-abstraction-composer-wallet.spec.ts delete mode 100644 packages/taquito/version-stamping.js delete mode 100644 signature.json delete mode 100644 website/netlify.toml delete mode 100644 website/static/img/FlowchartGetTokenMetadata.png delete mode 100644 website/static/img/Tzip16ExecuteView.png delete mode 100644 website/static/img/diagramTzip16Metadata.png delete mode 100644 website/static/img/taquito-michelson-encoder.png diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md deleted file mode 100644 index dfb532c8c3..0000000000 --- a/.github/ISSUE_TEMPLATE/bug.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug -about: Create a bug report to help us improve -title: '' -labels: bug -assignees: '' - ---- - -**Description** -A clear and concise description of what the bug is. - -**Steps To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index d2ef4e851c..0000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -**Is your feature request related to a problem and use case? Please describe.** -A clear and concise description of what the problem/use case is. -Ex. My application is... My goal was to get .... -The main workflow where this needed is.... - -**Describe the solution you'd like** -A clear and concise description of what you'd want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. -Which solution worked? What didn't work? -Do you have a workaround currently? If yes, how does it work? - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/research-design.md b/.github/ISSUE_TEMPLATE/research-design.md deleted file mode 100644 index 8a2888b842..0000000000 --- a/.github/ISSUE_TEMPLATE/research-design.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: Research&design -about: Suggest an idea for this project -title: 'SPIKE:' -labels: '' -assignees: '' - ---- - -**What are the goals of the research?** -A clear and concise description of what are the main goals of the research. - -**Describe the concrete outcomes of the research below. Can include questions/areas that need to be investigated/discussed** -**Acceptance criteria:** -- <Add A clear and concise list of items here> -- ... -- Document results of the research and suggest next steps - -OUT OF SCOPE: diff --git a/.github/ISSUE_TEMPLATE/user-story.md b/.github/ISSUE_TEMPLATE/user-story.md deleted file mode 100644 index 00d4e3e199..0000000000 --- a/.github/ISSUE_TEMPLATE/user-story.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -name: User story -about: 'USER STORY:' -title: 'USER STORY:' -labels: '' -assignees: '' - ---- - -**As Taquito user, I want to <...>, so that <I can see or avoid this outcome>** - -**Use cases:** - -**Is this user story related to an existing problem? Please describe.** -A clear and concise description of what the problem is. - -**Acceptance criteria:** -- -- -- -- -- - -**Non-functional:** -- consider performance, scalability, security - -OUT OF SCOPE: -N/A - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 221b6efe59..4397b6aa05 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -12,7 +12,7 @@ on: jobs: analyse: name: Analyse - runs-on: self-hosted + runs-on: ubuntu-latest steps: - name: Checkout repository diff --git a/.github/workflows/deploy_edge.yml b/.github/workflows/deploy_edge.yml deleted file mode 100644 index b0dd6f6d76..0000000000 --- a/.github/workflows/deploy_edge.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Deploy Edge - -on: - pull_request: - push: - branches: - - master -jobs: - deply-edge-package: - runs-on: self-hosted - if: ${{ github.event_name == 'pull_request' || github.ref == 'refs/heads/master' }} - strategy: - matrix: - node: [12.x] - env: - VERDACCIO_TOKEN: ${{ secrets.EDGE_VERDACCIO_TOKEN }} - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node }} - - uses: actions/cache@v1 - with: - path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - run: echo "SHORT_SHA=`echo ${GITHUB_SHA} | cut -c1-8`" >> $GITHUB_ENV - - run: echo "PACKAGE_VERSION=`node -p "require('./packages/taquito/package.json').version"`" >> $GITHUB_ENV - - run: echo "BRANCH_NAME=`echo $GITHUB_REF | cut -d'/' -f 3`" >> $GITHUB_ENV - - run: echo "TARGET_VERSION=${PACKAGE_VERSION}-${SHORT_SHA}--${BRANCH_NAME}" >> $GITHUB_ENV - - run: npm ci - - run: npm run lerna -- bootstrap - - run: find packages/ -mindepth 1 -maxdepth 2 -name README.md | xargs sed -i '1s/^/# WARNING This build is produced from a feature branch and could contain unreviewed changes from the public. Use with caution, do not use in production\n\n/' - - run: npm run lerna -- version "${TARGET_VERSION}" --no-push --no-git-tag-version --yes - - run: npm run build - - run: cd packages/taquito && npm run build:release && cd ../.. - - run: git config user.email "actions@github.com" && git config user.name "Github Actions" - - run: git add . && git commit -m "committing changes to files to make lerna happy in next step, this is expected to never be pushed to remote" - - run: echo ${VERDACCIO_TOKEN} >> ~/.npmrc - - run: npm run lerna -- publish --dist-tag edge from-package --yes --registry https://npm.preview.tezostaquito.io/ - - run: | - echo "COMMENT_BODY<<EOF" >> $GITHUB_ENV - echo "New packages have been deployed to the preview repository at https://npm.preview.tezostaquito.io/." >> $GITHUB_ENV - echo "" >> $GITHUB_ENV - echo "### Published packages:" >> $GITHUB_ENV - echo "\`\`\`" >> $GITHUB_ENV - find packages/ -mindepth 1 -maxdepth 2 -name package.json | xargs -I{} node -pe "require('./{}')['name']" | sed "s/^\(.*\)$/npm i \1@${TARGET_VERSION} --registry https:\/\/npm.preview.tezostaquito.io\//" >> $GITHUB_ENV - echo "\`\`\`" >> $GITHUB_ENV - echo 'EOF' >> $GITHUB_ENV - - uses: actions/github-script@v3 - with: - github-token: ${{secrets.GITHUB_TOKEN}} - script: | - github.issues.createComment({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - body: process.env.COMMENT_BODY - }) diff --git a/.github/workflows/deploy_website.yml b/.github/workflows/deploy_website.yml index 34ba49ad16..3ad111c93a 100644 --- a/.github/workflows/deploy_website.yml +++ b/.github/workflows/deploy_website.yml @@ -5,7 +5,7 @@ on: branches: - master jobs: - publish-website: + publish-docs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -18,20 +18,17 @@ jobs: key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - - run: npm ci + - run: npm install - run: npm run lerna -- bootstrap - run: npm run lerna run build + - run: cd website && cp -R build/. ../dist - run: npm run build-docs - - run: npm run netlify:publish + - run: cd dist && touch .nojekyll && echo 'tezostaquito.io' > CNAME + - name: Publish generated content to GitHub Pages + uses: tsunematsu21/actions-publish-gh-pages@v1.0.1 + with: + dir: dist + branch: gh-pages + token: ${{ secrets.ACCESS_TOKEN }} env: CI: true - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - - name: Slack Notification - uses: rtCamp/action-slack-notify@v2 - env: - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} - SLACK_USERNAME: Taquito Notifications - SLACK_ICON: https://imgur.com/1zlqzFu - SLACK_TITLE: Message - SLACK_MESSAGE: A new version of the Taquito website has been published. https://tezostaquito.netlify.app diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9905a41501..51cac3d0ed 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,21 +1,14 @@ name: Node.js CI -on: - pull_request: - push: - branches: - - master +on: [push] jobs: lint-and-test: - runs-on: self-hosted - strategy: - matrix: - node: [12.x] + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: ${{ matrix.node }} + node-version: 10.x - uses: actions/cache@v1 with: path: ~/.npm @@ -26,7 +19,6 @@ jobs: - run: npm run lerna -- bootstrap - run: npm run build - run: npm run lint - - run: npm run build-docs - run: npm run test -- --runInBand - uses: codecov/codecov-action@v1 with: @@ -34,14 +26,11 @@ jobs: env: CI: true RUN_INTEGRATION: true - TEZOS_RPC_EDONET: ${{ secrets.TEZOS_RPC_EDONET }} - TEZOS_RPC_FLORENCENET: ${{ secrets.TEZOS_RPC_FLORENCENET }} - - integration-tests-edonet: - runs-on: self-hosted + integration-tests-carthagenet: + runs-on: ubuntu-latest strategy: matrix: - node: [12.x] + node: [10.x, 12.x] steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 @@ -56,17 +45,14 @@ jobs: - run: npm ci - run: npm run lerna -- bootstrap - run: npm run build - - run: cd integration-tests && npm run test:edonet -- --maxWorkers=8 + - run: cd integration-tests && npm run test:carthagenet env: CI: true - TEZOS_RPC_EDONET: ${{ secrets.TEZOS_RPC_EDONET }} - TEZOS_RPC_FLORENCENET: ${{ secrets.TEZOS_RPC_FLORENCENET }} - - integration-tests-florencenet: - runs-on: self-hosted + integration-tests-delphinet: + runs-on: ubuntu-latest strategy: matrix: - node: [12.x] + node: [10.x, 12.x] steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 @@ -81,8 +67,6 @@ jobs: - run: npm ci - run: npm run lerna -- bootstrap - run: npm run build - - run: cd integration-tests && npm run test:florencenet -- --maxWorkers=8 + - run: cd integration-tests && npm run test:delphinet env: CI: true - TEZOS_RPC_EDONET: ${{ secrets.TEZOS_RPC_EDONET }} - TEZOS_RPC_FLORENCENET: ${{ secrets.TEZOS_RPC_FLORENCENET }} diff --git a/.github/workflows/preview_website.yml b/.github/workflows/preview_website.yml deleted file mode 100644 index 335e153cc2..0000000000 --- a/.github/workflows/preview_website.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: Netlify Preview Deploy - -on: - pull_request: - branches: [master] - -jobs: -## This job will deploy the netlify preview builds - publish-website-preview: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: 10.x - - uses: actions/cache@v1 - with: - path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - run: npm ci - - run: npm run lerna -- bootstrap - - run: npm run lerna run build - - run: npm run build-docs - - run: echo "short_sha=${GITHUB_SHA:0:8}" >> $GITHUB_ENV - - run: npm run netlify:preview - env: - CI: true - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - - uses: actions/github-script@v3 - with: - github-token: ${{secrets.GITHUB_TOKEN}} - script: | - github.issues.createComment({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - body: 'A new deploy preview is available on Netlify at https://${{ env.short_sha }}--tezostaquito.netlify.app' - }) - - uses: actions/checkout@v2 - - name: Slack Notification - uses: rtCamp/action-slack-notify@v2 - env: - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} - SLACK_USERNAME: Taquito Notifications - SLACK_ICON: https://imgur.com/1zlqzFu - SLACK_TITLE: Message - SLACK_MESSAGE: There is a new deployment preview available for Taquito at https://${{ env.short_sha }}--tezostaquito.netlify.app diff --git a/.gitignore b/.gitignore index 794e61c4e5..ed8e6856fa 100644 --- a/.gitignore +++ b/.gitignore @@ -12,20 +12,3 @@ compiled website/build/ manifest.json !.vscode/extensions.json -website/*.bak -integration-tests/jest-stare -packages/taquito/src/version.ts -packages/taquito-beacon-wallet/src/version.ts -packages/taquito-http-utils/src/version.ts -packages/taquito-ledger-signer/src/version.ts -packages/taquito-local-forging/src/version.ts -packages/taquito-michel-codec/src/version.ts -packages/taquito-michelson-encoder/src/version.ts -packages/taquito-remote-signer/src/version.ts -packages/taquito-rpc/src/version.ts -packages/taquito-signer/src/version.ts -packages/taquito-tezbridge-signer/src/version.ts -packages/taquito-tezbridge-wallet/src/version.ts -packages/taquito-tzip12/src/version.ts -packages/taquito-tzip16/src/version.ts -packages/taquito-utils/src/version.ts diff --git a/@nodes/alltypes.d.ts b/@nodes/alltypes.d.ts deleted file mode 100644 index c8ba9d466b..0000000000 --- a/@nodes/alltypes.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare module 'rollup-plugin-json'; -declare module 'lodash.camelcase'; \ No newline at end of file diff --git a/README.md b/README.md index bdc6ed7a10..68ffb92f89 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ A TypeScript library suite for development on the Tezos blockchain [](https://bestpractices.coreinfrastructure.org/projects/3204) [](https://badge.fury.io/js/%40taquito%2Ftaquito) -_WARNING: This project is in beta. We welcome users and feedback. Please be aware that this project is a work in progress._ +_WARNING: This project is in beta. We welcome users and feedback, please be aware that this project is a work in progress._ ## Community support channels @@ -16,13 +16,13 @@ _WARNING: This project is in beta. We welcome users and feedback. Please be awar ## What is Taquito -Taquito is a TypeScript library suite made available as a set of npm packages aiming to make building on top of Tezos easier and more enjoyable. +Taquito is a TypeScript library suite made available as set of npm packages aiming to make building on top of Tezos easier and more enjoyable. ## Benefits ### Easy to Use -Get up and running using and contributing to the library quickly: Taquito is written in an idiomatic TypeScript style and includes a set of ready-made React components. +Get up and running using and contributing to the library quickly: Taquito is written in an idiomatic TypeScript style, and includes a set of ready-made React components. ### Portable @@ -40,13 +40,14 @@ Taquito comes complete with: ## Project Organization -`taquito` is organized as a mono repository from which several npm packages are built and published. Packages are in the `packages/` directory, each one with a README file. +`taquito` is organized as a mono repository from which several npm packages are built and published. Packages are in the `packages/` directory, each one with its a README file. We publish gpg signed packages to npmjs.org under the `@taquito` handle. | High Level Packages | Responsibility | | -------------------------------------------------------------- | ------------------------------------------------------------ | | [@taquito/taquito](packages/taquito) | Regroup every other library and provide higher level utility | +| [@taquito/react-components](packages/taquito-react-components) | React components that implement some common use cases | | Low Level Packages | Responsibility | | ---------------------------------------------------------------- | ------------------------------------------------------------- | @@ -58,10 +59,8 @@ We publish gpg signed packages to npmjs.org under the `@taquito` handle. | [@taquito/signer](packages/taquito-signer) | Provide necessary function to sign using tezos keys | | [@taquito/tezbridge-signer](packages/taquito-tezbridge-signer) | Provide necessary function to sign using TezBridge | | [@taquito/utils](packages/taquito-utils) | Provide different encoding and decoding utilities | -| [@taquito/tezbridge-wallet](packages/taquito-tezbridge-wallet) | Tezbridge implementation for the Wallet API | -| [@taquito/tzip12](packages/taquito-tzip12) | TZIP-12 Implementation for Taquito | -| [@taquito/tzip16](packages/taquito-tzip16) | TZIP-16 Implementation for Taquito | -| [@taquito/beacon-wallet](packages/taquito-beacon-wallet) | TZIP-10 Wallet Interaction implementation for the Wallet API | +| [@taquito/tezbridge-wallet](packages/tezbridge-wallet) | Tezbridge implementation for the Wallet API | +| [@taquito/beacon-wallet](packages/beacon-wallet) | TZIP-10 Wallet Interaction implementation for the Wallet API | ## API Documentation @@ -69,29 +68,29 @@ The TypeDoc style API documentation is available [here](https://tezostaquito.io/ ## Versioning Strategy -Version releases use "Semantic Versioning" style version numbers that deviate from SemVer norms when it comes to the "Major" number. +Version releases use "Semantic Versioning" style version numbers, but deviates from SemVer norms when it comes to the "Major" number. -We use SemVer style versions for Taquito, but we make the "Major" version number track against the latest Tezos economical protocol we have tested on. +We use SemVer style versions for taquito, but we make the "Major" version number track against the latest Tezos economical protocol we have tested on. -For example, in August 2019, the economic protocol was `004-Pt24m4xi`, and `005-PsBABY5H` was (is) working its way through the on-chain amendment process. Therefore the current version number for Taquito would be `v4.0.0`. During this time, we would start working on `v5.0.0-beta.1` on the expectation (but not the assumption) that it shall become our new economic protocol. +For example, in August 2019, the economic protocol was `004-Pt24m4xi`, and `005-PsBABY5H` was (is) working its way through the on-chain amendment process. Therefore the current version number for taquito would be `v4.0.0`. During this time, we would start working on `v5.0.0-beta.1` on the expectation (but not the assumption) that it shall become our new economic protocol. -When we are confident that the next protocol proposal will be promoted, AND we have implemented and tested interoperability with the new protocol (and potentially node RPC changes), we shall then release `v5.0.0` BEFORE the chain transitions to the new protocol. +When we are confident that the next protocol proposal is going to be promoted, AND we have implemented and tested interoperability with the new protocol (and potentially node RPC changes) we shall then release `v5.0.0` BEFORE the chain transitions to the new protocol. -It is essential that the packages supporting the new protocol be released before the chain transitions to the new economic protocol so that developers who build on top of Taquito have time to update and test their projects. +It is essential that the packages supporting the new protocol be released before the chain transitions to the new economic protocol so that developers who build on top of taquito have time to update and test their projects. -During "Major" version updates, breaking changes in the Taquito public APIs MAY include breaking changes, for which we will make a strong effort to announce and document in our release notes. The Minor and Patch version numbers follow SemVer norms. +During "Major" version updates, breaking changes in the taquito public APIs MAY include breaking changes, for which we will make a strong effort to announce and document in our release notes. The Minor and Patch version numbers follow SemVer norms. All releases are backward compatible with chain data back to the genesis block. Support for older Tezos node RPCs is maintained where feasible but will be dropped eventually. Tezos node RPC support also depends on what versioning strategy gets adopted by the Tezos node developed by Nomadic Labs. At the time of writing, this is unclear. -Supported versions of the Taquito packages will be maintained for the current and next protocol versions. Teams using older versions are encouraged to update, but they are encouraged to contact us if blockers exist. +Supported versions of the taquito packages will be maintained for the current and next protocol versions. Teams using older versions are encouraged to update, but if blockers exist, they are encouraged to contact us. ## Releases -Releases are "rolled" by the project maintainers outside of CI infrastructure and pushed to npmjs.org repositories and the Github releases page. The maintainers sign all official releases. +Releases are "rolled" by the project maintainers outside of CI infrastructure, and pushed to npmjs.org repositories and the Github releases page. The maintainers sign all official releases. -We hope to reduce the attack surface for software supply chain attacks by doing releases from outside of the CI processes. We reduce some attack surfaces for software supply chain attacks by making releases from outside of the CI infrastructure. +By doing releases from outside of the CI processes, we hope to reduce the attack surface for software supply chain attacks. By making releases from outside of the CI infrastructure, we reduce some attack surfaces for software supply chain attacks. -Releases will be (git tags and npm packages) will be signed either by [keybase/jevonearth][2] or [keybase/simrob][3]. Releases not signed or signed by other keys should not be expected. +Releases will be (git tags and npm packages) will be signed either by [keybase/jevonearth][2] or [keybase/simrob][3]. Releases not signed, or signed by other keys should not be expected. ## Contributors Getting Started @@ -116,7 +115,7 @@ See the top-level `package.json` file. Some common targets are: * Run `npm run lint` * Run `npm run test` -* To commit, please use `npm run commit` +* In order to commit please use `npm run commit` ### Running the website locally @@ -142,7 +141,7 @@ Reports may be encrypted using keys published on keybase.io using [keybase/jevon Please use the [GitHub issue tracker](https://github.com/ecadlabs/taquito/issues) to report bugs or request features. -To contribute, please check the issue tracker to see if an existing issue exists for your planned contribution. If there's no issue, please create one first and then submit a pull request with your contribution. +To contribute, please check the issue tracker to see if an existing issue exists for your planned contribution. If there's no issue, please create one first, and then submit a pull request with your contribution. For a contribution to be merged, it is required to have complete documentation, come with unit tests, and integration tests where appropriate. Submitting a "work in progress" pull request for review/feedback is always welcome! @@ -162,7 +161,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ## Credits -Special thanks to these libraries, which have been excellent references for developing Taquito +Special thanks to these libraries which have been great references for developing Taquito - https://github.com/AndrewKishino/sotez - https://github.com/TezTech/eztz diff --git a/SECURITY.md b/SECURITY.md index 7f0371dfc8..7f26521b2a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,8 +4,7 @@ | Version | Supported | | ------- | ------------------ | -| 7.x.x | :white_check_mark: | -| 6.0.x | :x: | +| 6.0.x | :white_check_mark: | | 5.0.x | :x: | | < 4.0 | :x: | diff --git a/docs/batch-api.md b/docs/batch-api.md index 3dda732461..a8ab13cb70 100644 --- a/docs/batch-api.md +++ b/docs/batch-api.md @@ -10,7 +10,7 @@ Taquito provides a simple way of forging and sending transactions to the blockch ```js /* - * ONE OF THESE TRANSACTIONS WILL FAIL + * ONE OF THESE TRANSACTIONS WILL FAIL * AND YOU WILL GET AN ERROR MESSAGE */ const op1 = await contract.methods.interact('tezos').send(); @@ -31,13 +31,13 @@ Tracking the confirmation of transactions and the update of the transaction coun ## How does it work? -The `contract` or `wallet` property of the `TezosToolkit` object exposes a method called `batch` (the choice between `contract` or `wallet` depends on your use case, whether the transaction will be signed by a wallet or not). Subsequently, the returned object exposes six different methods that you can concatenate according to the number of transactions to emit. +The `TezosToolkit` object exposes a method called `batch`. Subsequently, the returned object exposes 6 different methods that can be concatenated according to the number of transactions to emit. ```js import { TezosToolkit } from '@taquito/taquito'; const Tezos = new TezosToolkit('RPC address here'); -const batch = Tezos.wallet.batch(); // or Tezos.contract.batch() +const batch = await Tezos.batch(); // Add here the operations to be emitted together @@ -53,7 +53,7 @@ After concatenating the different methods to batch operations together, a single This method allows you to add a transfer of tez to the batched operations. It takes an object as a parameter with 4 properties. Two of them are mandatory: `to` indicates the recipient of the transfer and `amount` indicates the amount of tez to be transferred. Two other properties are optional: if `mutez` is set to `true`, the value specified in `amount` is considered to be in mutez. The `parameter` property takes an object where you can indicate an entrypoint and a value for the transfer. ```js -const batch = await Tezos.wallet.batch() +const batch = await Tezos.batch() .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) .withTransfer({ to: 'tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb', amount: 4000000, mutez: true }) .withTransfer({ to: 'tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6', amount: 3 }); @@ -64,7 +64,7 @@ const batch = await Tezos.wallet.batch() This method allows you to add the origination of one or multiple contracts to an existing batch of operations. It takes an object as a parameter with 4 properties. The `code` property is mandatory and can be a string representing the plain Michelson code or the JSON representation of the Michelson contract. The parameter object must also include an `init` or `storage` property: when `init` is specified, `storage` is optional and vice-versa. `init` is the initial storage object value that can be either Micheline or JSON encoded. `storage` is a JavaScript representation of a storage object. Optionally, you can also indicate a `balance` for the newly created contract and a `delegate`. ```js -const batch = await Tezos.contract.batch() +const batch = await Tezos.batch() .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) .withOrigination({ code: validCode, @@ -79,7 +79,7 @@ const batch = await Tezos.contract.batch() This simple method allows batching multiple delegation transactions. The method takes an object as a parameter with a single property: the address of the delegate. ```js -const batch = await Tezos.contract.batch().withDelegation({ +const batch = await Tezos.batch().withDelegation({ delegate: 'tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb', }); ``` @@ -89,19 +89,19 @@ const batch = await Tezos.contract.batch().withDelegation({ This method may be one of the most useful ones as it allows you to batch and emit multiple contract calls under one transaction. The parameter is also pretty simple: it takes the function you would call on the contract abstraction object if you would send a single transaction. ```js -const batch = await Tezos.wallet.batch() +const batch = await Tezos.batch() .withContractCall(contract.methods.interact('tezos')) .withContractCall(contract.methods.wait([['unit']])); ``` -#### - The `array of transactions` method +#### - The `with` method If you prefer having an array that contains objects with the different transactions you want to emit, you can use the `with` method. It allows you to group transactions as objects instead of concatenating function calls. The object you use expects the same properties as the parameter of the corresponding method with an additional `kind` property that indicates the kind of transaction you want to emit (a handy `opKind` enum is [exported from the Taquito package](https://github.com/ecadlabs/taquito/blob/master/packages/taquito-rpc/src/opkind.ts) with the valid values for the `kind` property). ```js import { OpKind } from '@taquito/taquito'; -const batch = await Tezos.wallet.batch([ +const batch = await Tezos.batch([ { kind: OpKind.TRANSACTION, to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', @@ -118,18 +118,17 @@ const batch = await Tezos.wallet.batch([ kind: OpKind.DELEGATION, delegate: 'tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb', }, - { kind: OpKind.TRANSACTION, - ...contract.methods.default([['Unit']]).toTransferParams() - } ]); ``` +> Note: you cannot make contract calls with this method. + #### - The `send` method After batching all the necessary operations together, you must use the `send` method to emit them. This step is very similar to what you would do to emit a single transaction. ```js -const batch = Tezos.contract.batch(); +const batch = await Tezos.batch(); /* * Here happens all the operation batching */ @@ -138,14 +137,14 @@ console.log('Operation hash:', batchOp.hash); await batchOp.confirmation(); ``` -Like with other operations created by Taquito, the `send` method is a promise that returns an object where the operation hash is available under the `hash` property and where you can wait for the `confirmation` method to confirm the transaction (taking as a parameter the number of confirmations you would like to receive). +Like with other operations created by Taquito, the `send` method is a promise that returns an object where the operation hash is available under the `hash` property and where you can wait until the transaction is confirmed with the `confirmation` method (taking as a parameter the number of confirmations you would like to receive). ## What are the limitations? -The limitations of batched operations are within the constraints of single processes. For example, the gas limit of the Tezos blockchain limits the number of functions that can batch together. -In addition to that, only a single account can sign batched operations. +The limitations of batched operations are within the limitations of single operations, for example, the number of operations batched together is limited by the gas limit of the Tezos blockchain. +In addition to that, batched operations can only be signed by a single account. ## References - [Integration tests](https://github.com/ecadlabs/taquito/blob/master/integration-tests/batch-api.spec.ts) -- [Documentation](https://tezostaquito.io/typedoc/classes/_taquito_taquito.walletoperationbatch.html) +- [Documentation](https://tezostaquito.io/typedoc/classes/_taquito_taquito.walletoperationbatch-2.html) diff --git a/docs/boilerplate.md b/docs/boilerplate.md index 2506a66e2b..9b331b67bd 100644 --- a/docs/boilerplate.md +++ b/docs/boilerplate.md @@ -5,15 +5,15 @@ author: Maksym Bykovskyy ### Framework agnostic demo -Taquito boilerplate is a framework-agnostic starter kit for developing web-based applications running on the Tezos network. +Taquito boilerplate is a framework-agnostic starter kit for developing web based applications running on Tezos network. -To get started with the Taquito boilerplate, please refer to the [Getting Started][get-started] section in the README found in the [taquito-boilerplate][repo] repository in Github. +For information about how to get started with taquito boilerplate please refer to the [Getting Started][get-started] section in the README found in the [taquito-boilerplate][repo] repository in Github. [get-started]: https://github.com/ecadlabs/taquito-boilerplate#getting-started [repo]: https://github.com/ecadlabs/taquito-boilerplate ### React demo -You can also download a demo app written in React to try Taquito. The app's template is available in the [Taquito React template repo][taquito-react-template] and only requires a few commands to be up and running. +You can also download a demo app written in React to try Taquito. The template for the app is available in the [Taquito React template repo][taquito-react-template] and only requires a few commands to be up and running. [taquito-react-template]: https://github.com/ecadlabs/taquito-react-template diff --git a/docs/complex_parameters.md b/docs/complex_parameters.md index fdde95e345..9bf2695918 100644 --- a/docs/complex_parameters.md +++ b/docs/complex_parameters.md @@ -14,7 +14,7 @@ The source code of the contract used in the following examples is available [her Here we have the storage of the contract defined in Michelson. -The storage uses a pair composed of a nested pair and a `map` (annotated as %validators). The nested pair consists of an address (annotated as %owner) and a `bigMap` (annotated as %records). The `map %validators` use a natural number (`nat`) as its key and address its value. The `bigMap %records` uses a value in `bytes` as its key and a pair consisting of nested pairs as its value. We find addresses and natural numbers in these nested pairs, where some are optional, and a `map` (annotated %data). The `map %data` uses a `string` as its key, and the user needs to choose the value of the `map` between different proposed types (`int,` `bytes,` `bool`, ...). We can notice in this example that an annotation identifies all the arguments. +This storage uses a pair which is itself composed of a pair and a `map` (annotated as %validators). The nested pair consists of an address (annotated as %owner) and a `bigMap` (annotated as %records). The `map %validators` uses a natural number (`nat`) as its key and an address as its value. The `bigMap %records` uses a value in `bytes` as its key and a pair consisting of nested pairs as its value. In these nested pairs, we find addresses and natural numbers, where some are optional, and a `map` (annotated %data). The `map %data` uses a `string` as its key and the user needs to choose the value of the `map` between different proposed types (`int`, `bytes`, `bool`, ...). We can notice in this example that all the arguments are identified by an annotation. ``` storage (pair @@ -47,14 +47,13 @@ storage (pair In this example, we originate the contract with initial values in the storage. We use the `MichelsonMap` class' of Taquito to initialize [the maps and the bigMap](https://tezostaquito.io/docs/maps_bigmaps). -As described above, the `map %data` uses a value that we chose between different types. When using Taquito, we need to surround the chosen argument with curly braces. In the current example, we initialize the value in the `map %data` to the boolean true: `{ bool: true }`. +As described above, the `map %data` uses a value that we chose between different types. When using Taquito, we need to surround the chosen argument with curly braces. In the current example, we initialize value in the `map %data` to the boolean true : `{ bool : true }`. -An annotation identifies every argument. Therefore we can ignore optional values if they are not needed. In the first entry of the `bigMap %records` of this example, we do not specify values for the `address %address` or the `nat %ttl` or the `nat %validator` but we define one for the `nat %validator` of the second entry of the bigmap. +Since every argument is identified by an annotation, we can ignore optional values if they are not needed. In the first entry of the `bigMap %records` of this example, we do not specify a value for the `address %address`, the `nat %ttl` and the `nat %validator`, but we define one for the `nat %validator` of the second entry of the bigMap. -```js live noInline -// import { TezosToolkit, MichelsonMap } from '@taquito/taquito'; -// import { importKey } from '@taquito/signer'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/edonet'); +```js +import { TezosToolkit, MichelsonMap } from '@taquito/taquito'; +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); //%data const dataMap = new MichelsonMap(); @@ -85,26 +84,21 @@ const validatorsMap = new MichelsonMap(); //key is a nat, value is an address validatorsMap.set('1', 'tz1btkXVkVFWLgXa66sbRJa8eeUSwvQFX4kP') -importKey(Tezos, emailExample, passwordExample, mnemonicExample, secretExample) -.then(() => { - return Tezos.contract.originate({ - code : contractJson, +const originationOp = await Tezos.contract.originate({ + code : contractJSON, storage : { owner : 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', //address records: recordsBigMap, validators : validatorsMap }}) -}).then((contractOriginated) => { - println(`Waiting for confirmation of origination for ${contractOriginated.contractAddress}...`); - return contractOriginated.contract(); -}).then((contract) => { - println(`Origination completed.`); -}).catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); + +const contract = await originationOp.contract() +console.log(contract.address) ``` ## Calling the function of a contract having a complex object as a parameter -The contract contains a function named `set_child_record`. The parameter of the function is composed of nested pairs regrouping different datatypes (address, `map`, `bytes` and `nat`). Two of its arguments, the `address %address` and the `nat %ttl`, are optional. The `map %data` uses a `string` as its key. The user needs to choose the value of the `map` between different proposed types. +The contract contains a function named `set_child_record`. The parameter of the function is composed of nested pairs regrouping different datatypes (address, `map`, `bytes` and `nat`). Two of its arguments, the `address %address` and the `nat %ttl`, are optional. The `map %data` uses a `string` as its key and the user needs to choose the value of the `map` between different proposed types. Here is the parameter of the function defined in Michelson : @@ -131,12 +125,12 @@ The way to write the parameter when calling the function of a contract with Taqu ```js live noInline // import { TezosToolkit, MichelsonMap } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/edonet') +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet') // import { importKey } from '@taquito/signer'; importKey(Tezos, emailExample, passwordExample, mnemonicExample, secretExample) .then(signer => { - return Tezos.contract.at('KT1Sh32fitgLhgHA1o1mz5mzkrehZfZaGZJA') + return Tezos.contract.at('KT1JjYmy6q4xxZGL4qXQGkSra7xNtrEpQ85K') }).then(myContract => { const dataMap = new MichelsonMap(); dataMap.set("Hello World", { bool : true }) @@ -149,12 +143,12 @@ importKey(Tezos, emailExample, passwordExample, mnemonicExample, secretExample) ```js live noInline // import { TezosToolkit, MichelsonMap } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/edonet') +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet') // import { importKey } from '@taquito/signer'; importKey(Tezos, emailExample, passwordExample, mnemonicExample, secretExample) .then(signer => { - return Tezos.contract.at('KT1Sh32fitgLhgHA1o1mz5mzkrehZfZaGZJA') + return Tezos.contract.at('KT1JjYmy6q4xxZGL4qXQGkSra7xNtrEpQ85K') }).then(myContract => { const dataMap = new MichelsonMap(); dataMap.set("Hello World", { bool : true }) @@ -171,7 +165,7 @@ importKey(Tezos, emailExample, passwordExample, mnemonicExample, secretExample) println(`Waiting for ${op.hash} to be confirmed...`); return op.confirmation(1).then(() => op.hash); }).then(hash => { - println(`Operation injected: https://better-call.dev/florencenet/KT1Sh32fitgLhgHA1o1mz5mzkrehZfZaGZJA/operations`); + println(`Operation injected: https://better-call.dev/carthagenet/KT1JjYmy6q4xxZGL4qXQGkSra7xNtrEpQ85K/operations`); }).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); ``` #### Call the set_child_record function when optional arguments are null @@ -180,12 +174,12 @@ The `address %address` and the `nat %ttl` of the `set_child_record` function are ```js live noInline // import { TezosToolkit, MichelsonMap } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet') +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet') // import { importKey } from '@taquito/signer'; importKey(Tezos, emailExample, passwordExample, mnemonicExample, secretExample) .then(signer => { - return Tezos.contract.at('KT1Sh32fitgLhgHA1o1mz5mzkrehZfZaGZJA') + return Tezos.contract.at('KT1JjYmy6q4xxZGL4qXQGkSra7xNtrEpQ85K') }).then(myContract => { const dataMap = new MichelsonMap(); dataMap.set("Hello World", { nat : '3' }) @@ -202,6 +196,6 @@ importKey(Tezos, emailExample, passwordExample, mnemonicExample, secretExample) println(`Waiting for ${op.hash} to be confirmed...`); return op.confirmation(1).then(() => op.hash); }).then(hash => { - println(`Operation injected: https://better-call.dev/florencenet/KT1Sh32fitgLhgHA1o1mz5mzkrehZfZaGZJA/operations`); + println(`Operation injected: https://better-call.dev/carthagenet/KT1JjYmy6q4xxZGL4qXQGkSra7xNtrEpQ85K/operations`); }).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); ``` \ No newline at end of file diff --git a/docs/drain_account.md b/docs/drain_account.md index 4194d9c456..c132d6703b 100644 --- a/docs/drain_account.md +++ b/docs/drain_account.md @@ -3,154 +3,108 @@ title: Drain an account author: Roxane Letourneau --- -This section shows how to transfer all tokens from one account (implicit or originated) to another so that the source account balance is zero. +In this section, we show how to transfer all tokens from one account (implicit or originated) to another so that the source account balance is zero. ## Draining implicit accounts (tz1, tz2, tz3) -We want to "empty" an implicit account by sending all of its tokens to another account. It can be tricky to empty a tezos account because the system must subtract the gas fee from the account balance. +We want to "empty" an implicit account by sending all of its tokens to another account. It can be tricky to empty a tezos account completely because the gas fee must be subtracted from the account balance. To do so, we first need to estimate the fees related to this operation. The `estimate` property of the `TezosToolkit` provides access to operation estimation utilities. Calling the `transfer` method will return an instance of the `Estimate` class and its `suggestedFeeMutez` property will allow us to know the fee associated with the operation. -Once we know the associated fees, we can calculate the maximum amount that needs to send to drain the account by subtracting these fees from the account balance. +Once we know the associated fees, we can calculate the maximum amount that needs to be sent to drain the account by subtracting these fees from the account balance. -Finally, we can do the transfer operation and use the maximum amount we just calculated as the `amount` parameter of the `transfer` function. +Finally, we can do the transfer operation and use the maximum amount we just calculated as the `amount` parameter of the `transfer` function. :::note -In the following example, we have not revealed the account that we want to empty. We need to keep in mind that there are fees related to a reveal operation. We are subtracting 1420 mutez from the balance to cover reveal fees. +In the following example, the account we want to empty is not yet revealed. We need to keep in mind that there are fees related to a reveal operation. This is why we are subtracting 1420 mutez from the balance as it will be used as reveal fees. **If the account to drain has already been revealed, you must not subtract this amount (1420 mutez) from the balance.** ::: ```js live noInline -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -Tezos.signer - .publicKeyHash() - .then((address) => { - Tezos.tz.getBalance(address).then((balance) => { - println( - `The account we want to drain is ${address}.\nIts initial balance is ${ - balance.toNumber() / 1000000 - } ꜩ.` - ); - Tezos.estimate - .transfer({ - to: 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', - amount: balance.toNumber() - 1420, - mutez: true, - }) - .then((estimate) => { - //Subtract 1420 mutez for fees related to the reveal operation - const maxAmount = balance.minus(estimate.suggestedFeeMutez).toNumber() - 1420; - println( - `The estimated fees related to the emptying operation are ${ - estimate.suggestedFeeMutez - } mutez.\nConsidering the fees, the amount we need to send to empty the account is ${ - maxAmount / 1000000 - } ꜩ.` - ); - return Tezos.contract.transfer({ - to: 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', - mutez: true, - amount: maxAmount, - fee: estimate.suggestedFeeMutez, - gasLimit: estimate.gasLimit, - storageLimit: 0, - }); - }) - .then((op) => { - println(`Waiting for confirmation of the draining operation...`); - return op.confirmation(1).then(() => op.hash); - }) - .then((hash) => { - println(`The account has been emptied.`); - return Tezos.tz.getBalance(address); - }) - .then((finalBalance) => { - println(`The balance is now ${finalBalance.toNumber() / 1000000} ꜩ.`); - }); - }); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + +Tezos.signer.publicKeyHash() +.then( address => { + Tezos.tz.getBalance(address) + .then( balance => { + println(`The account we want to drain is ${address}.\nIts initial balance is ${balance.toNumber() / 1000000} ꜩ.`) + Tezos.estimate.transfer({ to: 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', amount: balance.toNumber() - 1420, mutez : true}) + .then(estimate =>{ + //Subtract 1420 mutez for fees related to the reveal operation + const maxAmount = balance.minus(estimate.suggestedFeeMutez).toNumber() - 1420; + println(`The estimated fees related to the emptying operation are ${estimate.suggestedFeeMutez} mutez.\nConsidering the fees, the amount we need to send to empty the account is ${maxAmount / 1000000} ꜩ.`) + return Tezos.contract.transfer({ to: 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', mutez:true, amount: maxAmount, fee: estimate.suggestedFeeMutez, gasLimit: estimate.gasLimit, storageLimit: 0 }) + }).then(op => { + println(`Waiting for confirmation of the draining operation...`); + return op.confirmation(1).then(() => op.hash); + }).then(hash => { + println(`The account has been emptied.`) + return Tezos.tz.getBalance(address) + }).then( finalBalance => { + println(`The balance is now ${finalBalance.toNumber() / 1000000} ꜩ.`) +})})}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); ``` ## Draining originated accounts (KT1) -In the following example, we first originate a contract with a starting balance of 8 ꜩ. Then, we transfer all of its tokens to an implicit account. +In the following example, we first originate a contract with a starting balance of 8 ꜩ. Then, we transfer all of its tokens to an implicit account. -The contract we originate is a `manager contract.` It has a `do` method taking a lambda function as a parameter. We call the smart contract by passing a function called `transferImplicit` to its `do` method to transfer its tokens to the implicit address. More information on transfers involving originated KT1 addresses can be found [here](https://tezostaquito.io/docs/making_transfers#transfers-involving-originated-kt1-addresses). +The contract we originate is a `manager contract`. It has a `do` method taking a lambda function as a parameter. We call the smart contract by passing a function called `transferImplicit` to its `do` method in order to transfer its tokens to the implicit address. More information on transfers involving originated KT1 addresses can be found [here](https://tezostaquito.io/docs/making_transfers#transfers-involving-originated-kt1-addresses). -In the example, we estimate the transfer operation before doing it. The associated fees are deducted from the manager's address when draining the account. Thus, for the operation to be successful, the manager's address for that account must contain funds to cover the gas. +In the example, we estimate the transfer operation before doing it. When draining the account, the associated fees will be deducted from the manager's address. Thus, for the operation to be successful, the manager's address for that account must contain funds to cover the gas. ```js live noInline -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -function transferImplicit(key, mutez) { - return [ - { prim: 'DROP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { - prim: 'PUSH', - args: [{ prim: 'key_hash' }, { string: key }], - }, - { prim: 'IMPLICIT_ACCOUNT' }, - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: `${mutez}` }], - }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' }, - ]; -} - -Tezos.signer - .publicKeyHash() - .then((address) => { - Tezos.contract - .originate({ - balance: '8', - code: managerCode, - init: { string: address }, - }) - .then((contractOrigination) => { - println( - `Waiting for confirmation of origination for ${contractOrigination.contractAddress}...` - ); - return contractOrigination.contract(); - }) - .then((contract) => { - println(`Origination completed.`); - Tezos.tz.getBalance(contract.address).then((balance) => { - println(`The balance of the contract is ${balance.toNumber() / 1000000} ꜩ.`); - const estimateOp = contract.methods - .do(transferImplicit('tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', balance.toNumber())) - .toTransferParams({}); - println(`Waiting for the estimation of the smart contract call...`); - Tezos.estimate - .transfer(estimateOp) - .then((estimate) => { - //Will be deducted from manager's address - println( - `The estimated fees related to the emptying operation are ${estimate.suggestedFeeMutez} mutez.` - ); - return contract.methods - .do(transferImplicit('tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', balance.toNumber())) - .send({ amount: 0 }); - }) - .then((operation) => { - println(`Waiting for confirmation of the draining operation...`); - return operation.confirmation(1).then(() => operation.hash); - }) - .then((hash) => { - println(`The account has been emptied.`); - return Tezos.tz.getBalance(contract.address); - }) - .then((finalBalance) => { - println(`The balance is now ${finalBalance.toNumber() / 1000000} ꜩ.`); - }); - }); - }); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + +function transferImplicit (key, mutez) { + return [ + { prim: 'DROP' }, + { prim: 'NIL', args: [{ prim: 'operation' }] }, + { + prim: 'PUSH', + args: [{ prim: 'key_hash' }, { string: key }], + }, + { prim: 'IMPLICIT_ACCOUNT' }, + { + prim: 'PUSH', + args: [{ prim: 'mutez' }, { int: `${mutez}` }], + }, + { prim: 'UNIT' }, + { prim: 'TRANSFER_TOKENS' }, + { prim: 'CONS' }, + ]; + }; + +Tezos.signer.publicKeyHash() +.then( address => { + Tezos.contract.originate({ + balance: "8", + code: managerCode, + init: { "string": address } }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` + .then( contractOrigination => { + println(`Waiting for confirmation of origination for ${contractOrigination.contractAddress}...`) + return contractOrigination.contract() + }).then ( contract => { + println(`Origination completed.`); + Tezos.tz.getBalance(contract.address) + .then(balance => { + println(`The balance of the contract is ${balance.toNumber() / 1000000} ꜩ.`) + const estimateOp = contract.methods.do(transferImplicit("tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr", balance.toNumber())).toTransferParams({}) + println(`Waiting for the estimation of the smart contract call...`); + Tezos.estimate.transfer(estimateOp) + .then( estimate => { + //Will be deducted from manager's address + println(`The estimated fees related to the emptying operation are ${estimate.suggestedFeeMutez} mutez.`) + return contract.methods.do(transferImplicit("tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr", balance.toNumber())).send({ amount: 0 }) + }).then( operation => { + println(`Waiting for confirmation of the draining operation...`); + return operation.confirmation(1).then(() => operation.hash); + }).then(hash => { + println(`The account has been emptied.`) + return Tezos.tz.getBalance(contract.address) + }).then( finalBalance => { + println(`The balance is now ${finalBalance.toNumber() / 1000000} ꜩ.`) + })})})}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); + ``` \ No newline at end of file diff --git a/docs/estimate.md b/docs/estimate.md index adc873af39..c5cf9cfa6e 100644 --- a/docs/estimate.md +++ b/docs/estimate.md @@ -3,39 +3,38 @@ title: Estimate Operations author: Edmond Lee & Roxane Letourneau --- -Taquito's estimate method can be used to estimate fees, gas, and storage associated with an operation. +Taquito's estimate method can be used to estimate fees, gas and storage associated with an operation. ## Estimate Values -[`burnFeeMutez`]: The number of Mutez that will be burned for the storage of the operation. Returns a number. +[`burnFeeMutez`](https://tezostaquito.io/typedoc/classes/_taquito_taquito.estimate.html#burnfeemutez): The number of Mutez that will be burned for the storage of the operation. Returns a number. -[`gasLimit`]: The limit on the amount of gas a given operation can consume. Returns a number. +[`gasLimit`](https://tezostaquito.io/typedoc/classes/_taquito_taquito.estimate.html#gaslimit): The limit on the amount of gas a given operation can consume. Returns a number. -[`minimalFeeMutez`]: Minimum fees for the operation according to baker defaults. Returns a number. +[`minimalFeeMutez`](https://tezostaquito.io/typedoc/classes/_taquito_taquito.estimate.html#minimalfeemutez): Minimum fees for the operation according to baker defaults. Returns a number. -[`storageLimit`]: The limit on the amount of storage an operation can use. Returns a number. +[`storageLimit`](https://tezostaquito.io/typedoc/classes/_taquito_taquito.estimate.html#storagelimit): The limit on the amount of storage an operation can use. Returns a number. -[`suggestedFeeMutez:`]: The suggested fee for the operation includes minimal fees and a small buffer. Returns a number. +[`suggestedFeeMutez:`](https://tezostaquito.io/typedoc/classes/_taquito_taquito.estimate.html#suggestedfeemutez) The suggested fee for the operation which includes minimal fees and a small buffer. Returns a number. -[`totalCost`]: The sum of `minimalFeeMutez` + `burnFeeMutez`. Returns a number. +[`totalCost`](https://tezostaquito.io/typedoc/classes/_taquito_taquito.estimate.html#totalcost): The sum of `minimalFeeMutez` + `burnFeeMutez`. Returns a number. -[`usingBaseFeeMutez`]: Fees according to your specified base fee will ensure that at least minimum fees are used. +[`usingBaseFeeMutez`](https://tezostaquito.io/typedoc/classes/_taquito_taquito.estimate.html#usingbasefeemutez): Fees according to your specified base fee will ensure that at least minimum fees are used. ### Estimate a transfer operation -The following example shows an estimate of the fees associated with transferring 2ꜩ to `tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY` address. The configuration of the signer is to use a throw-away private key for demonstration purposes. +The following example shows an estimate of the fees associated with transferring 2ꜩ to `tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY` address. For demonstration purpose, the signer is configured using a throw-away private key. ```js live noInline // import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); const amount = 2; const address = 'tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY'; println(`Estimating the transfer of ${amount} ꜩ to ${address} : `); -Tezos.estimate - .transfer({ to: address, amount: amount }) - .then((est) => { +Tezos.estimate.transfer({ to: address, amount: amount }) + .then(est => { println(`burnFeeMutez : ${est.burnFeeMutez}, gasLimit : ${est.gasLimit}, minimalFeeMutez : ${est.minimalFeeMutez}, @@ -44,38 +43,37 @@ Tezos.estimate totalCost : ${est.totalCost}, usingBaseFeeMutez : ${est.usingBaseFeeMutez}`); }) - .catch((error) => console.table(`Error: ${JSON.stringify(error, null, 2)}`)); + .catch(error => console.table(`Error: ${JSON.stringify(error, null, 2)}`)); ``` ### Estimate a smart contract call -This example will demonstrate how to estimate the fees related to calling a smart contract. The Ligo source code for the smart contract used in this example is at [Ligo Web IDE](https://ide.ligolang.org/p/N2QTykOAXBkXmiKcRCyg3Q). +This example will demonstrate how to estimate the fees related to calling a smart contract. The Ligo source code for the smart contract used in this example can be found at [Ligo Web IDE](https://ide.ligolang.org/p/N2QTykOAXBkXmiKcRCyg3Q). ```js live noInline // import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); -Tezos.contract - .at('KT1QA7fuaMReave1jLNZxPRmQq6p2Rum3tiL') - .then((contract) => { +Tezos.contract.at('KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC') +.then(contract => { const i = 7; return contract.methods.increment(i).toTransferParams({}); }) - .then((op) => { + .then(op => { println(`Estimating the smart contract call : `); - return Tezos.estimate.transfer(op); + return Tezos.estimate.transfer(op) }) - .then((est) => { + .then(est => { println(`burnFeeMutez : ${est.burnFeeMutez}, gasLimit : ${est.gasLimit}, minimalFeeMutez : ${est.minimalFeeMutez}, storageLimit : ${est.storageLimit}, suggestedFeeMutez : ${est.suggestedFeeMutez}, totalCost : ${est.totalCost}, - usingBaseFeeMutez : ${est.usingBaseFeeMutez}`); - }) - .catch((error) => console.table(`Error: ${JSON.stringify(error, null, 2)}`)); + usingBaseFeeMutez : ${est.usingBaseFeeMutez}`) + }) + .catch(error => console.table(`Error: ${JSON.stringify(error, null, 2)}`)); ``` ### Estimate a contract origination @@ -84,26 +82,25 @@ In this example, we will use the estimate method of Taquito on a contract origin ```js live noInline // import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); println(`Estimating the contract origination : `); -Tezos.estimate - .originate({ + Tezos.estimate.originate({ code: genericMultisigJSONfile, storage: { stored_counter: 0, threshold: 1, - keys: ['edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t'], - }, + keys: ['edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t'] + } }) - .then((originationOp) => { + .then (originationOp => { println(`burnFeeMutez : ${originationOp.burnFeeMutez}, gasLimit : ${originationOp.gasLimit}, minimalFeeMutez : ${originationOp.minimalFeeMutez}, storageLimit : ${originationOp.storageLimit}, suggestedFeeMutez : ${originationOp.suggestedFeeMutez}, totalCost : ${originationOp.totalCost}, - usingBaseFeeMutez : ${originationOp.usingBaseFeeMutez}`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); + usingBaseFeeMutez : ${originationOp.usingBaseFeeMutez}`) + }) + .catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); ``` diff --git a/docs/inmemory_signer.md b/docs/inmemory_signer.md index be457fba23..f185c6db44 100644 --- a/docs/inmemory_signer.md +++ b/docs/inmemory_signer.md @@ -2,37 +2,37 @@ title: In Memory Signer author: Simon Boissonneault-Robert --- - :::caution Warning -**Storing private keys in memory is suitable for development workflows but risky for +**Storing private keys in memory is suitable for development workflows, but risky for production use-cases! Use the InMemorySigner appropriately given your risk profile** ::: -Inmemory signer is a local signer implementation that allows you to directly use a private key in your browser or your nodejs app. +In memory signer is a local signer implementation that allows you to directly use a private key in your browser or your nodejs app. -This signer implementation is for development workflows. +This signer implementation is intended to be used for development workflows. -Using the InMemorySigner for operations on mainnet where your system uses tokens of real value is discouraged. +Using the InMemorySigner for operations on mainnet where your system is dealing with tokens of real value, is discouraged. -If you require the server-side signing of operations on the mainnet, we recommend exploring the use of the Remote Signer package in conjunction with an HSM remote signer such as [Signatory][0] or [TacoInfra's Remote Signer][1]. +If you require server-side signing of operations on mainnet, we recommend exploring the use of the Remote Signer package in conjunction with an HSM remote signer such as [Signatory][0], or [TacoInfra's Remote Signer][1]. ## Usage ### Loading an unencrypted private key -If you configure Taquito this way, you will now be able to use every function that needs signing support. +If you configure taquito this way you will now be able to use every function that needs signing support. ```js -import { InMemorySigner } from '@taquito/signer'; + +import { InMemorySigner } from '@taquito/signer' import { TezosToolkit } from '@taquito/taquito'; const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); -Tezos.setProvider({ signer: await InMemorySigner.fromSecretKey('your_private_key') }); +Tezos.setProvider({signer: await InMemorySigner.fromSecretKey('your_private_key')}) ``` :::note -The operation will be signed automatically using the signer (no prompt) +Operation will be signed automatically using the signer (no prompt) ::: The `fromSecretKey` method takes a secret that is base58 encoded as a parameter. Here are three examples with unencrypted private keys: @@ -40,35 +40,31 @@ The `fromSecretKey` method takes a secret that is base58 encoded as a parameter. ```js live noInline // import { TezosToolkit } from '@taquito/taquito' // import { InMemorySigner } from '@taquito/signer' -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); InMemorySigner.fromSecretKey('edsk2rKA8YEExg9Zo2qNPiQnnYheF1DhqjLVmfKdxiFfu5GyGRZRnb') - .then((theSigner) => { - Tezos.setProvider({ signer: theSigner }); - //We can access the public key hash - return Tezos.signer.publicKeyHash(); - }) - .then((publicKeyHash) => { - println(`The public key hash associated is: ${publicKeyHash}.`); - }) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +.then( theSigner => { + Tezos.setProvider({signer: theSigner}) + //We can access the public key hash + return Tezos.signer.publicKeyHash() +}).then( publicKeyHash => { + println(`The puclic key hash associated is: ${publicKeyHash}.`) +}).catch(error => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` ```js live noInline // import { TezosToolkit } from '@taquito/taquito' // import { InMemorySigner } from '@taquito/signer' -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); InMemorySigner.fromSecretKey('spsk2Fiz7sGP5fNMJrokp6ynTa4bcFbsRhw58FHXbNf5ProDNFJ5Xq') - .then((theSigner) => { - Tezos.setProvider({ signer: theSigner }); - //We can access the public key hash - return Tezos.signer.publicKeyHash(); - }) - .then((publicKeyHash) => { - println(`The public key hash associated is: ${publicKeyHash}.`); - }) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +.then( theSigner => { + Tezos.setProvider({signer: theSigner}) + //We can access the public key hash + return Tezos.signer.publicKeyHash() +}).then( publicKeyHash => { + println(`The puclic key hash associated is: ${publicKeyHash}.`) +}).catch(error => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` When required, Taquito offers the `b58cencode` function allowing to encode the secret in base58. The parameters of the function are the secret, that can be a `hex string` or an `Uint8Array`, and the desired prefix. Here is an example with a `hex string`: @@ -77,40 +73,33 @@ When required, Taquito offers the `b58cencode` function allowing to encode the s // import { b58cencode, prefix, Prefix } from '@taquito/utils'; // import { TezosToolkit } from '@taquito/taquito' // import { InMemorySigner } from '@taquito/signer' -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); -const b58encodedSecret = b58cencode( - '7c842c15c8b0c8fd228e6cb5302a50201f41642dd36b699003fb3c857920bc9d', - prefix[Prefix.P2SK] -); -println( - `The secret is encoded in base58 and the prefix "p2sk" is added to it: ${b58encodedSecret}.` -); +const b58encodedSecret = b58cencode('7c842c15c8b0c8fd228e6cb5302a50201f41642dd36b699003fb3c857920bc9d', prefix[Prefix.P2SK]); +println(`The secret is encoded in base58 and the prefix "p2sk" is added to it: ${b58encodedSecret}.`) //We take the encoded secret to configure the signer. InMemorySigner.fromSecretKey(b58encodedSecret) - .then((theSigner) => { - Tezos.setProvider({ signer: theSigner }); - //We can access the public key hash - return Tezos.signer.publicKeyHash(); - }) - .then((publicKeyHash) => { - println(`The public key hash associated is: ${publicKeyHash}.`); - }) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +.then( theSigner => { + Tezos.setProvider({signer: theSigner}) + //We can access the public key hash + return Tezos.signer.publicKeyHash() +}).then( publicKeyHash => { + println(`The puclic key hash associated is: ${publicKeyHash}.`) +}).catch(error => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); + ``` ### Loading an encrypted private key with a passphrase -If your private key is encrypted, you can specify a passphrase to decrypt it. Doing so will automatically decrypt the key and allow you to use the signer to sign transactions. +If your private key is encrypted, you can specify a passphrase to decrypt it. Doing so will automatically decrypt the key and allow you to use the signer to sign transactions. ```js -import { InMemorySigner } from '@taquito/signer'; -import { TezosToolkit } from '@taquito/taquito'; + +import { InMemorySigner } from '@taquito/signer' +import { TezosToolkit } from '@taquito/taquito' const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); -Tezos.setProvider({ - signer: await InMemorySigner.fromSecretKey('your_private_key', 'your_passphrase'), -}); +Tezos.setProvider({signer: await InMemorySigner.fromSecretKey('your_private_key', 'your_passphrase')}) ``` Here are three examples with encrypted private keys where the passphrase used is `test`: @@ -118,61 +107,46 @@ Here are three examples with encrypted private keys where the passphrase used is ```js live noInline // import { TezosToolkit } from '@taquito/taquito' // import { InMemorySigner } from '@taquito/signer' -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -InMemorySigner.fromSecretKey( - 'edesk1GXwWmGjXiLHBKxGBxwmNvG21vKBh6FBxc4CyJ8adQQE2avP5vBB57ZUZ93Anm7i4k8RmsHaPzVAvpnHkFF', - 'test' -) - .then((theSigner) => { - Tezos.setProvider({ signer: theSigner }); - //We can access the public key hash - return Tezos.signer.publicKeyHash(); - }) - .then((publicKeyHash) => { - println(`The public key hash associated is: ${publicKeyHash}.`); - }) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + +InMemorySigner.fromSecretKey('edesk1GXwWmGjXiLHBKxGBxwmNvG21vKBh6FBxc4CyJ8adQQE2avP5vBB57ZUZ93Anm7i4k8RmsHaPzVAvpnHkFF', 'test') +.then( theSigner => { + Tezos.setProvider({signer: theSigner}) + //We can access the public key hash + return Tezos.signer.publicKeyHash() +}).then( publicKeyHash => { + println(`The puclic key hash associated is: ${publicKeyHash}.`) +}).catch(error => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` ```js live noInline // import { TezosToolkit } from '@taquito/taquito' // import { InMemorySigner } from '@taquito/signer' -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -InMemorySigner.fromSecretKey( - 'spesk24UQkAiJk8X6AufNtRv1WWPp2BAssEgmijCTQPMgUXweSKPmLdbyAjPmCG1pR2dC9P5UZZVeZcb7zVodUHZ', - 'test' -) - .then((theSigner) => { - Tezos.setProvider({ signer: theSigner }); - //We can access the public key hash - return Tezos.signer.publicKeyHash(); - }) - .then((publicKeyHash) => { - println(`The public key hash associated is: ${publicKeyHash}.`); - }) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + +InMemorySigner.fromSecretKey('spesk24UQkAiJk8X6AufNtRv1WWPp2BAssEgmijCTQPMgUXweSKPmLdbyAjPmCG1pR2dC9P5UZZVeZcb7zVodUHZ', 'test') +.then( theSigner => { + Tezos.setProvider({signer: theSigner}) + //We can access the public key hash + return Tezos.signer.publicKeyHash() +}).then( publicKeyHash => { + println(`The puclic key hash associated is: ${publicKeyHash}.`) +}).catch(error => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` ```js live noInline // import { TezosToolkit } from '@taquito/taquito' // import { InMemorySigner } from '@taquito/signer' -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -InMemorySigner.fromSecretKey( - 'p2esk28hoUE2J88QNFj2aDX2pjzL7wcVh2g8tkEwtWWguby9M3FHUgSbzvF2Sd7wQ4Kd8crFwvto6gF3otcBuo4T', - 'test' -) - .then((theSigner) => { - Tezos.setProvider({ signer: theSigner }); - //We can access the public key hash - return Tezos.signer.publicKeyHash(); - }) - .then((publicKeyHash) => { - println(`The public key hash associated is: ${publicKeyHash}.`); - }) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + +InMemorySigner.fromSecretKey('p2esk28hoUE2J88QNFj2aDX2pjzL7wcVh2g8tkEwtWWguby9M3FHUgSbzvF2Sd7wQ4Kd8crFwvto6gF3otcBuo4T', 'test') +.then( theSigner => { + Tezos.setProvider({signer: theSigner}) + //We can access the public key hash + return Tezos.signer.publicKeyHash() +}).then( publicKeyHash => { + println(`The puclic key hash associated is: ${publicKeyHash}.`) +}).catch(error => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` ### Using a testnet faucet key @@ -181,7 +155,7 @@ To load a faucet key (available from https://faucet.tzalpha.net/) for working a can do so as follows: ```js -import { TezosToolkit } from '@taquito/taquito'; +import { TezosToolkit } from '@taquito/taquito' import { importKey } from '@taquito/taquito-signer'; const Tezos = new TezosToolkit('https://YOUR_PREFERRED_TESTNET_RPC_URL'); @@ -222,20 +196,20 @@ importKey( // Your Tezos instance is now operably configured for signing with the faucet key. ``` -If you configure Taquito this way, you will now be able to use every function that needs signing support. +If you configure taquito this way, you will now be able to use every function that needs signing support. :::note -The operation will be signed automatically using the signer (no prompt) +Operation will be signed automatically using the signer (no prompt) ::: ### A simple factory multiple keys/wallets If you require to sign operations with many different keys, then implementing a factory function can be useful. -The `signerFactory` function example creates a new Tezos instance. Use the Tezos instance for signing, and discard it when complete. +The `signerFactory` function example creates a new Tezos instance. Use the tezos instance for signing, and discard it when complete. ```js -import { InMemorySigner } from '@taquito/signer'; -import { TezosToolkit } from '@taquito/taquito'; +import { InMemorySigner } from "@taquito/signer"; +import { TezosToolkit } from "@taquito/taquito"; const signerFactory = async (rpcUrl: string, pk: string) => { const Tezos = new TezosToolkit(rpcUrl); @@ -243,9 +217,9 @@ const signerFactory = async (rpcUrl: string, pk: string) => { return Tezos; }; -const bob = await signerFactory('bobs_secret_key'); -const alice = await signerFactory('alices_secret_key'); +const bob = await signerFactory('bobs_secret_key') +const alice = await signerFactory('alices_secret_key') ``` -[0]: https://signatory.io -[1]: https://github.com/tacoinfra/remote-signer \ No newline at end of file +[0]: https://signatory.io +[1]: https://github.com/tacoinfra/remote-signer diff --git a/docs/lambda_view.md b/docs/lambda_view.md index 00ad22a455..4efdcd431b 100644 --- a/docs/lambda_view.md +++ b/docs/lambda_view.md @@ -1,14 +1,15 @@ --- id: lambda_view -title: Lambda View +title: Using the Lambda View --- :::caution note -Since a call is made to the lambda contract, a signer needs to be configured on your TezosToolkit instance. +This is a prerelease feature. If you have questions or issues, please feel free to file them on our [Github](https://github.com/ecadlabs/taquito) issue tracker. ::: The lambda view is a way to retrieve data from a smart contract's storage -without incurring fees via a contract's view method. This solution is a temporary solution that we will address in a future protocol update. +without incurring fees via a contract's `view method`. This is a temporary +solution that will be addressed in a future protocol update. ## Recap: Views & Callbacks @@ -16,7 +17,7 @@ As you develop applications on the blockchain, you'll soon realize you not only want to interact with Smart Contracts by updating information but also by reading back pieces of data. -Many Smart Contracts have what's known as `view methods,` which allow you to +Many Smart Contracts have what's known as `view methods`, which allow you to specify parameters around what data you'd like to retrieve. They also require you to supply a callback contract whose storage will update as a result of executing the view method. @@ -32,34 +33,36 @@ One issue with using views and callbacks is that, just like any operation executed on Tezos, each read has a small fee attached to it. The amount is trivial for occasional reads, but it becomes a burden at higher volumes. -Another drawback is speed: since we're invoking a contract method, we have to wait for confirmation to retrieve the requested data. You may not find this +Another drawback is speed: since we're invoking a contract method, we have to +wait for confirmation in order retrieve the data we requested. This may not be acceptable if the application you're working on requires consistent, faster response times. ## Enter Lambda View -We can work around these limitations to send our contract address, +What we can do to work around these limitations is to send our contract address, view method, and parameters as its own "view" to a simple lambda contract that -_always_ fails. We refer to this method as a "lambda view." +_always_ fails. We refer to this method as a "lambda view". The result of invoking our always-failing lambda contract is an error from the -blockchain. That may not sound very useful, but the brilliant part is that the -error we receive contains the information we requested! We can _not_ -incur a fee for requesting data or waiting for confirmation from the network to call view methods. +blockchain. That may not sound very useful, but the clever part is that the +error we receive contains the information we requested! This allows us to _not_ +incur a fee for requesting data or wait for confirmation from the network in +order to call view methods. ## Considerations - This method for retrieving data from the blockchain is not considered ideal. A - future protocol update will make this goal easier to attain without the use of - a lambda view. +future protocol update will make this goal easier to attain without the use of +a lambda view. - Invoking the lambda view in the browser will raise errors in the web console. ## Usage -We have integrated the lambda view feature into the `ContractAbstraction` class. This integration allows retrieving data from a very similar view to call other entry points of a smart contract with Taquito. +The lambda view feature has been integrated into the `ContractAbstraction` class. This allows retrieving data from a view in a very similar way than calling other entrypoints of a smart contract with Taquito. -Here's an example of using the Lambda View on a FA1.2 contract. +Here's an example of using the Lambda View on an FA1.2 contract. Taquito dynamically creates a `getAllowance`, `getBalance` and `getTotalSupply` view method that the developer can call as follows: @@ -67,40 +70,34 @@ Taquito dynamically creates a `getAllowance`, `getBalance` and `getTotalSupply` - `myContract.views.getBalance(parameters)` - `myContract.view.getTotalSupply(parameters)` -:::note +:::note Parameters must not include the callback parameter ::: -Then we call the `read()` method, which takes an optional lambda contract address. _This optional parameter is useful for the sandbox users as they will need to deploy and use their lambda contract._ +Then we call the `read()` method, which takes an optional lambda contract address. *This optional parameter is useful for the sandbox users as they will need to deploy and use their own lambda contract.* ```js live noInline -Tezos.contract - .at('KT1JoWijNpTUTqd2eZFA9X519aXANctKu5fV') - .then((contract) => { - return contract.views.getTotalSupply([['Unit']]).read(); - }) - .then((response) => { - println(response); - }) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +Tezos.contract.at('KT1A87ZZL8mBKcWGr34BVsERPCJjfX82iBto') +.then(contract => { + return contract.views.getTotalSupply([['Unit']]).read() +}).then(response => { + println(response) +}).catch(error => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` ```js live noInline -Tezos.contract - .at('KT1JoWijNpTUTqd2eZFA9X519aXANctKu5fV') - .then((contract) => { - return contract.views.getBalance('tz1c1X8vD4pKV9TgV1cyosR7qdnkc8FTEyM1').read(); - }) - .then((response) => { - println(response); - }) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +Tezos.contract.at('KT1A87ZZL8mBKcWGr34BVsERPCJjfX82iBto') +.then(contract => { + return contract.views.getBalance('tz1c1X8vD4pKV9TgV1cyosR7qdnkc8FTEyM1').read() +}).then(response => { + println(response) +}).catch(error => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` **How to deploy a lambda contract (sandbox users):** -```js -import { VIEW_LAMBDA } from '@taquito/taquito'; +``` js +import { VIEW_LAMBDA } from '@taquito/taquito/src/contract/view_lambda' const op = await tezos.contract.originate({ code: VIEW_LAMBDA.code, @@ -108,37 +105,29 @@ const op = await tezos.contract.originate({ }); const lambdaContract = await op.contract(); -const lambdaContractAddress = lambdaContract.address; +const lambdaContractAddress = lambdaContract.address ``` :::note -Taquito internally contains a list of lambda contracts. Thus, no need to deploy a lambda contract if you are using Mainnet, Florencenet, or Edonet. Taquito will detect the current network and use the appropriate lambda contract. +Taquito internally contains a list of lambda contracts. Thus, no need to deploy a lambda contract if you are using Mainnet, Delphinet, or Carthagenet. Taquito will detect the current network and use the appropriate lambda contract. ::: **More examples:** ```js live noInline -Tezos.contract - .at('KT1GZoupPzM3SxtCp2mHEGqBxN1EpiXCRyTZ') - .then((contract) => { - return contract.views - .balance_of([{ owner: 'tz1c1X8vD4pKV9TgV1cyosR7qdnkc8FTEyM1', token_id: '0' }]) - .read(); - }) - .then((response) => { - println(JSON.stringify(response, null, 2)); - }) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +Tezos.contract.at('KT1BkrcPjCXGPrQoYhVGFNwWMMyW2LrgBg9Q') +.then(contract => { + return contract.views.balance_of([{ owner: 'tz1c1X8vD4pKV9TgV1cyosR7qdnkc8FTEyM1', token_id: '0' }]).read() +}).then(response => { + println(JSON.stringify(response, null, 2)) +}).catch(error => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` ```js live noInline -Tezos.contract - .at('KT1JoWijNpTUTqd2eZFA9X519aXANctKu5fV') - .then((contract) => { - return contract.views.getBalance('tz1XTyqBn4xi9tkRDutpRyQwHxfF8ar4i4Wq').read(); - }) - .then((response) => { - println(JSON.stringify(response, null, 2)); - }) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +Tezos.contract.at('KT1QXZMKbNYBf2wa9WJ3iXeBFEqd7HqmDh3H') +.then(contract => { + return contract.views.getBalance('tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY').read() +}).then(response => { + println(JSON.stringify(response, null, 2)) +}).catch(error => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` diff --git a/docs/ledger_integration_test.md b/docs/ledger_integration_test.md index 00b72a59df..22395fbcc6 100644 --- a/docs/ledger_integration_test.md +++ b/docs/ledger_integration_test.md @@ -1,38 +1,38 @@ ---- -title: Ledger -author: Roxane Letourneau ---- - -The Ledger Signer's integration tests are disabled by default because they require having a Ledger Device connected to your computer. - -## Steps to run the tests - -1. Set up your Ledger device with this mnemonic phrase: -**1-prefer -2-wait -3-flock -4-brown -5-volume -6-recycle -7-scrub -8-elder -9-rate -10-pair -11-twenty -12-giant ** - -2. Open `Tezos Wallet app` on your Ledger device. -3. Remove `./ledger-signer.spec.ts` from `"testPathIgnorePatterns"` in the package.json. -4. If you only want to run Ledger integration tests, use this command: `npm run test ledger-signer.spec.ts` -5. As the tests include operations such as transfer of token and contract origination, the tests will take some time to complete. You will be prompt on the Ledger to confirm the operations. - -## Failing tests - -There is also a set of integration tests used to verify the behavior when the user declines the Ledger's prompt. - -To run these tests, you need to: - -1. Open `Tezos Wallet app` on your Ledger device. -2. Remove `./ledger-signer-failing-tests.spec.ts` from `"testPathIgnorePatterns"` in the package.json. -3. If you only want to run these tests, use this command: `npm run test ledger-signer-failing-tests.spec.ts` -4. You will need to decline all Ledger prompts. +--- +title: Ledger +author: Roxane Letourneau +--- + +The Ledger Signer's integration tests are disabled by default because they require having a Ledger Device connected to your computer. + +## Steps to run the tests + +1. Set up your Ledger device with this mnemonic phrase: +**1-prefer +2-wait +3-flock +4-brown +5-volume +6-recycle +7-scrub +8-elder +9-rate +10-pair +11-twenty +12-giant ** + +2. Open `Tezos Wallet app` on your Ledger device. +3. Remove `./ledger-signer.spec.ts` from `"testPathIgnorePatterns"` in the package.json. +4. If you only want to run Ledger integration tests, use this command: `npm run test ledger-signer.spec.ts` +5. As the tests include operation like transfer of token and contract origination, the tests will take some time to complete. You will be prompt on the Ledger to confirm the operations. + +## Falling tests + +There is also a set of integration tests used to verify the behavior when the user declines the Ledger's prompt. + +To run these tests, you need to: + +1. Open `Tezos Wallet app` on your Ledger device. +2. Remove `./ledger-signer-falling-tests.spec.ts` from `"testPathIgnorePatterns"` in the package.json. +3. If you only want to run these tests, use this command: `npm run test ledger-signer-falling-tests.spec.ts` +4. You will need to decline all Ledger prompts. \ No newline at end of file diff --git a/docs/ledger_signer.md b/docs/ledger_signer.md index cc48458f06..e584ee37ff 100644 --- a/docs/ledger_signer.md +++ b/docs/ledger_signer.md @@ -6,72 +6,72 @@ author: Roxane Letourneau import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -The Ledger Signer implements the Signer interface of Taquito, allowing you to sign operation from a Ledger Nano device. +The Ledger Signer implements the Signer interface of Taquito, allowing you to sign operation from a Ledger Nano device. :::note -You need to have the [Tezos Wallet app](https://support.ledger.com/hc/en-us/articles/360016057774-Tezos-XTZ-) installed and opened on your Ledger device when using the Ledger Signer. +You need to have the [Tezos Wallet app](https://support.ledger.com/hc/en-us/articles/360016057774-Tezos-XTZ-) installed and opened on your Ledger device when using the Ledger Signer. ::: -You first need to import the desired transport from the [LedgerJs library](https://github.com/LedgerHQ/ledgerjs). The Ledger Signer has currently been tested with `@ledgerhq/hw-transport-node-hid` for Node-based application and with `@ledgerhq/hw-transport-u2f` for web applications. -You can pass an instance of the transport of your choice to your Ledger Signer as follows: +You first need to import the desired transport from the [LedgerJs library](https://github.com/LedgerHQ/ledgerjs). The Ledger Signer has currently been tested with `@ledgerhq/hw-transport-node-hid` for Node based application and with `@ledgerhq/hw-transport-u2f` for web applications. +You will need to pass an instance of the transport of your choice to your Ledger Signer as follows: <Tabs -defaultValue="webApp" -values={[ -{label: 'Web application', value: 'webApp'}, -{label: 'Node application', value: 'nodeApp'} -]}> -<TabItem value="webApp"> - -```js -import TransportU2F from '@ledgerhq/hw-transport-u2f'; + defaultValue="webApp" + values={[ + {label: 'Web application', value: 'webApp'}, + {label: 'Node application', value: 'nodeApp'} + ]}> + <TabItem value="webApp"> + + ```js +import TransportU2F from "@ledgerhq/hw-transport-u2f"; import { LedgerSigner } from '@taquito/ledger-signer'; const transport = await TransportU2F.create(); const ledgerSigner = new LedgerSigner(transport); -``` - + ``` + </TabItem> <TabItem value="nodeApp"> -```js -import TransportNodeHid from '@ledgerhq/hw-transport-node-hid'; + ```js +import TransportNodeHid from "@ledgerhq/hw-transport-node-hid"; import { LedgerSigner } from '@taquito/ledger-signer'; const transport = await TransportNodeHid.create(); const ledgerSigner = new LedgerSigner(transport); -``` + ``` </TabItem> </Tabs> The constructor of the `LedgerSigner` class can take three other parameters. If none are specified, the default values are used. -- path: **default value is "44'/1729'/0'/0'"** - You can use as a parameter the `HDPathTemplate` which refers to `44'/1729'/${account}'/0'`. You have to specify what is the index of the account you want to use. Or you can also use a complete path as a parameter. - _More details about paths below_ -- prompt: **default is true** - If true, you will be asked on your Ledger device to send your public key for validation. **_Note that confirmation is required when using `@ledgerhq/hw-transport-u2f`, so you should not set this parameter to false if you are using this transport._** -- derivationType: **default is DerivationType.ED25519** - It can be DerivationType.ED25519 (tz1), DerivationType.SECP256K1 (tz2) or DerivationType.P256 (tz3). + - path: **default value is "44'/1729'/0'/0'"** + You can use as a parameter the `HDPathTemplate` which refers to `44'/1729'/${account}'/0'`. You will only have to specify what is the index of the account you want to use. Or you can also use a complete path as a parameter. + *More details about paths below* + - prompt: **default is true** + If true, you will be asked, on your Ledger device, for validation to send your public key. ***Note that confirmation is required when using `@ledgerhq/hw-transport-u2f`, so you should not set this parameter to false if you are using this transport.*** + - derivationType: **default is DerivationType.ED25519** + It can be DerivationType.ED25519 (tz1), DerivationType.SECP256K1 (tz2) or DerivationType.P256 (tz3). ```js import { LedgerSigner, DerivationType, HDPathTemplate } from '@taquito/ledger-signer'; const ledgerSigner = new LedgerSigner( - transport, //required - HDPathTemplate(1), // path optional (equivalent to "44'/1729'/1'/0'") - true, // prompt optional - DerivationType.ED25519 // derivationType optional -); + transport, //required + HDPathTemplate(1), // path optional (equivalent to "44'/1729'/1'/0'") + true, // prompt optional + DerivationType.ED25519 // derivationType optional + ); ``` ## Usage ```js import { LedgerSigner } from '@taquito/ledger-signer'; -import TransportNodeHid from '@ledgerhq/hw-transport-node-hid'; -import { TezosToolkit } from '@taquito/taquito'; +import TransportNodeHid from "@ledgerhq/hw-transport-node-hid"; +import { TezosToolkit } from "@taquito/taquito"; const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); @@ -88,26 +88,25 @@ const publicKeyHash = await Tezos.signer.publicKeyHash(); You are all set to sign operation with your Ledger device. You can use your configured ledger signer with both the Contract API or the Wallet API as usual. If you try the following example, you will be asked on your Ledger device to confirm the transaction before sending it. <Tabs -defaultValue="contractAPI" -values={[ -{label: 'Contract API', value: 'contractAPI'}, -{label: 'Wallet API', value: 'walletAPI'} -]}> -<TabItem value="contractAPI"> + defaultValue="contractAPI" + values={[ + {label: 'Contract API', value: 'contractAPI'}, + {label: 'Wallet API', value: 'walletAPI'} + ]}> + <TabItem value="contractAPI"> ```js const amount = 0.5; const address = 'tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY'; console.log(`Transfering ${amount} ꜩ to ${address}...`); -Tezos.contract - .transfer({ to: address, amount: amount }) - .then((op) => { +Tezos.contract.transfer({ to: address, amount: amount }) +.then(op => { console.log(`Waiting for ${op.hash} to be confirmed...`); return op.confirmation(1).then(() => op.hash); - }) - .then((hash) => console.log(`Operation injected: https://florence.tzstats.com/${hash}`)) - .catch((error) => console.log(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +}) +.then(hash => console.log(`Operation injected: https://carthagenet.tzstats.com/${hash}`)) +.catch(error => console.log(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` </TabItem> @@ -118,23 +117,22 @@ const amount = 0.5; const address = 'tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY'; console.log(`Transfering ${amount} ꜩ to ${address}...`); -Tezos.wallet - .transfer({ to: address, amount: amount }) - .send() - .then((op) => { +Tezos.wallet.transfer({ to: address, amount: amount }).send() +.then(op => { console.log(`Waiting for ${op.opHash} to be confirmed...`); return op.confirmation(1).then(() => op.opHash); - }) - .then((hash) => console.log(`Operation injected: https://florence.tzstats.com/${hash}`)) - .catch((error) => console.log(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); +}) +.then(hash => console.log(`Operation injected: https://carthagenet.tzstats.com/${hash}`)) +.catch(error => console.log(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` </TabItem> </Tabs> + ## Derivation paths, HD wallet & BIP Standards -Derivation paths are related to [Hierarchical Deterministic Wallet (HD wallet)](https://en.bitcoinwiki.org/wiki/Deterministic_wallet). `HD wallet` is a system allowing to derive addresses from a mnemonic phrase combined with a derivation path. Changing one index of the path will allow accessing a different `account`. We can access a nearly unlimited number of addresses with `HD wallet`. +Derivation paths are related to [Hierarchical Deterministic Wallet (HD wallet)](https://en.bitcoinwiki.org/wiki/Deterministic_wallet). `HD wallet` is a system allowing to derive addresses from a mnemonic phrase combined with a derivation path. Changing one index of the path will allow accessing a different `account`. We can access a nearly unlimited number of addresses with `HD wallet`. Here is the technical specification for the most commonly used HD wallets : @@ -153,20 +151,20 @@ The path always begins with `44'/1729'` and we see some difference for the three In Tezos, we generally see a slight difference in the path compared to the BIP44 specification. It is common to see path made of 4 indexes instead of 5 (default path being `44'/1729'/0'/0'` instead of `44'/1729'/0'/0'/0'`). For example, the default path used by tezos-client is `44'/1729'/0'/0'`. Based on what is done by the Tezos-client, the default path used by Taquito in the `LedgerSigner` is also `44'/1729'/0'/0'`. Taquito offers a template for the path called `HDPathTemplate`. This template uses four indexes and suggests doing the iteration on the `account` index. -For example, you can use HDPathTemplate(0) (equivalent to `44'/1729'/0'/0'`) to access the first address, HDPathTemplate(1) equivalent to `44'/1729'/1'/0'`) to access the second address, HDPathTemplate(2) (equivalent to `44'/1729'/2'/0'`) to access the third address... _In order to meet the needs of each user, this template is not imposed by Taquito_. +For example, you can use HDPathTemplate(0) (equivalent to `44'/1729'/0'/0'`) to access the first address, HDPathTemplate(1) equivalent to `44'/1729'/1'/0'`) to access the second address, HDPathTemplate(2) (equivalent to `44'/1729'/2'/0'`) to access the third address... *In order to meet the needs of each user, this template is not imposed by Taquito*. We can see other implementations that use `44'/1729'/0'/0'/0'`, where the next address is accessed by incrementing `account` or `address_index`. **Quick summary of [different default paths used](https://github.com/LedgerHQ/ledger-live-common/blob/master/src/derivation.js):** -| Wallet | Path | -| ------- | ------------------------------------------------------------ | -| Tezbox | "44'/1729'/{account}'/0'" or "44'/1729'/0'/{account}'" | -| Galleon | "44'/1729'/{account}'/0'/0'" or "44'/1729'/0'/0'/{account}'" | +|Wallet |Path | +|------------|------------------------------------------------------------| +|Tezbox |"44'/1729'/{account}'/0'" or "44'/1729'/0'/{account}'" | +|Galleon |"44'/1729'/{account}'/0'/0'" or "44'/1729'/0'/0'/{account}'"| #### Some considerations about paths -According to BIP44, "Software should prevent a creation of an account if a previous account does not have a transaction history (meaning none of its addresses have been used before)." When building an app using the `LedgerSigner`, you must be careful not to allow users to access an account with a path structure that does not follow any convention. Otherwise, users could have difficulties using their accounts with other wallets that are not compatible with their paths. As stated before, HD wallets allow you to get a nearly unlimited number of addresses. According to BIP44, wallets should follow an `Account discovery` algorithm meaning that it is possible that the wallet won't found an account created with an unconventional path. We can think about how hard it would be for a user who had created an account with a no common path and forgot it to find it back. +According to BIP44, "Software should prevent a creation of an account if a previous account does not have a transaction history (meaning none of its addresses have been used before)." When building an app using the `LedgerSigner`, you must be careful not to allow users to access an account with a path structure that does not follow any convention. Otherwise, users could have difficulties using their accounts with other wallets that are not compatible with their paths. As stated before, HD wallets allow you to get a nearly unlimited number of addresses. According to BIP44, wallets should follow an `Account discovery` algorithm meaning that it is possible that the wallet won't found an account created with an unconventional path. We can think about how hard it would be for a user who had created an account with a no common path and forgot it to find it back. #### More about derivation path here @@ -180,54 +178,45 @@ https://github.com/MyCryptoHQ/MyCrypto/issues/2070 https://medium.com/mycrypto/wtf-is-a-derivation-path-c3493ca2eb52 + ## Live example that iterate from path `44'/1729'/0'/0'` to `44'/1729'/9'/0'` Having your Ledger device connected to your computer and the `Tezos Wallet App` opened, you can run the following code example. It will scan your Ledger from path `44'/1729'/0'/0'` to `44'/1729'/9'/0'` to get public key hashes and the balance for revealed accounts. Confirmations will be asked on your Ledger to send the public keys. -_Note that this example is not intended to be a complete example of paths scanning but only a rough outline of what is possible to do._ +*Note that this example is not intended to be a complete example of paths scanning but only a rough outline of what is possible to do.* ```js live noInline //import { LedgerSigner, DerivationType, HDPathTemplate } from '@taquito/ledger-signer'; //import { TezosToolkit } from '@taquito/taquito'; //import TransportU2F from "@ledgerhq/hw-transport-u2f"; -//const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -TransportU2F.create().then((transport) => { - for (let index = 0, p = Promise.resolve(); index < 10; index++) { - p = p.then( - (_) => - new Promise((resolve) => - setTimeout(function () { - getAddressInfo(transport, index); - resolve(); - }, 2000) - ) - ); - } -}); +//const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + +TransportU2F.create() +.then(transport => { + for (let index = 0, p = Promise.resolve(); index < 10; index++){ + p = p.then(_ => new Promise(resolve => + setTimeout(function () { + getAddressInfo(transport, index); + resolve(); + }, 2000))) + } +}) function getAddressInfo(transport, index) { - const ledgerSigner = new LedgerSigner( - transport, - `44'/1729'/${index}'/0'`, - true, - DerivationType.ED25519 - ); + const ledgerSigner = new LedgerSigner(transport, `44'/1729'/${index}'/0'`, true, DerivationType.ED25519); Tezos.setProvider({ signer: ledgerSigner }); - return Tezos.signer.publicKeyHash().then((pkh) => { - Tezos.tz.getBalance(pkh).then((balance) => { - Tezos.rpc.getManagerKey(pkh).then((getPublicKey) => { - println( - `The public key hash related to the derivation path having the index ${index} is ${pkh}.` - ); - if (getPublicKey) { - println(`The balance is ${balance.toNumber() / 1000000} ꜩ.\n`); - } else { - println('This account is not revealed.\n'); - } - }); - }); - }); -} + return Tezos.signer.publicKeyHash() +.then ( pkh => { + Tezos.tz.getBalance(pkh) +.then ( balance => { + Tezos.rpc.getManagerKey(pkh) +.then( getPublicKey => { + println(`The public key hash related to the derivation path having the index ${index} is ${pkh}.`); + if ( getPublicKey ) { + println(`The balance is ${balance.toNumber() / 1000000} ꜩ.\n`) + } else { + println('This account is not revealed.\n') + } +})})})} ``` -A similar example using `@ledgerhq/hw-transport-node-hid` can be found [here](https://github.com/ecadlabs/taquito/tree/master/example/scan-path-ledger.ts). This example directly retrieves the public keys from the Ledger without asking for confirmation on the device. +A similar example using `@ledgerhq/hw-transport-node-hid` can be found [here](https://github.com/ecadlabs/taquito/tree/master/example/scan-path-ledger.ts). This example directly retrieves the public keys from the Ledger without asking for confirmation on the device. \ No newline at end of file diff --git a/docs/making_transfers.md b/docs/making_transfers.md index 3b016e5e51..776677e321 100644 --- a/docs/making_transfers.md +++ b/docs/making_transfers.md @@ -1,139 +1,131 @@ ---- -title: Transfers -author: Simon Boissonneault-Robert ---- - -# Examples demonstrating transfers between various address types - -In Tezos, a transfer operation transfers tokens between two addresses. - -When the `Babylon/proto005` protocol amendment came into effect, it changed how token transfer involving KT1 addresses work. The transfer of tokens _from_ a KT1 account is completed by calling the KT1's smart contract `do` method. The `do` method takes a lambda function, and it is the logic of this function that causes the desired transfer of tokens to happen. - -The Taquito [integration tests](https://github.com/ecadlabs/taquito/blob/master/integration-tests/manager-contract-scenario.spec.ts) can be useful to see how this works. - -## Transfer from an implicit tz1 address to a tz1 address - -This is the simplest token transfer scenario - -```js -await Tezos.contract.transfer({ to: contract.address, amount: 1 }); -``` - -In the following example, we transfer 0.5ꜩ from a `tz1aaYoabvj2DQtpHz74Z83fSNjY29asdBfZ` address that signs the operation to `tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY`. - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -render(`Fetching a private key...`); -fetch('https://api.tez.ie/keys/florencenet/', { - method: 'POST', - headers: { Authorization: 'Bearer taquito-example' }, -}) - .then((response) => response.text()) - .then((privateKey) => { - render(`Importing the private key...`); - return importKey(Tezos, privateKey); - }) - .then(() => { - const amount = 0.5; - const address = 'tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY'; - - render(`Transfering ${amount} ꜩ to ${address}...`); - return Tezos.contract.transfer({ to: address, amount: amount }); - }) - .then((op) => { - render(`Waiting for ${op.hash} to be confirmed...`); - return op.confirmation(1).then(() => op.hash); - }) - .then((hash) => render(`Operation injected: https://florencenet.tzstats.com/${hash}`)) - .catch((error) => render(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -## Transfers involving "originated" KT1 addresses - -Pre-`Babylon/proto005` "script-less" KT1 addresses were common. This situation changed when the Tezos blockchain migrated to the new `Babylon/proto005` protocol. - -During the migration from `proto004` to `proto005`, all KT1 addresses migrated so that they got a contract called [manager.tz](https://gitlab.com/nomadic-labs/mi-cho-coq/blob/master/src/contracts/manager.tz). This change meant that there are no longer any "script-less" KT1 addresses in Tezos. - -A call to the KT1's smart contracts' `do` method is required to transfer tokens from KT1 addresses with the new `manager.tz` contract. The `do` method takes a lambda function, and it is this lambda function that causes changes to occur in the KT1 address. - -> The examples following apply only to KT1 addresses migrated as part of the `Babylon/proto005` upgrade. Transfers involving _other_ types of smart-contracts depend on those contracts specifically. - -## Transfer 0.00005 (50 mutez) tokens from a KT1 address to a tz1 address - -Sending 50 mutez from `kt1...` to `tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh`. - -### Example transfer from a KT1 to a tz1 address on Carthage/Proto006 - -```js -const contract = await Tezos.contract.at('kt1...'); -await contract.methods - .do(transferImplicit('tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh', 50)) - .send({ amount: 0 }); -``` - -Where `transferImplicit` is a function that returns the necessary Michelson lambda. It looks like this: - -```js -export const transferImplicit = (key: string, mutez: number) => { - return [ - { prim: 'DROP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { - prim: 'PUSH', - args: [{ prim: 'key_hash' }, { string: key }], - }, - { prim: 'IMPLICIT_ACCOUNT' }, - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: `${mutez}` }], - }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' }, - ]; -}; -``` - -## Transfer 0.000001 (1 mutez) tokens from a KT1 address to a KT1 address - -Sending 1 mutez to `KT1KLbEeEgW5h1QLkPuPvqdgurHx6v4hGyic` from `KT1...` - -### Example for Babylon/Proto005 or higher - -```js -const contract = await Tezos.contract.at('KT1...'); -await contract.methods - .do(transferToContract('KT1KLbEeEgW5h1QLkPuPvqdgurHx6v4hGyic', 1)) - .send({ amount: 0 }); -``` - -Where `transferToContract` is a function that looks like this: - -```js -export const transferToContract = (key: string, amount: number) => { - return [ - { prim: 'DROP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { - prim: 'PUSH', - args: [{ prim: 'address' }, { string: key }], - }, - { prim: 'CONTRACT', args: [{ prim: 'unit' }] }, - [ - { - prim: 'IF_NONE', - args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []], - }, - ], - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: `${amount}` }], - }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' }, - ]; -}; -``` +--- +title: Making Transfers +author: Simon Boissonneault-Robert +--- +# Examples demonstrating transfers between various address types + +In Tezos a transfer operation will transfer tokens between two addresses. + +When the `Babylon/proto005` protocol amendment came into affect, it changed how token transfer involving KT1 addresses work. In order to transfer tokens _from_ a KT1 account, the transfer must be completed by calling the KT1's smart contract `do` method. The `do` method takes a lambda function, and it is the logic of this function that causes the desired transfer of tokens to happen. + +The Taquito [integration tests](https://github.com/ecadlabs/taquito/blob/master/integration-tests/manager-contract-scenario.spec.ts) can be useful to see how this works. + +## Transfer from an implicit tz1 address to a tz1 address + +This is the simplest token transfer scenario + +```js +await Tezos.contract.transfer({ to: contract.address, amount: 1 }) +``` + +In the following example we will transfer 0.5ꜩ from a `tz1aaYoabvj2DQtpHz74Z83fSNjY29asdBfZ` address that will sign the operation to `tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY`. +```js live noInline +// import { TezosToolkit } from '@taquito/taquito'; +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + +render(`Fetching a private key...`); +fetch('https://api.tez.ie/keys/carthagenet/', { + method: 'POST', + headers: { 'Authorization': 'Bearer taquito-example' } + }) + .then(response => response.text()) + .then(privateKey => { + render(`Importing the private key...`); + return importKey(Tezos, privateKey); + }) + .then(() => { + const amount = 0.5; + const address = 'tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY'; + + render(`Transfering ${amount} ꜩ to ${address}...`); + return Tezos.contract.transfer({ to: address, amount: amount }); + }) + .then(op => { + render(`Waiting for ${op.hash} to be confirmed...`); + return op.confirmation(1).then(() => op.hash); + }) + .then(hash => render(`Operation injected: https://carthagenet.tzstats.com/${hash}`)) + .catch(error => render(`Error: ${JSON.stringify(error, null, 2)}`)); +``` + +## Transfers involving "originated" KT1 addresses + +Pre-`Babylon/proto005` it was common to have "script-less" KT1 addresses. This changed when the Tezos blockchain migrated to the new `Babylon/proto005` protocol. + +During the migration form `proto004` to `proto005` all KT1 addresses were migrated so that they got a contract called [manager.tz](https://gitlab.com/nomadic-labs/mi-cho-coq/blob/master/src/contracts/manager.tz). This meant that there are no longer any "script-less" KT1 addresses in Tezos. + +In order to transfer tokens from a KT1 addresses with the new `manager.tz` contract, a call to the KT1's smart contract's `do` method is required. The `do` method takes a lambda function, and it is this lambda function that causes changes to occur in the KT1 address. + +> The examples following only apply to KT1 addresses that were migrated as part of the `Babylon/proto005` upgrade. Transfers involving _other_ types of smart-contracts, will depend on those contracts specifically. + +## Transfer 0.00005 (50 mutez) tokens from a KT1 address to a tz1 address + +Sending 50 mutez from `kt1...` to `tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh`. + +### Example transfer from a KT1 to a tz1 address on Carthage/Proto006 + +```js +const contract = await Tezos.contract.at("kt1...") +await contract.methods.do(transferImplicit("tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh", 50)).send({ amount: 0 }) +``` + +Where `transferImplicit` is a function that returns the necessary Michelson lambda. It looks like this: + +```js +export const transferImplicit = (key: string, mutez: number) => { + return [{ "prim": "DROP" }, + { "prim": "NIL", "args": [{ "prim": "operation" }] }, + { + "prim": "PUSH", + "args": + [{ "prim": "key_hash" }, + { "string": key }] + }, + { "prim": "IMPLICIT_ACCOUNT" }, + { + "prim": "PUSH", + "args": [{ "prim": "mutez" }, { "int": `${mutez}` }] + }, + { "prim": "UNIT" }, { "prim": "TRANSFER_TOKENS" }, + { "prim": "CONS" }] +} +``` + +## Transfer 0.000001 (1 mutez) tokens from a KT1 address to a KT1 address + +Sending 1 mutez to `KT1EM2LvxxFGB3Svh9p9HCP2jEEYyHjABMbK` from `KT1...` + +### Example for Babylon/Proto005 or higher + +```js +const contract = await Tezos.contract.at("KT1...") +await contract.methods.do(transferToContract("KT1EM2LvxxFGB3Svh9p9HCP2jEEYyHjABMbK", 1)).send({ amount: 0 }) +``` + +Where `transferToContract` is a function that looks like this: + +```js +export const transferToContract = (key: string, amount: number) => { + return [{ "prim": "DROP" }, + { "prim": "NIL", "args": [{ "prim": "operation" }] }, + { + "prim": "PUSH", + "args": + [{ "prim": "address" }, + { "string": key }] + }, + { "prim": "CONTRACT", "args": [{ "prim": "unit" }] }, + [{ + "prim": "IF_NONE", + "args": + [[[{ "prim": "UNIT" }, { "prim": "FAILWITH" }]], + []] + }], + { + "prim": "PUSH", + "args": [{ "prim": "mutez" }, { "int": `${amount}` }] + }, + { "prim": "UNIT" }, { "prim": "TRANSFER_TOKENS" }, + { "prim": "CONS" }] +} +``` diff --git a/docs/maps_bigmaps.md b/docs/maps_bigmaps.md index d9d335ac36..8622fa574b 100644 --- a/docs/maps_bigmaps.md +++ b/docs/maps_bigmaps.md @@ -1,476 +1,369 @@ ---- -title: Maps and BigMaps -author: Roxane Letourneau ---- - -Learn how to: - -- Fetch data from a `Map` datatype on a Tezos Smart Contract -- Fetch data from a `BigMap` datatype on a Tezos Smart Contract -- Initialize `Map` data while originating a new contract to the Tezos Blockchain -- Use Pairs as a key to access `Map` and `BigMap` values -- Why Michelson `Map` and `BigMap` don't look like a Javascript `Map` - -Taquito provides `MichelsonMap` to make it easy for developers to work with the native Michelson map datatypes. `MichelsonMap` supports initialization, get and set methods to `Maps` using primitive datatypes and pairs as keys. - -Michelson offers two variants of `Maps` that are semantically the same but have different implementations and trade-offs in terms of `gas` and `storage` costs on a contract. A `Map` uses more storage but costs less gas, whereas a `BigMap` consumes less storage but has higher gas costs during the Smart Contract's execution. - -- [Michelson documentation for Map][michelson_map] -- [Michelson documentation for BigMap][michelson_bigmap] - -## A Contract with a single Map for storage - -### Origination of the contract with an initial storage - -This example builds on the Ligo Lang Taco Shop learning resources. - -The storage of the contract used in the following example is a map where a key is a natural number (a `nat`), and a value is a pair composed of two values representing the quantity of stock and `tez` tokens, respectively. The contract's source code is available [here](https://ligolang.org/docs/tutorials/get-started/tezos-taco-shop-smart-contract#making-sure-we-get-paid-for-our-tacos). In the example, the contract is originated with initial values using the `MichelsonMap` class' `set` method. - -```js live noInline -import { MichelsonMap } from '@taquito/taquito'; -// import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); - -const storageMap = new MichelsonMap(); -storageMap.set('1', { current_stock: '10000', max_price: '50' }); -storageMap.set('2', { current_stock: '120', max_price: '20' }); -storageMap.set('3', { current_stock: '50', max_price: '60' }); - -// contractMapTacoShop variable contains the Michelson Smart Contract source code, and is not shown for brevity -Tezos.contract - .originate({ - code: contractMapTacoShop, - storage: storageMap, - }) - .then((contractOriginated) => { - println(`Waiting for confirmation of origination for ${contractOriginated.contractAddress}...`); - return contractOriginated.contract(); - }) - .then((contract) => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -The `fromLiteral` convenience method can be used instead of using `set` for each element. Here is the same `origination` operation but using `fromLiteral` to create our `MichelsonMap`. - -```js live noInline -import { MichelsonMap } from '@taquito/taquito'; - -Tezos.contract - .originate({ - code: contractMapTacoShop, - storage: MichelsonMap.fromLiteral({ - 1: { current_stock: '10000', max_price: '50' }, - 2: { current_stock: '120', max_price: '20' }, - 3: { current_stock: '50', max_price: '60' }, - }), - }) - .then((contractOriginated) => { - println(`Waiting for confirmation of origination for ${contractOriginated.contractAddress}...`); - return contractOriginated.contract(); - }) - .then((contract) => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -### Accessing the values of the map - -This example loads the same type of Taco Shop contract (we created this one earlier). Taquito provides a `get` method of the `MichelsonMap` on storage of type `Map`, and in this case, we access the value stored with a key of `1`. - -The example calls the Contracts `main` function of the contract using the key `1` as its parameter. Remember, we can only change contract storage by calling the function provided by the contract. The `main` function on this Smart Contract is decreasing the value of the `current_stock` associated with the key `1`. We use the `get` method of the `MichelsonMap` class to see the difference in storage after the method call. - -```js live noInline -Tezos.contract - .at('KT1CALwg9Yp3k9Tmurnj1wbJ5BbAZaY26ETy') - .then((myContract) => { - return myContract - .storage() - .then((myStorage) => { - //We want to see the value of the key "1" - const value = myStorage.get('1'); - println( - `The key "1" of the map has a current_stock of ${ - value[Object.keys(value)[0]] - } and a max_price of ${value[Object.keys(value)[1]]}.` - ); - - //Calling the main method of the contract will modify the storage - return myContract.methods.default('1').send(); - }) - .then((op) => { - println(`Waiting for ${op.hash} to be confirmed...`); - return op.confirmation(1).then(() => op.hash); - }) - .then((hash) => { - println(`Operation injected.`); - - //Use the get method to see the change in storage - return myContract.storage(); - }) - .then((myStorage) => { - const value = myStorage.get('1'); - println( - `The key "1" of the map has now a current_stock of ${ - value[Object.keys(value)[0]] - } and a max_price of ${value[Object.keys(value)[1]]}.` - ); - }); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -## A Contract with a Map using an unannotated pair/tuple as a key - -Here we have the storage of our contract defined in Michelson. - -It has a `Map` with the annotated name `%theMap`. This `Map` uses a pair consisting of a natural number and an address as its key `(1, tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx)`. Its value is also a pair of values, consisting of an `int` (annotated as `%quantity`) and `mutez` (annotated as `%amount`). - -``` -(pair (pair (address %theAddress) - (map %theMap (pair nat address) (pair (mutez %amount) (int %quantity)))) - (int %theNumber)) -``` - -### Origination of the contract with Pair as Map keys - -Since the key of the map has no annotations, MichelsonMap requires that we use an index value starting at `0` to initialize its elements. - -```js live noInline -import { MichelsonMap } from '@taquito/taquito'; - -const storageMap = new MichelsonMap(); -//First entry of the map -storageMap.set( - { - // Pair as Key - 0: '1', //nat - 1: 'tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx', //address - }, - { quantity: '10', amount: '100' } -); - -//Second entry of the map -storageMap.set( - { - // Pair as Key - 0: '2', //nat - 1: 'tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY', //address - }, - { quantity: '20', amount: '200' } -); - -//Third entry of the map -storageMap.set( - { - 0: '3', //nat - 1: 'tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh', //address - }, - { quantity: '30', amount: '300' } -); - -// contractMapPairKey variable contains the Michelson Smart Contract -Tezos.contract - .originate({ - code: contractMapPairKey, - storage: { - theAddress: 'tz1NAozDvi5e7frVq9cUaC3uXQQannemB8Jw', - theMap: storageMap, - theNumber: 10, - }, - }) - .then((contractOriginated) => { - println(`Waiting for the contract origination of ${contractOriginated.contractAddress}...`); - return contractOriginated.contract(); - }) - .then((contract) => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -### Accessing Map values using Pairs - -The `get` method of the `MichelsonMap` class accesses values of the map for a specified key. - -This example accesses the map using its `theMap` annotation. If the storage does now annotate its properties, the caller must use numeric indexes instead. - -Recall that this contract does not annotate the pairs of the key pair either. We use numeric indexes for this also. - -```js live noInline -Tezos.contract - .at('KT1EynnXn4vRiDzutnBiRxQ1kDWD5apgeCKF') - .then((myContract) => { - return myContract.storage(); - }) - .then((myStorage) => { - const value = myStorage['theMap'].get({ - 0: '2', //nat - 1: 'tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY', //address - }); - println(`Values associated with this key : amount : ${value[Object.keys(value)[0]]}, quantity : - ${value[Object.keys(value)[1]]}`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -## A Map with nested Pairs as keys - -This contract schema has a key with eight nested pairs and the value of an int. This example type of key is impractical, but we offer it as an example to illustrate how to work with complex keys. - -The Michelson storage schema with a map using eight pairs as a key: - -``` -(map (pair int - (pair nat - (pair string - (pair bytes - (pair mutez - (pair bool - (pair key_hash - (pair timestamp address)))))))) int) -``` - -### Origination of a contract with complex keys - -In this example, the contract schema does not have map annotations, which means that each value needs to have an index as a property name. - -```js live noInline -import { MichelsonMap } from '@taquito/taquito'; - -const storageMap = new MichelsonMap(); -storageMap.set( - { - 0: '1', // int - 1: '2', // nat - 2: 'test', // string - 3: 'cafe', // bytes - 4: '10', // mutez - 5: true, // bool - 6: 'tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5', // key_hash - 7: '2019-09-06T15:08:29.000Z', // timestamp - 8: 'tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5', // address - }, - 100 -); - -storageMap.set( - { - 0: '10', // int - 1: '20', // nat - 2: 'Hello', // string - 3: 'ffff', // bytes - 4: '100', // mutez - 5: false, // bool - 6: 'tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx', // key_hash - 7: '2019-10-06T15:08:29.000Z', // timestamp - 8: 'tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx', // address - }, - 1000 -); - -// contractMap8pairs variable contains the Michelson Smart Contract -Tezos.contract - .originate({ - code: contractMap8pairs, - storage: storageMap, - }) - .then((contractOriginated) => { - println(`Waiting for the contract origination of ${contractOriginated.contractAddress}...`); - return contractOriginated.contract(); - }) - .then((contract) => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -### Accessing Map values with complex keys - -The `get` method of the `MichelsonMap` class accesses values of the map for a specified key. - -```js live noInline -Tezos.contract - .at('KT1AbDNSccRufFKDhuatjgiC9zGTTxZhhmZJ') - .then((myContract) => { - return myContract.storage(); - }) - .then((myStorage) => { - const value = myStorage.get({ - 0: '1', // int - 1: '2', // nat - 2: 'test', // string - 3: 'cafe', // bytes - 4: '10', // mutez - 5: true, // bool - 6: 'tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5', // key_hash - 7: '2019-09-06T15:08:29.000Z', // timestamp - 8: 'tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5', // address - }); - println(`The value associated to this key is ${value}.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -## BigMaps - -Map and BigMap are semantically the same except for everything you learned about Maps applies to working with BigMaps. The only difference is that when calling `get` on a bigMap will return a Javascript Promise, whereas get on a Map returns directly. In this example, the contract schema does not have map annotations, which means that each value needs to have an index as a property name. - -### Contract storage containing a map and a bigMap - -The `MichelsonMap` class also supports the `bigMap` type. The following example uses a contract containing both a map and a bigMap in its storage. Here is the Michelson definition of storage for this example: - -``` -(pair (big_map %thebigmap (pair nat address) int) (map %themap (pair nat address) int)) -``` - -#### Origination of the contract with an initial storage - -```js live noInline -import { MichelsonMap } from '@taquito/taquito'; - -const storageMap = new MichelsonMap(); -storageMap.set( - { - 0: '1', //nat - 1: 'tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx', //address - }, - 10 -); -storageMap.set( - { - 0: '2', //nat - 1: 'tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx', //address - }, - 20 -); - -const storageBigMap = new MichelsonMap(); -storageBigMap.set( - { - 0: '10', //nat - 1: 'tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5', //address - }, - 100 -); -storageBigMap.set( - { - 0: '20', //nat - 1: 'tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5', //address - }, - 200 -); -// contractMapBigMap variable contains the Michelson Smart Contract -Tezos.contract - .originate({ - code: contractMapBigMap, - storage: { - themap: storageMap, - thebigmap: storageBigMap, - }, - }) - .then((contractOriginated) => { - println(`Waiting for the contract origination of ${contractOriginated.contractAddress}...`); - return contractOriginated.contract(); - }) - .then((contract) => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -#### Accessing the values of the map and the bigMap - -The `get` method of the `MichelsonMap` class accesses the values of the map and values of the bigMap. The difference is that the value gets returned directly for a map while the get method on a bigMap returns a promise. - -```js live noInline -Tezos.contract - .at('KT1EApdM8d7MHNKUPKMBmGKsjnoudc3T4Gsm') - .then((myContract) => { - return myContract - .storage() - .then((myStorage) => { - //When called on a map, the get method returns the value directly - const valueMap = myStorage['themap'].get({ - 0: '1', //nat - 1: 'tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx', //address - }); - println(`The value associated with the specified key of the map is ${valueMap}.`); - return myContract.storage(); - }) - - .then((myStorage) => { - //When called on a bigMap, the get method returns a promise - return myStorage['thebigmap'].get({ - 0: '10', //nat - 1: 'tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5', //address - }); - }) - .then((valueBigMap) => { - println(`The value associated with the specified key of the bigMap is ${valueBigMap}.`); - }); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -## Local packing for big maps - -By default, a call to an RPC node is used to pack data when fetching values from a big map. Big map keys need to be serialized or packed and Taquito relies on the PACK functionality of a Tezos RPC node to pack the big map keys. This may be considered inefficient as it adds a request to a remote node to fetch data. - -Now, Taquito allows you to pack the required data locally to fetch values from a big map. By relying on the local pack implementation, Taquito eliminates one RPC roundtrip when fetching big map values. This feature makes fetching big map values **50% faster**. - -Implementing this feature is a very easy 2 step process: -1. Importing the `MichelCodecPacker` class from `@taquito/taquito` -2. Creating an instance of the `MichelCodecPacker` class and passing it to the `setPackerProvider` method of the `TezosToolkit` instance. - -Here is an example: - -``` js -import { MichelCodecPacker } from "@taquito/taquito"; -const Tezos = new TezosToolkit(RPC_URL); -Tezos.setPackerProvider(new MichelCodecPacker()); -``` - -After that, Taquito will automatically pack the keys locally when you want to fetch the values of a big map. - -## Fetch multiple big map values at once - -It is possible to fetch multiple big map values using Taquito with one call using the `getMultipleValues` method of the `BigMapAbstraction` class. Taquito will ensure that all fetched big maps come from the same block to ensure a consistent state. - -The method takes an `array` of keys to query as a parameter and an optional block level and returns a `MichelsonMap` containing the keys and their value in a well-formatted JSON object format. The accepted types for the keys are `string`, `number` or `object` (the last one is used when the type of the keys in the big map is a Michelson `pair`). - -In the following example, we will fetch 4 big map values at once. The Michelson type of the big map key is an `address` and the type of its value is a `pair` made of a `nat` and a `map`. We see in the example that the address `tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn` is not a key of the big map, so its value is set to `undefined` in the returned MichelsonMap. - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -Tezos.contract - .at('KT1LVfXCMSx24SfRud9sJubtHD8SL5DYGJKk') - .then((contract) => { - println('Fetching the storage of the contract...') - return contract.storage() - }) - .then((storage) => { - println('Fetching the big map values...\n') - return storage['0'].getMultipleValues([ - 'tz3PNdfg3Fc8hH4m9iSs7bHgDgugsufJnBZ1', - 'tz2Ch1abG7FNiibmV26Uzgdsnfni9XGrk5wD', - 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - 'tz3YjfexGakCDeCseXFUpcXPSAN9xHxE9TH2' - ]); - }) - .then((values) => { - values.forEach((value, key) => { - println(`The value of the key ${key} is:\n${JSON.stringify(value, null, 2)}.\n`) - }) - }) - .catch((error) => println(JSON.stringify(error))); -``` - ---- - -[michelson_map]: https://michelson.nomadic-labs.com/#type-big_map -[michelson_bigmap]: https://michelson.nomadic-labs.com/#type-big_map +--- +title: Working with Maps and BigMaps +author: Roxane Letourneau +--- + +Learn how to: + +- Fetch data from a `Map` datatype on a Tezos Smart Contract +- Fetch data from a `BigMap` datatype on a Tezos Smart Contract +- Initialize `Map` data while originating a new contract to the Tezos Blockchain +- Use Pairs as a key to access `Map` and `BigMap` values +- Why Michelson `Map` and `BigMap` don't look like a Javascript `Map` + +Taquito provides `MichelsonMap`, which makes it easy and familiar for developers to work with the native Michelson map datatypes. `MichelsonMap` supports initialization, get and set methods to `Maps` using primitive datatypes and pairs as keys. + +Michelson offers two variants of `Maps` that are semantically the same but have different implementations and trade-offs in terms of `gas` and `storage` costs on a contract. A `Map` will use more storage but cost less gas, whereas a `BigMap` will consume less storage but has higher gas costs during the execution of the Smart Contract. + +- [Michelson documentation for Map][michelson_map] +- [Michelson documentation for BigMap][michelson_bigmap] + +## A Contract with a single Map for storage + +### Origination of the contract with an initial storage + +This example builds on the Ligo Lang Taco Shop learning resources. + +The storage of the contract used in the following example is a map where a key is a natural number (a `nat`), and a value is a pair composed of two values representing the quantity of stock and `tez` tokens respectively. The source code of the contract is available [here](https://ligolang.org/docs/tutorials/get-started/tezos-taco-shop-smart-contract#making-sure-we-get-paid-for-our-tacos). In the example, the contract is originated with initial values using the `MichelsonMap` class' `set` method. + +```js live noInline +import { MichelsonMap } from "@taquito/taquito"; +// import { TezosToolkit } from '@taquito/taquito'; +// const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); + +const storageMap = new MichelsonMap(); +storageMap.set("1", {current_stock: "10000", max_price : "50"}) +storageMap.set("2", {current_stock: "120", max_price : "20"}) +storageMap.set("3", {current_stock: "50", max_price : "60"}) + +// contractMapTacoShop variable contains the Michelson Smart Contract source code, and is not shown for brevity +Tezos.contract.originate({ + code: contractMapTacoShop, + storage: storageMap, +}) +.then(contractOriginated => { + println(`Waiting for confirmation of origination for ${contractOriginated.contractAddress}...`); + return contractOriginated.contract() +}) +.then (contract => { + println(`Origination completed.`); +}) +.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); +``` + +The `fromLiteral` convenience method can be used instead of using `set` for each element. Here is the same `origination` operation but using `fromLiteral` to create our `MichelsonMap`. + +```js live noInline +import { MichelsonMap } from "@taquito/taquito"; + +Tezos.contract.originate({ + code: contractMapTacoShop, + storage: MichelsonMap.fromLiteral({ + "1": {current_stock: "10000", max_price : "50"}, + "2": {current_stock: "120", max_price : "20"}, + "3": {current_stock: "50", max_price : "60"} + }), +}) +.then(contractOriginated => { + println(`Waiting for confirmation of origination for ${contractOriginated.contractAddress}...`); + return contractOriginated.contract() +}) +.then (contract => { + println(`Origination completed.`); +}) +.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); +``` + +### Accessing the values of the map + +This example loads the same type of Taco Shop contract (we created this one earlier). Taquito provides a `get` method of the `MichelsonMap` on storage of type `Map`, and in this case, we access the value stored with a key of `1`. + +Then, the example calls the Contracts `main` function of the contract using the key `1` as its parameter. Remember, we can only change contracts storage by calling the function provided by the contract. The `main` function on this Smart Contract has the effect of decreasing the value of the `current_stock` associated with the key `1`. The `get` method of the `MichelsonMap` class is used again to see the difference in storage after the method call. + +```js live noInline +Tezos.contract.at('KT1WEQQ7RRrzUH7PU9NGMyuTbTF3kjnKynUW') +.then( myContract => { + return myContract.storage() + .then (myStorage => { + //We want to see the value of the key "1" + const value = myStorage.get('1') + println(`The key "1" of the map has a current_stock of ${value[Object.keys(value)[0]]} and a max_price of ${value[Object.keys(value)[1]]}.`); + + //Calling the main method of the contract will modify the storage + return myContract.methods.default('1').send() + }).then(op => { + println(`Waiting for ${op.hash} to be confirmed...`); + return op.confirmation(1).then(() => op.hash); + }).then(hash => { + println(`Operation injected.`); + + //Use the get method to see the change in storage + return myContract.storage() + }).then (myStorage => { + const value = myStorage.get('1') + println(`The key "1" of the map has now a current_stock of ${value[Object.keys(value)[0]]} and a max_price of ${value[Object.keys(value)[1]]}.`) + }) +}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); +``` + +## A Contract with a Map using an unannotated pair/tuple as a key + +Here we have the storage of our contract defined in Michelson. + +It has a `Map` with the annotated name `%theMap`. This `Map` uses a pair consisting of a natural number and an address as its key `(1, tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx)`. Its value is also a pair of values, consisting of an `int` (annotated as `%quantity`) and `mutez` (annotated as `%amount`). + +``` +(pair (pair (address %theAddress) + (map %theMap (pair nat address) (pair (mutez %amount) (int %quantity)))) + (int %theNumber)) +``` + +### Origination of the contract with Pair as Map keys + +Since the key of the map has no annotations, MichelsonMap requires that we use an index value starting at `0` to initialize its elements. + +```js live noInline +import { MichelsonMap } from "@taquito/taquito"; + +const storageMap = new MichelsonMap(); +//First entry of the map +storageMap.set({ // Pair as Key + 0 : '1', //nat + 1 : 'tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx' //address +}, +{ quantity: '10', amount: '100' }) + +//Second entry of the map +storageMap.set({ // Pair as Key + 0 : '2', //nat + 1 : 'tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY' //address +}, +{ quantity: '20', amount: '200' }) + +//Third entry of the map +storageMap.set({ + 0 : '3', //nat + 1 : 'tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh' //address +}, +{ quantity: '30', amount: '300' }) + +// contractMapPairKey variable contains the Michelson Smart Contract +Tezos.contract.originate({ + code: contractMapPairKey, + storage: { + theAddress: 'tz1NAozDvi5e7frVq9cUaC3uXQQannemB8Jw', + theMap : storageMap, + theNumber: 10 + } +}) +.then(contractOriginated => { + println(`Waiting for the contract origination of ${contractOriginated.contractAddress}...`); + return contractOriginated.contract() + }) + .then (contract => { + println(`Origination completed.`); + }) + .catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); +``` + +### Accessing Map values using Pairs + +The `get` method of the `MichelsonMap` class can be used to access values of the map for a specified key. + +This example accesses the map using its `theMap` annotation. If the storage does now annotate its properties, the caller must use numeric indexes instead. + +Recall that this contract does not annotate the pairs of the key pair either, we use numeric indexes for this also. + +```js live noInline +Tezos.contract.at('KT1SPQToSLv7NFvaiJXNYpGjXS9BJwJ3zkAW') +.then( myContract => { + return myContract.storage() +}) +.then ( myStorage => { + const value = myStorage['theMap'].get({ + 0 : '2', //nat + 1 : 'tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY' //address + }) + println(`Values associated with this key : amount : ${value[Object.keys(value)[0]]}, quantity : + ${value[Object.keys(value)[1]]}`); +}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); +``` + +## A Map with nested Pairs as keys + +This contract schema has a key with eight nested pairs and value of an int. This example type of key is impractical, but we offer it as an example to illustrate how to work with complex keys. + +The Michelson storage schema with a map using eight pairs as a key: + +``` +(map (pair int + (pair nat + (pair string + (pair bytes + (pair mutez + (pair bool + (pair key_hash + (pair timestamp address)))))))) int) +``` + +### Origination a contract with complex keys + +The contract schema in this example does not have map annotations which means that each value needs to have an index as a property name. + +```js live noInline +import { MichelsonMap } from "@taquito/taquito"; + +const storageMap = new MichelsonMap(); +storageMap.set({ + 0: "1", // int + 1: "2", // nat + 2: "test", // string + 3: "cafe", // bytes + 4: "10", // mutez + 5: true, // bool + 6: "tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5", // key_hash + 7: "2019-09-06T15:08:29.000Z", // timestamp + 8: "tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5" // address +}, 100) + +storageMap.set({ + 0: "10", // int + 1: "20", // nat + 2: "Hello", // string + 3: "ffff", // bytes + 4: "100", // mutez + 5: false, // bool + 6: "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", // key_hash + 7: "2019-10-06T15:08:29.000Z", // timestamp + 8: "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" // address +}, 1000) + +// contractMap8pairs variable contains the Michelson Smart Contract +Tezos.contract.originate({ + code: contractMap8pairs, + storage: storageMap, +}) +.then(contractOriginated => { + println(`Waiting for the contract origination of ${contractOriginated.contractAddress}...`); + return contractOriginated.contract() +}) +.then (contract => { + println(`Origination completed.`); +}) +.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); +``` + +### Accessing Map values with complex keys + +The `get` method of the `MichelsonMap` class accesses values of the map for a specified key. + +```js live noInline +Tezos.contract.at('KT1E6AFEshyEmjML4dUmSNTRzNmnDdPqWzrr') +.then( myContract => { + return myContract.storage() +}) +.then ( myStorage => { + const value = myStorage.get({ + 0: "1", // int + 1: "2", // nat + 2: "test", // string + 3: "cafe", // bytes + 4: "10", // mutez + 5: true, // bool + 6: "tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5", // key_hash + 7: "2019-09-06T15:08:29.000Z", // timestamp + 8: "tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5" // address + }) + println(`The value associated to this key is ${value}.`); +}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); +``` + +## BigMaps + +Map and BigMap are semantically the same (except one difference), everything you learned about Maps applies to working with BigMap's. The only difference is that when calling `get` on a BigMap will return a Javascript Promise whereas get on a Map returns directly. + +### Contract storage containing a map and a bigMap + +The `MichelsonMap` class also supports the `bigMap` type. The following example uses a contract containing both a map and a bigMap in its storage. Here is the Michelson definition of storage for this example: + +``` +(pair (big_map %thebigmap (pair nat address) int) (map %themap (pair nat address) int)) +``` + +#### Origination of the contract with an initial storage + +```js live noInline +import { MichelsonMap } from "@taquito/taquito"; + +const storageMap = new MichelsonMap(); +storageMap.set({ + 0 : '1', //nat + 1 : 'tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx' //address + }, 10) +storageMap.set({ + 0 : '2', //nat + 1 : 'tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx' //address + }, 20) + +const storageBigMap = new MichelsonMap(); +storageBigMap.set({ + 0 : '10', //nat + 1 : 'tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5' //address + }, 100) +storageBigMap.set({ + 0 : '20', //nat + 1 : 'tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5' //address + }, 200) +// contractMapBigMap variable contains the Michelson Smart Contract +Tezos.contract.originate({ + code: contractMapBigMap, + storage: { + themap : storageMap, + thebigmap : storageBigMap + } +}) +.then(contractOriginated => { + println(`Waiting for the contract origination of ${contractOriginated.contractAddress}...`); + return contractOriginated.contract() +}) +.then (contract => { + println(`Origination completed.`); +}) +.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); +``` + +#### Accessing the values of the map and the bigMap + +The `get` method of the `MichelsonMap` class accesses the values of the map and values of the bigMap. The difference is that for a map, the value gets returned directly while the get method on a bigMap returns a promise. + +```js live noInline +Tezos.contract.at('KT1McL1e8UgHUMxxW9B8jxifcLKP11Pyv1wC') +.then( myContract => { + return myContract.storage() + .then ( myStorage => { + //When called on a map, the get method returns the value directly + const valueMap = myStorage['themap'].get({ + 0 : '1', //nat + 1 : 'tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx' //address + }) + println(`The value associated with the specified key of the map is ${valueMap}.`); + return myContract.storage() + }) + + .then ( myStorage => { + //When called on a bigMap, the get method returns a promise + return myStorage['thebigmap'].get({ + 0 : '10', //nat + 1 : 'tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5' //address + }) + }).then (valueBigMap => { + println(`The value associated with the specified key of the bigMap is ${valueBigMap}.`); + }) +}) +.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); +``` + + +--- +[michelson_map]: https://michelson.nomadic-labs.com/#type-big_map +[michelson_bigmap]: https://michelson.nomadic-labs.com/#type-big_map diff --git a/docs/metadata-tzip16.md b/docs/metadata-tzip16.md deleted file mode 100644 index 42fa603f92..0000000000 --- a/docs/metadata-tzip16.md +++ /dev/null @@ -1,291 +0,0 @@ ---- -title: TZIP-16 Contract Metadata and Views -author: Roxane Letourneau ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -The `@taquito/tzip16` package allows retrieving metadata associated with a smart contract. These metadata can be stored on-chain (tezos-storage) or off-chain (HTTP(S) or IPFS). The package also provides a way to execute the `MichelsonStorageView` found in the metadata. More information about the TZIP-16 standard can be found [here](https://gitlab.com/tzip/tzip/-/blob/master/proposals/tzip-16/tzip-16.md#introduction). - -## How to use the tzip16 package - -The package can be used as an extension to the well known Taquito contract abstraction. - -1. **We first need to create an instance of `Tzip16Module` and add it as an extension to our `TezosToolkit`** - - -<Tabs - defaultValue="defaultMetadataProvider" - values={[ - {label: 'Using the default Metadata Provider', value: 'defaultMetadataProvider'}, - {label: 'Using a custom Metadata Provider', value: 'customMetadataProvider'} - ]}> - <TabItem value="defaultMetadataProvider"> - - -The constructor of the `Tzip16Module` takes an optional `MetadataProvider` as a parameter. When none is passed, the default `MetadataProvider` of Taquito is instantiated and the default handlers (`HttpHandler`, `IpfsHandler`, and `TezosStorageHandler`) are used. - -```js -import { TezosToolkit } from '@taquito/taquito'; -import { Tzip16Module } from '@taquito/tzip16'; - -const Tezos = new TezosToolkit('rpcUrl'); -Tezos.addExtension(new Tzip16Module()); - -``` - - - </TabItem> - <TabItem value="customMetadataProvider"> - - -In some cases, we may want to use a customized metadata provider. The constructor of the `Tzip16Module` class takes an optional metadata provider as a parameter. This allows to inject a custom metadata provider with custom protocol handlers if desired. For example, if we want to use a different IPFS gateway then the default one, which is `ipfs.io`, or if we want to use a different HTTP handler to support authentication or custom headers. Here is an example: - -```js -import { Handler, IpfsHttpHandler, TezosStorageHandler, MetadataProvider } from '@taquito/tzip16'; - -const Tezos = new TezosToolkit('rpcUrl'); - -// The constructor of the `MetadataProvider` class takes a `Map<string, Handler>` as a parameter. -const customHandler = new Map<string, Handler>([ - ['ipfs', new IpfsHttpHandler('gateway.ipfs.io')], // Constructor of IpfsHttpHandler takes an optional gateway - ['http', 'customHttpHandler'], // Custom HTTP(S) handler - ['https', 'customHttpHandler'], - ['tezos-storage', new TezosStorageHandler()], -]); - -const customMetadataProvider = new MetadataProvider(customHandler); -Tezos.addExtension(new Tzip16Module(customMetadataProvider)); -``` - -A list of public gateways is accessible [here](https://ipfs.github.io/public-gateway-checker/). - - - </TabItem> -</Tabs> - -2. **Use the `tzip16` function to extend a contract abstraction** - -```js -const contract = await Tezos.contract.at("contractAddress", tzip16) -``` - -3. **Call the methods of the `Tzip16ContractAbstraction` class** - -The namespace `tzip16()` need to be specified when calling a method of the `Tzip16ContractAbstraction` class: - -```js -const metadata = await contract.tzip16().getMetadata(); -const views = await contract.tzip16().metadataViews(); -``` - -All other methods of the `ContractAbstraction` class can be called as usual on the `contract` object. - - -## Get the metadata - -The `getMetadata` method returns an object which contains the URI, the metadata in JSON format, an optional SHA256 hash of the metadata and an optional integrity check result. - -A sequence diagram can be found [here](tzip16-sequence-diagram#get-the-metadata). -#### Tezos-storage example - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// import { Tzip16Module, tzip16 } from "@taquito/tzip16"; -// const Tezos = new TezosToolkit('rpc_url'); - -Tezos.addExtension(new Tzip16Module()); - -const contractAddress = "KT1T2KNHdrPwLE4TZcGr6mVZt1s6k9j7tHCV"; - -Tezos.contract.at(contractAddress, tzip16) -.then(contract => { - println(`Fetching the metadata for ${contractAddress}...`); - return contract.tzip16().getMetadata(); -}) -.then (metadata => { - println(JSON.stringify(metadata, null, 2)); -}) -.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -#### HTTPS examples - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// import { Tzip16Module, tzip16 } from "@taquito/tzip16"; -// const Tezos = new TezosToolkit('rpc_url'); - -Tezos.addExtension(new Tzip16Module()); - -const contractAddress = "KT1PmcPVoEeyT6hQb7gNJknoYpx9YpWKWhcE"; - -Tezos.contract.at(contractAddress, tzip16) -.then(contract => { - println(`Fetching the metadata for ${contractAddress}...`); - return contract.tzip16().getMetadata(); -}) -.then (metadata => { - println(JSON.stringify(metadata, null, 2)); -}) -.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -An example having a SHA256 hash: - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// import { Tzip16Module, tzip16 } from "@taquito/tzip16"; -// const Tezos = new TezosToolkit('rpc_url'); - -Tezos.addExtension(new Tzip16Module()); - -const contractAddress = "KT1HgjtPfdtqYANWdxctH9DeECdAb4jR7eyE"; - -Tezos.contract.at(contractAddress, tzip16) -.then(contract => { - println(`Fetching the metadata for ${contractAddress}...`); - return contract.tzip16().getMetadata(); -}) -.then (metadata => { - println(JSON.stringify(metadata, null, 2)); -}) -.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -#### IPFS example - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// import { Tzip16Module, tzip16 } from "@taquito/tzip16"; -// const Tezos = new TezosToolkit('rpc_url'); - -Tezos.addExtension(new Tzip16Module()); - -const contractAddress = "KT1C4ANAuqTJa22Xb7dxzdebeFbmvNghh7Pv"; - -Tezos.contract.at(contractAddress, tzip16) -.then(contract => { - println(`Fetching the metadata for ${contractAddress}...`); - return contract.tzip16().getMetadata(); -}) -.then (metadata => { - println(JSON.stringify(metadata, null, 2)); -}) -.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -## Execute off-chain views - -A sequence diagram can be found [here](tzip16-sequence-diagram#execute-a-view). - -In the next example, we will run a view named `someJson` that can be found in the metadata of the contract `KT1T2KNHdrPwLE4TZcGr6mVZt1s6k9j7tHCV`. When we inspect those metadata, we can see that this view takes no parameter, has a returnType of bytes and has the following code: - -``` -"code": -[ - { - "prim": "DROP", - "args": [], - "annots": [] - }, - { - "prim": "PUSH", - "args": [ - { - "prim": "bytes", - "args": [], - "annots": [] - }, - { - "bytes": "7b2268656c6c6f223a22776f726c64222c226d6f7265223a7b226c6f72656d223a34322c22697073756d223a5b22222c226f6e65222c2232225d7d7d" - } - ], - "annots": [] - } -] -``` -Try to run the view: - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// import { Tzip16Module, tzip16, bytes2Char } from "@taquito/tzip16"; -// const Tezos = new TezosToolkit('rpc_url'); - -Tezos.addExtension(new Tzip16Module()); - -const contractAddress = "KT1T2KNHdrPwLE4TZcGr6mVZt1s6k9j7tHCV"; - -Tezos.contract.at(contractAddress, tzip16) -.then(contract => { - println(`Initialising the views for ${contractAddress}...`); - return contract.tzip16().metadataViews(); -}) -.then (views => { - println(`The following view names were found in the metadata: ${Object.keys(views)}`); - return views.someJson().executeView() -}).then (result => { - println(`Result of the view someJson: ${result}`); - println(`Transform result to char: ${bytes2Char(result)}`); -}) -.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -In the next example, we will run a view named `multiply-the-nat-in-storage` that can be found in the metadata of the contract `KT1EaeTNwTzxkS45kkTuDN4rqAghDTLn95La`. When we inspect those metadata, we can see that this view takes a `nat` has a parameter, has a returnType of `nat` and has the following instructions: `DUP, CDR, CAR, SWAP, CAR, MUL`. - -Try to run the view: - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// import { Tzip16Module, tzip16 } from "@taquito/tzip16"; -// const Tezos = new TezosToolkit('rpc_url'); - -Tezos.addExtension(new Tzip16Module()); - -const contractAddress = "KT1EaeTNwTzxkS45kkTuDN4rqAghDTLn95La"; - -Tezos.contract.at(contractAddress, tzip16) -.then(contract => { - return contract.storage() -.then(storage => { - println(`The nat in the storage of the contract is: ${storage[0]}`); - println(`Initialising the views for ${contractAddress}...`); - return contract.tzip16().metadataViews(); -})}) -.then (views => { - println(`The following view names were found in the metadata: ${Object.keys(views)}`); - return views['multiply-the-nat-in-storage']().executeView(10) -}).then (result => { - println(`Result of the view 'multiply-the-nat-in-storage': ${result}`); -}) -.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -## Execute a custom view - -In the next example we execute the view `multiply-the-nat-in-storage` in a custom way: - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// import { MichelsonStorageView } from "@taquito/tzip16"; -// const Tezos = new TezosToolkit('rpc_url'); - -const contractAddress = "KT1EaeTNwTzxkS45kkTuDN4rqAghDTLn95La"; - -Tezos.contract.at(contractAddress) -.then(contract => { - const view = new MichelsonStorageView( - 'test', // view name - contract, // contract abstraction - Tezos.rpc, // rpc - { "prim": "nat" }, // returnType - [{ "prim": "DUP" },{ "prim": "CDR" },{ "prim": "CAR" },{ "prim": "SWAP" },{ "prim": "CAR" }, { "prim": "MUL" }], // code of the view - { "prim": "nat" } // parameter type - ) - -view.executeView(2) -.then(result => { - println(`Result of the custom view: ${result}`) -})}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` \ No newline at end of file diff --git a/docs/michelson_encoder.md b/docs/michelson_encoder.md deleted file mode 100644 index 839330c6a3..0000000000 --- a/docs/michelson_encoder.md +++ /dev/null @@ -1,425 +0,0 @@ ---- -title: Michelson Encoder -author: Roxane Letourneau ---- - -The purpose of the `Michelson-Encoder` package is to create an abstraction over the Michelson Language. It allows converting Michelson data into javascript-looking objects which are easier to use and reason about. - -Its integration into the main `Taquito` package makes it easier to write the storage when deploying a contract and the parameter when calling a contract entry-point. - -## How it works? - -There are three main classes in the Michelson Encoder: -- `Token` -- `ParameterSchema` -- `Schema` - -[Here](/img/taquito-michelson-encoder.png) is a class diagram showing their members, methods, and relations. - -A specific token class in the package represents each different Michelson type (i.e., `nat`, `list`, `pair`, `or`, ...). Each of these classes extends the abstract class `Token` and needs to implement these four inherited abstract methods: -- `Execute`: To convert Michelson data into familiar-looking javascript data -- `Encode`: To convert javascript array data to JSON Michelson -- `EncodeObject`: To convert javascript object data to JSON Michelson -- `ExtractSchema`: To show how the data should be structured in the javascript format - -We can reason about Michelson types and data as tree structures. Thus, the methods of the `Token` class use recursion to iterate over a Michelson parameter and create a specific token for each Michelson type encountered (i.e., each node and leaf of the tree). - -The constructors of the `ParameterSchema` and `Schema` classes take a `MichelsonV1Expression` as a parameter (i.e., a Michelson type in JSON format). These two classes have a composition relationship with the `Token` class as they have a private member named `root`, which is a `Token` instance corresponding to the root type of the Michelson parameter. The root is the starting point of the recursive calls. - -## The Schema class - -In this section, we will use the schema class to represent the storage of a smart contract. - -### Create a Schema instance - -We can create an instance of `Schema` representing a contract's storage using the constructor and passing the storage type in Michelson JSON format or using the `fromRPCResponse` method. This second way allows creating the `Schema` instance with the script of the contract obtained from the `getScript` method of the `RpcClient` class. - -Here are examples: - -```js -const storageType = { - prim: 'pair', - args: [ - { prim: 'nat', annots: [ '%stored_counter' ] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: [ '%threshold' ] }, - { prim: 'list', args: [ { prim: 'key' } ], annots: [ '%keys' ] } - ] - } - ] -}; -const storageSchema = new Schema(storageType); -``` - -or - -```js -const script = await Tezos.rpc.getScript('KT1MTFjUeqBeZoFeW1NLSrzJdcS5apFiUXoB'); -const storageSchema = Schema.fromRPCResponse({ script }); -``` - -### The ExtractSchema method - -We can use this method to obtain indications on how to write the storage when deploying a contract. - -Here is an example with a contract storage having annotations and a `pair` at its root. The `ExtractSchema` method returns an object where the keys are the annotations, and the values show the corresponding type. - -```js live noInline -const storageType = { - prim: 'pair', - args: [ - { prim: 'nat', annots: [ '%stored_counter' ] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: [ '%threshold' ] }, - { prim: 'list', args: [ { prim: 'key' } ], annots: [ '%keys' ] } - ] - } - ] -}; -const storageSchema = new Schema(storageType); -const extractSchema = storageSchema.ExtractSchema(); -println(JSON.stringify(extractSchema, null, 2)); -``` - -When there is no annotation, the keys of the object are indexes starting from 0. - -```js live noInline -const storageType = { - prim: 'pair', - args: [ - { prim: 'nat' }, - { - prim: 'pair', - args: [ - { prim: 'nat' }, - { prim: 'list', args: [ { prim: 'key' } ] } - ] - } - ] -}; -const storageSchema = new Schema(storageType); -const extractSchema = storageSchema.ExtractSchema(); -println(JSON.stringify(extractSchema, null, 2)); -``` -Note that for `big_map`, an object is returned where the key is the type of the big map key and the value is the type of the big map value. - -```js live noInline -const storageType = { prim: 'big_map', args: [{ prim: 'address' }, { prim: 'int' }] }; -const storageSchema = new Schema(storageType); -const extractSchema = storageSchema.ExtractSchema(); -println(JSON.stringify(extractSchema, null, 2)); -``` - -Here is another example using a complex storage: - -```js live noInline -const storageType = -{ - prim: 'pair', - args: [ - { prim: 'big_map', args: [ { prim: 'address' }, { prim: 'nat' } ] }, - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'contract', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address' }, - { - prim: 'contract', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address' }, - { - prim: 'pair', - args: [ - { prim: 'address' }, - { prim: 'nat' } - ] - } - ] - }, - { prim: 'address' } - ] - } - ] - } - ] - }, - { prim: 'nat' } - ] - } - ] - }, - { - prim: 'contract', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address' }, - { prim: 'pair', args: [ { prim: 'address' }, { prim: 'nat' } ] } - ] - }, - { prim: 'address' } - ] - } - ] - } - ] - }, - { - prim: 'pair', - args: [ - { prim: 'nat' }, - { - prim: 'map', - args: [ - { prim: 'address' }, - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'nat' }, - { - prim: 'pair', - args: [ { prim: 'nat' }, { prim: 'timestamp' } ] - } - ] - }, - { - prim: 'pair', - args: [ - { prim: 'pair', args: [ { prim: 'nat' }, { prim: 'mutez' } ] }, - { - prim: 'pair', - args: [ { prim: 'nat' }, { prim: 'timestamp' } ] - } - ] - } - ] - }, - { - prim: 'or', - args: [ - { prim: 'pair', args: [ { prim: 'nat' }, { prim: 'timestamp' } ] }, - { - prim: 'pair', - args: [ - { prim: 'nat' }, - { - prim: 'pair', - args: [ { prim: 'mutez' }, { prim: 'timestamp' } ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] -}; -const storageSchema = new Schema(storageType); -const extractSchema = storageSchema.ExtractSchema(); -println(JSON.stringify(extractSchema, null, 2)); -``` - -### The Typecheck method - -We can use the `Typecheck` method to validate the storage object. The method takes the storage object as a parameter and returns `true` if the storage object is compliant with the schema type or `false`. Validation of the properties is done. For example, the key used in the following code snippet is invalid, so the returned value of the `Typecheck` method is false. - -```js live noInline -const storageType = { - prim: 'pair', - args: [ - { prim: 'nat', annots: [ '%stored_counter' ] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: [ '%threshold' ] }, - { prim: 'list', args: [ { prim: 'key' } ], annots: [ '%keys' ] } - ] - } - ] -}; -const storageSchema = new Schema(storageType); -const typecheck = storageSchema.Typecheck({ - stored_counter: 10, - threshold: 5, - keys: ['edpkuLxx9PQD8fZ45eUzrK3yhfDZJHhBuK4Zi49DcEGANwd2rpX82t'] -}) -println(typecheck); -``` - -### The Encode method - -We use the `Encode` method to transform data from a javascript object to Michelson data. -Here is an example: - -```js live noInline -const storageType = { - prim: 'pair', - args: [ - { prim: 'nat', annots: [ '%stored_counter' ] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: [ '%threshold' ] }, - { prim: 'list', args: [ { prim: 'key' } ], annots: [ '%keys' ] } - ] - } - ] -}; -const storageSchema = new Schema(storageType); -const michelsonData = storageSchema.Encode({ - stored_counter: 10, - threshold: 5, - keys: ['edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g', 'edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t'] -}) -println(JSON.stringify(michelsonData, null, 2)); -``` - -### The Execute method - -We use the `Execute` method to transform data from Michelson to a javascript object. -Here is an example: - -```js live noInline -const storageType = { - prim: 'pair', - args: [ - { prim: 'nat', annots: [ '%stored_counter' ] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: [ '%threshold' ] }, - { prim: 'list', args: [ { prim: 'key' } ], annots: [ '%keys' ] } - ] - } - ] -}; -const storageSchema = new Schema(storageType); -const dataMichelson = { - "prim": "Pair", - "args": [ - { - "int": "10" - }, - { - "prim": "Pair", - "args": [ - { - "int": "5" - }, - [ - { - "string": "edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g" - }, - { - "string": "edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t" - } - ] - ] - } - ] -} -const data = storageSchema.Execute(dataMichelson) -println(JSON.stringify(data, null, 2)); -``` - -The `Execute` method takes an optional parameter of type `Semantic`. It allows overriding the default representation returned by the Michelson Encoder for specific types. - -Here is an example for the `big_map` type: -If we have a contract having a big map in its storage, when we fetch the contract's storage with the RPC, the returned value looks like the following `{ int: big_map_id }`. -In the Taquito main package, the `getStorage` method of the `ContractProvider` class uses the semantic parameter to override the representation of big map in the storage. When we fetch the storage of a contract using `Tezos.contract.getStorage('contractAddress')`, an instance of the `BigMapAbstraction` class is returned for the big map instead of its id. - -```js live noInline -const schema = new Schema({ prim: 'big_map', args: [{ prim: 'address' }, { prim: 'int' }] }); -const dataMichelson = { int: 123456 } - -const data = schema.Execute(dataMichelson) -println(`Default value returned by the Michelson Encoder for big_map: ${JSON.stringify(data, null, 2)}`); - -// instead of returning the big map id, we can override it -// we return an object in this case -const dataCustom = schema.Execute(dataMichelson, { big_map: (val) => Object({ id: val.int })}) -println(`Customised representation of the big_map value: ${JSON.stringify(dataCustom)}`); -``` - -Here is an example for the `ticket` type: - -```js live noInline -const schema = new Schema({"prim":"ticket","args":[{"prim":"string"}]}); -const dataMichelson = {"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"string":"test"},{"int":"2"}]} - -const data = schema.Execute(dataMichelson) -println(`Default representation of the ticket value returned by the Michelson Encoder: ${JSON.stringify(data, null, 2)}`); - -const dataCustom = schema.Execute(dataMichelson, { ticket: (val) => val.args[1].string}) -println(`Customised representation of the ticket value: ${JSON.stringify(dataCustom)}`); -``` - -### How the Schema class is used inside Taquito - -The `Schema` class is internally used in Taquito: -- When calling `Tezos.contract.getStorage()`: - It allows returning a well-formatted JSON object of the contract storage using the `Execute` method to convert the Michelson data into familiar-looking javascript data. -- When fetching a bigmap key with `BigMapAbstraction.get()` or `RpcContractProvider.getBigMapKey()`: - It transforms the key we want to fetch into Michelson using the `EncodeBigMapKey` method, and it transforms the fetched value into a javascript object using the `ExecuteOnBigMapValue`. -- When deploying a contract: - The `Encode` method allows transforming the javascript object used for the storage into Michelson data. -- In the tzip16 package: - The `FindFirstInTopLevelPair` method allows finding a value in the storage matching a specified type (in this case, the big map named metadata). - -## The ParameterSchema class - -The `ParameterSchema` class is used to represent the smart contract methods. This class is similar to the `Schema` class except that the `Encode` method expects flattened parameters instead of a javascript object. - -Here is an example: - -```js live noInline -const parameterSchema = new ParameterSchema({"prim":"pair","args":[{"prim":"address","annots":[":spender"]},{"prim":"nat","annots":[":value"]}],"annots":["%approve"]}); -const michelsonData = parameterSchema.Encode( - 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', - '12' -) -println(JSON.stringify(michelsonData, null, 2)); -``` - -### How the ParameterSchema class is used inside Taquito - -The `ParameterSchema` class is internally used in Taquito: -- When we call a method, or a view of a contract using the `ContractAbstraction` class, the `Encode` method is used to transform the parameters into Michelson data. -- In the `tzip16` package, when we execute a Michelson view, the `Encode` method is used to transform the parameters into Michelson data. diff --git a/docs/michelsonmap.md b/docs/michelsonmap.md deleted file mode 100644 index e94fa43f44..0000000000 --- a/docs/michelsonmap.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: MichelsonMap class -id: michelsonmap -author: Claude Barde ---- - -One of the most attractive smart contract features is storing a substantial amount of data that the contract code can use. Although Michelson provides different structures to store data, this article's object will be its maps. Maps are hash tables that contain key/value pairs, which means that when you want to find a value in a map, you search for its key. Maps allow you to store complex data that can reference a single word or number or even more complex data like a pair! - -Unlike big maps, all the values in a map are deserialized, allowing developers to access all of them at once. While maps become more expensive to use when the number of key/value pairs increases, they are well-suited for smaller databases because of Michelson's extra features (like mapping or folding) and Taquito offer on maps. - -Taquito reads maps in the storage of smart contracts and translates them into an [instance of the `MichelsonMap` class](https://tezostaquito.io/typedoc/classes/_taquito_michelson_encoder.michelsonmap.html). The class and its instances expose different features that give developers much flexibility to use Michelson maps in their dapps. These features fall into four groups: - -- _The instantiation_: there are three different ways of creating a new `MichelsonMap` in Taquito -- _The general methods_: they give you information about the map, for example, its size or the elements it contains -- _The key/value methods_: they allow you to manipulate the keys and values in the map -- _The update methods_: they transform the map itself, for example, by deleting elements or clearing out the map entirely. - -This tutorial uses a [simple smart contract deployed on edonet](https://better-call.dev/edo2net/KT1E7jtyoejiFWJnomA51SSW6jtZnwTApHT8/operations) with a map that contains addresses as keys and tez as values. We will use all the methods available in Taquito's `MichelsonMap` to check the map, extract values and modify them! - - -> Note: Taquito is written in TypeScript; we will also use TypeScript to interact with the contract storage. - -## Loading the smart contract storage - -This paragraph is a little reminder of how to use Taquito to fetch the storage of a smart contract: - -```ts -import { TezosToolkit, MichelsonMap } from '@taquito/taquito'; -import { BigNumber } from 'bignumber.js'; - -const contractAddress: string = 'KT1E7jtyoejiFWJnomA51SSW6jtZnwTApHT8'; - -const Tezos = new TezosToolkit('https://testnet-tezos.giganode.io'); - -const contract = await Tezos.contract.at(contractAddress); -const storage: MichelsonMap<string, BigNumber> = await contract.storage(); -``` - -The setup code is pretty straightforward: -1- We import `TezosToolkit` and `MichelsonMap` from the `@taquito/taquito` package. We also import `BigNumber` from `bignumber.js` (Taquito installs the library) as TypeScript will need it for this particular example. -2- We instantiate the `TezosToolkit` object with the RPC address. -3- We fetch the contract using `await Tezos.contract.at(contractAddress)`. -4- We extract the contract from the contract using the `storage` method on the `ContractAbstraction` object created one line above. We also type the `storage` variable with the `MichelsonMap` type, which requires 2 type arguments: the type for the key and the type for the value (the `address` is a string, and the `tez` is converted to a BigNumber by Taquito). - -## Creating a `MichelsonMap` instance - -Taquito provides three different ways of creating a new Michelson map: we can use two of them to create an empty map, and the third one is used to create a map with default values. - -The most simple way is to create the instance with no argument: - -```ts -const newEmptyMapWithoutArg = new MichelsonMap(); -``` - -If you prefer, you can also pass an argument to the `MichelsonMap` constructor to indicate the type you want for the keys and the values: - -```ts -// this code creates the same map as in the storage of the contract - -const newEmptyMapWithArg = new MichelsonMap({ - prim: 'map', - args: [{ prim: 'string' }, { prim: 'mutez' }], -}); -``` - -Finally, you can also pass some values you want to create the instance with and let Taquito figure out the types using the `fromLiteral` static method: - -```ts -const newMapfromLiteral = MichelsonMap.fromLiteral({ - tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb: new BigNumber(123), -}); -``` - -## The general properties and methods: `isMichelsonMap`, `size`, `has` and `get` - -The first thing you may want to check after fetching the data from contract storage is if the part of the storage you expect to be a map is indeed a map. W can achieve this by using the `isMichelsonMap` static method on the `MichelsonMap` class: - -```ts -const isMap: boolean = MichelsonMap.isMichelsonMap(storage); // true or false -``` - -> Note: this is a static method, so you can use it without creating a new instance of `MichelsonMap.` - -Once you are sure you are dealing with a map, you can check how many key/value pairs it holds with the `size` property: - -```ts -const size: number = storage.size; // number of elements in the map -``` - -Sometimes, you don't want to do anything with the values in a map, but you want to verify whether a key appears in the map, you can then use the `has` method and pass it the key you are looking for: - -```ts -const key: string = 'tz1MnmtP4uAcgMpeZN6JtyziXeFqqwQG6yn6'; -const existsInMap: boolean = storage.has(key); // true or false -``` - -After that, you can fetch the value associated with the key you are looking for with the `get` method: - -```ts -const key: string = 'tz1MnmtP4uAcgMpeZN6JtyziXeFqqwQG6yn6'; -const valueInTez: BigNumber = storage.get(key); // value as a big number -const value: number = valueInTez.toNumber(); // returns 789000000 -``` - -## The key/value methods - -One of the main advantages of maps over big maps is that the key/value pairs are readily available in your dapp without any extra step. If you are looking for a simple solution to loop over all the pairs and get the key and the value, the `MichelsonMap` instance exposes a `forEach` method that allows you to get these values: - -```ts -const foreachPairs: { address: string; amount: number }[] = []; -storage.forEach((val: BigNumber, key: string) => { - foreachPairs.push({ address: key, amount: val.toNumber() / 10 ** 6 }); -}); -console.log(foreachPairs); -``` - -The code above will output: - -```ts -[ - { address: 'tz1MnmtP4uAcgMpeZN6JtyziXeFqqwQG6yn6', amount: 789 }, - { address: 'tz1R2oNqANNy2vZhnZBJc8iMEqW79t85Fv7L', amount: 912 }, - { address: 'tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb', amount: 123 }, - { address: 'tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6', amount: 456 }, -]; -``` - -The `MichelsonMap` instance exposes another method that will yield the same result, albeit in a different way. The `entries` method is a [generator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators) function that you can use if you wish to. This is how it works: - -```ts -const entriesPairs: { address: string; amount: number }[] = []; -const entries = storage.entries(); -for (let entry of entries) { - entriesPairs.push({ address: entry[0], amount: entry[1].toNumber() / 10 ** 6 }); -} -console.log('entries => ' + JSON.stringify(entriesPairs) + '\n'); -``` - -This code will yield the same result as the one above. A generator may be preferable according to your use case. - -The same idea is available for keys and values, the `keys` and `values` methods are generators that will allow you to loop over the keys or the values of the map: - -```ts -const mapKeys: string[] = []; -const keys = storage.keys(); -for (let key of keys) { - mapKeys.push(key); -} -console.log('keys => ' + mapKeys + '\n'); -``` - -This example will output the following array containing all the keys of the map: - -```ts -[ - 'tz1MnmtP4uAcgMpeZN6JtyziXeFqqwQG6yn6', - 'tz1R2oNqANNy2vZhnZBJc8iMEqW79t85Fv7L', - 'tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb', - 'tz1aSkwEot3L2kmUvcoxzjMomb9mvBNuzFK6', -]; -``` - -Similarly, you can use `values` instead of `keys` to output some or all the values in the map: - -```ts -const mapValues: number[] = []; -const values = storage.values(); -for (let value of values) { - mapValues.push(value.toNumber()); -} -console.log('values => ' + mapValues + '\n'); -``` - -This command will output all the values of the map inside an array: - -```ts -[789000000, 912000000, 123000000, 456000000]; -``` - -## The update methods - -Although reading and organizing the keys or the values fetched from a Michelson map is an everyday use case, you may also want to modify a map, for example, before originating a new contract. Taquito also thought about it and provided different methods to add or remove key/value pairs from a map. - -First, you can use the `set` method to add a new value to an instance of `MichelsonMap`: - -```ts -console.log(`previous size => ${storage.size} elements`); // 4 elements - -storage.set('tz1TfRXkAxbQ2BFqKV2dF4kE17yZ5BmJqSAP', new BigNumber(345)); - -console.log(`new size => ${storage.size} elements \n`); // 5 elements -``` - -This command adds a new entry in the map with the first argument's address and the BigNumber being the value. - -> Note: it is essential to use `new BigNumber(345)` for the value and not merely `345` as TypeScript will throw a type error because earlier, we set the type argument of the `MichelsonMap` to `BigNumber.` - -You can also delete one of the entries of the map with the `delete` method: - -```ts -console.log(`delete: previous size => ${storage.size} elements`); // 5 elements - -storage.delete('tz1MnmtP4uAcgMpeZN6JtyziXeFqqwQG6yn6'); - -console.log(`delete: new size => ${storage.size} elements \n`); // 4 elements -``` - -> Note: deleting a key that doesn't exist doesn't throw an error; it will just not affect the map. - -To finish, you can also delete all the entries in a Michelson map if you want with the `clear` method: - -```ts -storage.clear(); -console.log(`clear: new size => ${storage.size} element`); // 0 element -``` - -## To go further - -If you want to know more about `MichelsonMap` and some advanced usages (for example, how to use pairs as the map keys), you can learn in the [advanced tutorial](https://tezostaquito.io/docs/maps_bigmaps) available in the Taquito documentation. - -*April 2021, Taquito version 8.1.0* \ No newline at end of file diff --git a/docs/originate.md b/docs/originate.md index f7f10ee8d5..fadb4a19d1 100644 --- a/docs/originate.md +++ b/docs/originate.md @@ -2,7 +2,6 @@ title: Originating (Deploying) Contracts author: Simon Boissonneault-Robert --- - import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -10,27 +9,26 @@ Taquito can _originate_ (create or deploy) Smart Contracts to the Tezos Blockcha ## Example demonstrating origination of a contract -In this example, we will originate the popular multi-sig contract available [here](https://github.com/murbard/smart-contracts/blob/master/multisig/michelson/generic.tz). +In this example, we will originate the popular mutli-sig contract that is available [here](https://github.com/murbard/smart-contracts/blob/master/multisig/michelson/generic.tz). -> Since version [6.3.2](https://github.com/ecadlabs/taquito/releases/tag/6.3.2-beta.0), Taquito allows encoding and decoding between "plain" Michelson and JSON Michelson. Smart Contracts' origination is now more straightforward than it was because it is no longer required to do the tezos-client command-line to convert & expand "plain" Michelson to JSON Michelson. You can now pass JSON Michelson and "plain" Michelson using the `code` parameter of the `originate` method. +> Since version [6.3.2](https://github.com/ecadlabs/taquito/releases/tag/6.3.2-beta.0), Taquito allows encoding and decoding between "plain" Michelson and JSON Michelson. The origination of Smart Contracts is now easier because it is no longer required to do the tezos-client command-line to convert & expand "plain" Michelson to JSON Michelson. You can now pass JSON Michelson as well as "plain" Michelson using the `code` parameter of the `originate` method. ## Originate the contract using Taquito -Here are three examples of originating a contract using Taquito. The first example initializes the storage of the contract using a familiar-looking javascript object. The second and third demonstrates the use of plain Michelson and JSON Michelson. The first method is preferred, but if you have a reason to circumvent the convenient storage API, you can do so. - -We will show these three examples using the `Contract API` and the `Wallet API.` The new Taquito Wallet API interacts with wallets, supporting Beacon, the TZIP-10 standard. +Here are three examples of originating a contract using Taquito. The first example initializes the storage of the contract using a familiar-looking javascript object. The second and third demonstrates the use of plain Michelson and JSON Michelson. The first method is preferred, but if you have a reason to circumvent the convenient storage API, this allows you to do so. -> Note: To run the `Wallet API` examples, you can install a wallet extension to your browser. For example, the Beacon Extension can be download [here](https://www.walletbeacon.io/). +These three examples will be shown using the `Contract API` and the `Wallet API`. The new Taquito Wallet API is designed to interact with wallets, and it supports Beacon, the TZIP-10 standard. +> Note : To run the `Wallet API` examples, you can install a wallet extension to your browser. For example, the Beacon Extension can be download [here](https://www.walletbeacon.io/). <Tabs -defaultValue="contractAPI" -values={[ -{label: 'Contract API', value: 'contractAPI'}, -{label: 'Wallet API', value: 'walletAPI'} -]}> -<TabItem value="contractAPI"> + defaultValue="contractAPI" + values={[ + {label: 'Contract API', value: 'contractAPI'}, + {label: 'Wallet API', value: 'walletAPI'} + ]}> + <TabItem value="contractAPI"> -This requires a signer to be configured, ie: +This requires a signer to be configured, ie: ``` import { importKey } from '@taquito/taquito-signer'; @@ -43,10 +41,10 @@ importKey("p2sk2obfVMEuPUnadAConLWk7Tf4Dt3n4svSgJwrgpamRqJXvaYcg1") ``` import { BeaconWallet } from '@taquito/beacon-wallet'; import { TezosToolkit } from '@taquito/taquito'; -const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); const option = { name: "nameOfWallet" } const wallet = new BeaconWallet(option) -const network = { type: "florencenet" } +const network = { type: "carthagenet" } await wallet.requestPermissions({ network }) Tezos.setWalletProvider(wallet) ``` @@ -59,7 +57,6 @@ Tezos.setWalletProvider(wallet) You can pass your initial storage as a JavaScript object to the `storage:` property. Taquito will encode your JavaScript object into a Michelson expression. This JavaScript object : - ``` { stored_counter: 0, threshold: 1, @@ -67,7 +64,6 @@ This JavaScript object : ``` Is equivilent to this Michelson expression : - ``` (Pair 0 (Pair 1 { "edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t" })) ``` @@ -75,37 +71,34 @@ Is equivilent to this Michelson expression : As you can see, the property names are discarded. The order of your properties is crucial! <Tabs -defaultValue="contractAPI" -values={[ -{label: 'Contract API', value: 'contractAPI'}, -{label: 'Wallet API', value: 'walletAPI'} -]}> -<TabItem value="contractAPI"> + defaultValue="contractAPI" + values={[ + {label: 'Contract API', value: 'contractAPI'}, + {label: 'Wallet API', value: 'walletAPI'} + ]}> + <TabItem value="contractAPI"> ```js live noInline // import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); // const genericMultisigJSONfile = require('./generic.json') // generic.json is referring to Michelson source code in JSON representation -Tezos.contract - .originate({ - code: genericMultisigJSONfile, - storage: { - stored_counter: 0, - threshold: 1, - keys: ['edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t'], - }, - }) - .then((originationOp) => { - println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); - return originationOp.contract(); - }) - .then((contract) => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); +Tezos.contract.originate({ + code: genericMultisigJSONfile, + storage: { + stored_counter: 0, + threshold: 1, + keys: ['edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t'] + } +}).then(originationOp => { + println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); + return originationOp.contract() +}).then (contract => { + println(`Origination completed.`); +}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); + ``` </TabItem> @@ -113,29 +106,26 @@ Tezos.contract ```js live noInline wallet // import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); // const genericMultisigJSONfile = require('./generic.json') // generic.json is referring to Michelson source code in JSON representation -Tezos.wallet - .originate({ - code: genericMultisigJSONfile, - storage: { - stored_counter: 0, - threshold: 1, - keys: ['edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t'], - }, - }) - .send() - .then((originationOp) => { - println(`Waiting for confirmation of origination...`); - return originationOp.contract(); - }) - .then((contract) => { - println(`Origination completed for ${contract.address}.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); +Tezos.wallet.originate({ + code: genericMultisigJSONfile, + storage: { + stored_counter: 0, + threshold: 1, + keys: ['edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t'] + } +}).send() +.then(originationOp => { + println(`Waiting for confirmation of origination...`); + return originationOp.contract() +}).then (contract => { + println(`Origination completed for ${contract.address}.`); +}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); + ``` </TabItem> @@ -143,36 +133,33 @@ Tezos.wallet ### b. Initializing storage using a plain Michelson Expression for initial storage -When using the Michelson expression for initial storage, we need to use the `init` parameter instead of the `storage` object. +When using Michelson expression for initial storage, we need to use the `init` parameter instead of the `storage` object. <Tabs -defaultValue="contractAPI" -values={[ -{label: 'Contract API', value: 'contractAPI'}, -{label: 'Wallet API', value: 'walletAPI'} -]}> -<TabItem value="contractAPI"> + defaultValue="contractAPI" + values={[ + {label: 'Contract API', value: 'contractAPI'}, + {label: 'Wallet API', value: 'walletAPI'} + ]}> + <TabItem value="contractAPI"> ```js live noInline // import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); // const genericMultisigJSONfile = require('./generic.json') // generic.json is referring to Michelson source code in JSON representation -Tezos.contract - .originate({ - code: genericMultisigJSONfile, - init: `(Pair 0 (Pair 1 { "edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t" }))`, - }) - .then((originationOp) => { - println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); - return originationOp.contract(); - }) - .then((contract) => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); +Tezos.contract.originate({ + code: genericMultisigJSONfile, + init: `(Pair 0 (Pair 1 { "edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t" }))` +}).then(originationOp => { + println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); + return originationOp.contract() +}).then (contract => { + println(`Origination completed.`); +}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); + ``` </TabItem> @@ -180,25 +167,22 @@ Tezos.contract ```js live noInline wallet // import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); // const genericMultisigJSONfile = require('./generic.json') // generic.json is referring to Michelson source code in JSON representation -Tezos.wallet - .originate({ - code: genericMultisigJSONfile, - init: `(Pair 0 (Pair 1 { "edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t" }))`, - }) - .send() - .then((originationOp) => { - println(`Waiting for confirmation of origination...`); - return originationOp.contract(); - }) - .then((contract) => { - println(`Origination completed for ${contract.address}.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); +Tezos.wallet.originate({ + code: genericMultisigJSONfile, + init: `(Pair 0 (Pair 1 { "edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t" }))` +}).send() +.then(originationOp => { + println(`Waiting for confirmation of origination...`); + return originationOp.contract() +}).then (contract => { + println(`Origination completed for ${contract.address}.`); +}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); + ``` </TabItem> @@ -207,45 +191,37 @@ Tezos.wallet ### c. Initializing storage using a JSON encoded Michelson Expression for initial storage <Tabs -defaultValue="contractAPI" -values={[ -{label: 'Contract API', value: 'contractAPI'}, -{label: 'Wallet API', value: 'walletAPI'} -]}> -<TabItem value="contractAPI"> + defaultValue="contractAPI" + values={[ + {label: 'Contract API', value: 'contractAPI'}, + {label: 'Wallet API', value: 'walletAPI'} + ]}> + <TabItem value="contractAPI"> ```js live noInline // import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); // const genericMultisigJSONfile = require('./generic.json') // generic.json is referring to Michelson source code in JSON representation -Tezos.contract - .originate({ - code: genericMultisigJSONfile, - init: { - prim: 'Pair', - args: [ - { int: '0' }, - { - prim: 'Pair', - args: [ - { int: '1' }, - [{ string: 'edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t' }], - ], - }, - ], - }, - }) - .then((originationOp) => { - println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); - return originationOp.contract(); - }) - .then((contract) => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); +Tezos.contract.originate({ + code: genericMultisigJSONfile, + init: { "prim": "Pair", + "args": + [ { "int": "0" }, + { "prim": "Pair", + "args": + [ { "int": "1" }, + [ { "string": + "edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t" } ] ] } ] } +}).then(originationOp => { + println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); + return originationOp.contract() +}).then (contract => { + println(`Origination completed.`); +}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); + ``` </TabItem> @@ -253,37 +229,29 @@ Tezos.contract ```js live noInline wallet // import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); // const genericMultisigJSONfile = require('./generic.json') // generic.json is referring to Michelson source code in JSON representation -Tezos.wallet - .originate({ - code: genericMultisigJSONfile, - init: { - prim: 'Pair', - args: [ - { int: '0' }, - { - prim: 'Pair', - args: [ - { int: '1' }, - [{ string: 'edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t' }], - ], - }, - ], - }, - }) - .send() - .then((originationOp) => { - println(`Waiting for confirmation of origination...`); - return originationOp.contract(); - }) - .then((contract) => { - println(`Origination completed for ${contract.address}.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); +Tezos.wallet.originate({ + code: genericMultisigJSONfile, + init: { "prim": "Pair", + "args": + [ { "int": "0" }, + { "prim": "Pair", + "args": + [ { "int": "1" }, + [ { "string": + "edpkuLxx9PQD8fZ45eUzrK3BhfDZJHhBuK4Zi49DcEGANwd2rpX82t" } ] ] } ] } +}).send() +.then(originationOp => { + println(`Waiting for confirmation of origination...`); + return originationOp.contract() +}).then (contract => { + println(`Origination completed for ${contract.address}.`); +}).catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); + ``` </TabItem> diff --git a/docs/quick_start.md b/docs/quick_start.md index 92320cce30..4334056778 100644 --- a/docs/quick_start.md +++ b/docs/quick_start.md @@ -1,8 +1,12 @@ --- -title: Quick Start +title: Quick start author: Simon Boissonneault-Robert --- +:::warning v7 Breaking changes +Taquito version 7, which supports the Tezos "delphi" protocol has some breaking changes. If you are upgrading from an earlier version to v7 please read the [v7 upgrade guide](v7_breaking_changes.md) +::: + ## Installing Taquito using npm > For quick-start, you may also like to try out our template/boilerplate app [here][boilerplate] @@ -25,7 +29,7 @@ import { TezosToolkit } from '@taquito/taquito'; const tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); ``` -In some cases, it can be useful to make more than one instance of Taquito, perhaps if you wanted to communicate with two different RPC nodes or offer other Signing options. You can now up separate instances with various providers or configurations per instance. +In some case, it can be useful to make more than one instance of Taquito. Perhaps if you wanted to communicate with two different RPC nodes, or offer to different Signing options. You can new up separate instances with different providers or configuration per instance. ## Configuration @@ -49,7 +53,7 @@ tezos.setProvider({ signer: new TezBridgeSigner() }); ```js live noInline // import { TezosToolkit } from '@taquito/taquito'; -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); Tezos.tz .getBalance('tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY') @@ -59,9 +63,9 @@ Tezos.tz ### Using the inMemory Signer and Importing a key -The `InMemorySigner` package is useful for development and testing. It's an easy way to get started with Tezos when you don't need to interact with a user's wallet. The `InMemorySigner` is suitable for testing and development. Should you be writing code for production that deals with real value tokens, we strongly recommend that you use a RemoteSigner that an HSM backs. +The `InMemorySigner` package is useful for development and testing. It's an easy way to get started with Tezos when you don't need to interact with a users wallet. The `InMemorySigner` is suitable for testing and development. Should you be writing code for production that deals with tokens of real value, it's strongly recommended that you use a RemoteSigner that is backed by a HSM. -This feature will import your private key in memory and sign operations using this key. +This will import your private key in memory and sign operations using this key. #### Importing a Private key @@ -80,7 +84,7 @@ Tezos.setProvider({ #### Importing a Faucet Key -"Faucet Keys" allows you to get Tezos tokens on the various Tezos "testnets." You can download a faucet key from https://faucet.tzalpha.net/ +"Faucet Keys" allow you to get Tezos tokens on the various Tezos "testnets". You can download a faucet key from https://faucet.tzalpha.net/ The key is a JSON file, which you can use with Taquito as follows: ```js @@ -126,7 +130,7 @@ importKey( ### Transfer -The transfer operation requires a configured signer. In this example, we will use a private key to fetch a key service implemented for demonstration purposes. You should only use this key service for testing and development purposes. +The transfer operation requires a configured signer. In this example we will use a private key that we fetch a key service, implemented for demonstration purposes. This key service should only be used for testing and development purposes. ```js live noInline const amount = 2; @@ -139,17 +143,17 @@ Tezos.contract println(`Waiting for ${op.hash} to be confirmed...`); return op.confirmation(1).then(() => op.hash); }) - .then((hash) => println(`Operation injected: https://florence.tzstats.com/${hash}`)) + .then((hash) => println(`Operation injected: https://carthagenet.tzstats.com/${hash}`)) .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); ``` ### Interact with a smart contract -Calling smart contract operations requires a configured signer; in this example we will use a faucet key. The Ligo source code for the smart contract [KT1EPdhCbAssTpehC5hvu9PJSDEmRCmR4v6x][smart_contract_on_better_call_dev] used in this example can be found in a [Ligo Web IDE][smart_contract_source]. +Calling smart contract operations requires a configured signer, in this example we will use a faucet key. The Ligo source code for this smart contract [KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC][smart_contract_on_better_call_dev] used in this example can be found in a [Ligo Web IDE][smart_contract_source]. ```js live noInline Tezos.contract - .at('KT1EPdhCbAssTpehC5hvu9PJSDEmRCmR4v6x') + .at('KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC') .then((contract) => { const i = 7; @@ -160,10 +164,10 @@ Tezos.contract println(`Waiting for ${op.hash} to be confirmed...`); return op.confirmation(1).then(() => op.hash); }) - .then((hash) => println(`Operation injected: https://florence.tzstats.com/${hash}`)) + .then((hash) => println(`Operation injected: https://carthagenet.tzstats.com/${hash}`)) .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); ``` [boilerplate]: https://github.com/ecadlabs/taquito-boilerplate [smart_contract_source]: https://ide.ligolang.org/p/CelcoaDRK5mLFDmr5rSWug -[smart_contract_on_better_call_dev]: https://better-call.dev/florencenet/KT1EPdhCbAssTpehC5hvu9PJSDEmRCmR4v6x/operations +[smart_contract_on_better_call_dev]: https://better-call.dev/carthage/KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC/operations diff --git a/docs/rpc_nodes.md b/docs/rpc_nodes.md index 1ab0220801..ecca7ba1ce 100644 --- a/docs/rpc_nodes.md +++ b/docs/rpc_nodes.md @@ -7,37 +7,43 @@ author: Roxane Letourneau - **Trust**: Choose a node that you can trust the people who operate it. - It should not alter your requests, for example, changing the operation data before forging it. - - It should not censor your operations; you want to know that your operations will reach the network. -- **Reliability**: Consider your requirements for uptime, and choose your node option accordingly. If node availability is critical for your user-case, consider self-hosting a node or contracting someone to operate a node specifically for you. -- ** End-points support**: Public nodes have different policies on the end-points that they expose. Your use case may require specific end-points to be available to your app. We have made a suite of [integration tests](rpc_nodes_integration_test.md) for the Taquito RPC package. These tests show what RPC end-points are available on a given node. These tests are available here: integration-tests/rpc-nodes.spec.ts. + - It should not censor your operations; you want to make sure that your transactions will be broadcasted to the network. +- **Disponibility**: You might want to choose a node with some mechanisms to guarantee reasonable uptime for your use cases. +- **Endpoints support**: Depending on your use cases, you want the required endpoints to be exposed by the node you chose. We wrote [integration tests](rpc_nodes_integration_test.md) to show what methods in the taquito RPC package, which maps to the RPC endpoints, work on which nodes of the following section. These tests can be found here: integration-tests/rpc-nodes.spec.ts. +- **Reliable**: You want a node that is in sync with the rest of the network, for example, you don't want a node that is always five blocks behind. +- **Maintenance/support**: You might want to choose a node that is kept to date and that you can contact the support team if you need assistance in case of trouble. + ## List of community-run nodes -*If you are aware of a public node missing from our list or our information is inaccurate, please help us by submitting an issue or pull request on our GitHub page.* +*If a public node is missing, or information is inaccurate, please help us by submitting a pull request on our GitHub page.* - Tezos Giga Node from Tezos Ukraine - Mainnet: https://mainnet-tezos.giganode.io - - Edo testnet: https://edonet-tezos.giganode.io + - Carthage testnet: https://testnet-tezos.giganode.io + - Delphinet testnet: https://delphinet-tezos.giganode.io + - Labnet testnet: https://labnet-tezos.giganode.io - SmartPy nodes - Mainnet: https://mainnet.smartpy.io - - Edonet: https://edonet.smartpy.io/ + - Zeronet: https://zeronet.smartpy.io + - Carthagenet: https://carthagenet.smartpy.io + - Delphinet: https://delphinet.smartpy.io + - Dalphanet: https://dalphanet.smartpy.io - Nodes operated by Blockscale on behalf of the Tezos Foundation: - Mainnet: https://rpc.tzbeta.net/ - - Next protocol/version testnet (Edonet): https://rpczero.tzbeta.net/ -- ECAD Labs nodes: + - Current protocol/version testnet (Carthagenet): https://rpctest.tzbeta.net/ + - Next protocol/version testnet (Delphinet): https://rpczero.tzbeta.net/ +- Ecad Labs nodes: - Mainnet: https://api.tez.ie/rpc/mainnet - - Edonet: https://api.tez.ie/rpc/edonet (edo2net / Chainid is `NetXSgo1ZT2DRUG`) - - Florencenet: https://api.tez.ie/rpc/florencenet -- Teznode from LetzBake!: - - Mainnet: https://teznode.letzbake.com + - Carthagenet: https://api.tez.ie/rpc/carthagenet + - Delphinet: https://api.tez.ie/rpc/delphinet ## How to run a node Running a node is a good way of contributing to Tezos by increasing the decentralization of the network. -There are many ways to set up a node. Here are some links providing general instructions: +There are many ways to set up a node, here are some links providing general instructions: - [Use docker images](https://tezos.gitlab.io/introduction/howtoget.html#docker-images) - [Build from sources](https://tezos.gitlab.io/introduction/howtoget.html#docker-images) -- [Use Ansible Role](https://github.com/ecadlabs/ansible-role-tezos-node/blob/master/README.md) - +- [Use Ansible Role](https://github.com/ecadlabs/ansible-role-tezos-node/blob/master/README.md) \ No newline at end of file diff --git a/docs/rpc_nodes_integration_test.md b/docs/rpc_nodes_integration_test.md index e8a696bbfd..1c82e00cd2 100644 --- a/docs/rpc_nodes_integration_test.md +++ b/docs/rpc_nodes_integration_test.md @@ -8,11 +8,11 @@ author: Roxane Letourneau 1. The RPC nodes' integration tests are disabled by default. Remove `./rpc-nodes.spec.ts` from `"testPathIgnorePatterns"` in the package.json. 2. In the integration test folder, run one of the following commands: - - **Edonet**: `npm run test:edonet rpc-nodes.spec.ts` - - **Florencenet**: `npm run test:florencenet rpc-nodes.spec.ts` + - **Carthagenet**: `npm run test:carthagenet rpc-nodes.spec.ts` + - **Delphinet**: `npm run test:delphinet rpc-nodes.spec.ts` - **Both protocols**: `npm run test rpc-nodes.spec.ts` -**When all endpoints are accessible for a node, you will obtain:** +**When all endpoints are accessible for a node, you will obtain :** ``` Test calling all methods from RPC node: https://a-node diff --git a/docs/rpc_package.md b/docs/rpc_package.md index 6cc630a1cb..e3af11ff09 100644 --- a/docs/rpc_package.md +++ b/docs/rpc_package.md @@ -7,7 +7,7 @@ Taquito RPC Package Documentation ## Description -You can use the RPC client package to query the RPC API of your chosen node. The higher-level [`@taquito/taquito`](https://tezostaquito.io/typedoc/modules/_taquito_rpc.html) package builds on this RPC package, in general, you won't need to use this package directly, but it is available for use should you want some specific data and bypass the higher-level abstractions in Taquito. +The RPC client package can be used to query the RPC API of your chosen node. The higher-level [`@taquito/taquito`](https://tezostaquito.io/typedoc/modules/_taquito_rpc.html) package builds on this RPC package, in general, you won't need to use this package directly, but it is available for use should you want some specific data and bypass the higher level abstractions in Taquito. Methods in the RPC package map one-to-one to the corresponding Tezos RPC API endpoints. All responses from the RPC are returns with TypeScript types. It doesn't do any other parsing or compositions at this level. @@ -18,7 +18,7 @@ Methods in the RPC package map one-to-one to the corresponding Tezos RPC API end import { RpcClient } from '@taquito/rpc'; -const client = new RpcClient('https://florencenet-tezos.giganode.io', 'NetXjD3HPJJjmcd'); +const client = new RpcClient('https://carthagenet.smartpy.io', 'NetXjD3HPJJjmcd'); ``` The `RpcClient` constructor takes the URL of the node you want to use and the chain ID. @@ -59,12 +59,12 @@ This method returns some blockchain constants pertaining for example to the gas ```js // gets contract -const contractExample = 'KT1JbALUVvUEJyC4Cqwrnryc7RPK7mKBkqMa'; +const contractExample = 'KT1PJnTttEsEFFaHeLnbKJmzwfxuVvEBkq1b'; const contract = await client.getContract(contractExample); console.log('-- Contract:', contract); ``` -This method returns the balance of the contract, the code, and the storage. +This method returns the balance of the contract, the code and the storage. ```js // gets contract entrypoints @@ -72,7 +72,7 @@ const entrypoints = await client.getEntrypoints(contractExample); console.log('-- Entrypoints:', entrypoints); ``` -You can also get a list of the contract entry points as an object whose keys are the entry point names and whose values are the expected parameters in JSON format. +You can also get a list of the contract entrypoints as an object whose keys are the entrypoint names and whose values are the expected parameters in JSON format. ```js // gets contract script @@ -80,7 +80,7 @@ const script = await client.getScript(contractExample); console.log('-- Contract script:', script); ``` -The `getScript` method returns the contract's script as a 3 key/value pair object: a key for the parameter, a key for the storage, and a key for the code. +The `getScript` method returns the script of the contract as a 3 key/value pair object: a key for the parameter, a key for the storage and a key for the code. ```js // gets contract storage diff --git a/docs/set_delegate.md b/docs/set_delegate.md index 255034d015..df15012686 100644 --- a/docs/set_delegate.md +++ b/docs/set_delegate.md @@ -1,22 +1,21 @@ --- -title: Delegation +title: Set delegate author: Simon Boissonneault-Robert --- +# Examples demonstrating delegation for various address type -# Examples demonstrating delegation for the various address types +In Tezos a delegation operation will set the delegate of an address. -In Tezos, a delegation operation will set the delegate of an address. - -When the `Babylon/proto005` protocol amendment came into effect, it changed how delegation from KT1 addresses work. Calling the KT1's smart contract `do` method is required to set the delegate for a KT1 account. The `do` method takes a lambda function, and it is the logic of this function that causes the desired delegation to happen. +When the `Babylon/proto005` protocol amendment came into affect, it changed how delegation from KT1 addresses work. In order to set delegate for a KT1 account, the delegation must be completed by calling the KT1's smart contract `do` method. The `do` method takes a lambda function, and it is the logic of this function that causes the desired delegation to happen. ## Delegate from an implicit tz1 address -This scenario is the simplest delegation scenario. +This is the simplest delegation scenario ```js // const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); -await Tezos.contract.setDelegate({ source: 'tz1_source', delegate: 'tz1_baker' }); +await Tezos.contract.setDelegate({ source: 'tz1_source', delegate: 'tz1_baker' }) ``` Register as a delegate @@ -24,30 +23,30 @@ Register as a delegate ```js // const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); -await Tezos.contract.registerDelegate({}); +await Tezos.contract.registerDelegate({}) ``` ## Delegation involving "originated" KT1 addresses -Pre-`Babylon/proto005`, it was common to have "script-less" KT1 addresses. This circumstance changed when the Tezos blockchain migrated to the new `Babylon/proto005` protocol. +Pre-`Babylon/proto005` it was common to have "script-less" KT1 addresses. This changed when the Tezos blockchain migrated to the new `Babylon/proto005` protocol. -During the migration from `proto004` to `proto005`, all KT1 addresses that migrated got a contract called [manager.tz](https://gitlab.com/nomadic-labs/mi-cho-coq/blob/master/src/contracts/manager.tz). As a result, there are no longer any "script-less" KT1 addresses in Tezos. +During the migration form `proto004` to `proto005` all KT1 addresses were migrated so that they got a contract called [manager.tz](https://gitlab.com/nomadic-labs/mi-cho-coq/blob/master/src/contracts/manager.tz). This meant that there are no longer any "script-less" KT1 addresses in Tezos. -A call to the KT1's smart contract's `do` method must be made to delegate to a KT1 address with the new `manager.tz` contract. The `do` method takes a lambda function, and it is this lambda function that causes changes to occur in the KT1 address. +In order to delegate for a KT1 addresses with the new `manager.tz` contract, a call to the KT1's smart contract's `do` method is required. The `do` method takes a lambda function, and it is this lambda function that causes changes to occur in the KT1 address. -> The examples following apply only to KT1 addresses that were migrated as part of the `Babylon/proto005` upgrade. Delegations involving _other_ types of smart-contracts will depend on those contracts specifically. +> The examples following only apply to KT1 addresses that were migrated as part of the `Babylon/proto005` upgrade. Delegations involving _other_ types of smart-contracts, will depend on those contracts specifically. > **Why doesn't Taquito abstract KT1 manager accounts so I can just call setDelegate()** -> -> For the time being, we regard KT1 manager accounts as a regular smart contract. It is possible to have a smart contract that is not following the manager.tz conventions, and that also delegates to a baker. The correct lambda to pass to a contract to delegate is application/wallet specific. Therefore Taquito does not make any assumption on the KT1. +> +> For the time being, we regard KT1 manager accounts as a regular smart contract. In fact, it is possible to have a smart contract that is not following the manager.tz conventions and that also delegates to a baker. The correct lambda to pass to a contract in order to delegate is application/wallet specific. Therefore Taquito does not make any assumption on the KT1. -### Example of delegation for a KT1 on Florence/Proto009 +### Example of delegation for a KT1 on Carthage/Proto006 ```js // const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); -const contract = await Tezos.contract.at('kt1...'); -await contract.methods.do(setDelegate('tz1_delegate')).send(); +const contract = await Tezos.contract.at("kt1...") +await contract.methods.do(setDelegate("tz1_delegate")).send() ``` Where `setDelegate` is a function that returns the necessary Michelson lambda. It looks like this: diff --git a/docs/signing.md b/docs/signing.md deleted file mode 100644 index 2355acfabd..0000000000 --- a/docs/signing.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Signing data -id: signing -author: Claude Barde ---- - -Signing arbitrary chunks of data is a common practice in a blockchain environment and is usually done to prove that a user has access to a certain account or that a message comes from a certain account. - -This practice is still new on Tezos and the use cases are rare. However, as the interactions between users and smart contracts increase, knowing how to sign data and send the signature to a smart contract can set you one step ahead in your knowledge of the Tezos blockchain. - -## Understanding what a signature is -A signature is a string generally based58 encoded for better readability that starts with **edsig**. It requires a signer to hash the input bytes and thus can only be done if the signer has access to the private key of the account. Therefore, it is impossible to forge a signature for an account of which you don't have access to the private key. Michelson implements an instruction called `CHECK_SIGNATURE` that allows it to retrieve the public key of the account that created the signature. - -## Generating a signature with the InMemorySigner -The `@taquito/signer` package exposes a quick and simple way to generate a signature. All you need to do is to create a new instance of the `InMemorySigner` and call the `sign` method on it: - -```js -import { InMemorySigner } from "@taquito/signer"; - -const signer = new InMemorySigner(YOUR_PRIVATE_KEY); -const bytes = STRING_OF_BYTES; -const signature = signer.sign(bytes); -``` - -The `signer` method returns the following object: - -```js -{ - bytes: "The input bytes", - sig: "The 'sig' prefixed signature", - prefixSig: "The 'edsig' prefixed signature", - sbytes: "The raw bytes of the signature" } -} -``` - -## Generating a signature with Beacon SDK -You can also sign a string of bytes with a wallet. Unlike the `InMemorySigner`, the wallets require a certain format for the bytes that need to be signed. Here is how the string must be formatted: - -```js -const formattedInput: string = - [ - "Tezos Signed Message:", - dappUrl, - ISO8601formatedTimestamp, - input - ] - .join(" "); -``` - -After formatting the string properly, you can convert it into bytes, for examples with the `char2Bytes` function of the `@taquito/utils` package: - -```js -import { char2Bytes } from "@taquito/utils"; - -const bytes = "05" + char2Bytes(formattedInput); -``` -> Note: the bytes must be a Micheline expression and must then be prefixed with `05` - -Once you have your bytes, you can send them to the wallet to have them signed: - -```typescript -import { RequestSignPayloadInput, SigningType } from "@airgap/beacon-sdk"; - -const payload: RequestSignPayloadInput = { - signingType: SigningType.MICHELINE, - payload: bytes, - sourceAddress: userAddress - }; -const signedPayload = await wallet.client.requestSignPayload(payload); -const { signature } = signedPayload; -``` - -The Beacon SDK exposes the `RequestSignPayloadInput` type and the `SigningType` enum that we can use to make sure our data is typed properly. The payload to sign must be an object and only requires the `payload` property to be set, the `signingType` and `sourceAddress` properties are optional but it is better to use them, above all the `signingType` one to verify we are passing a Micheline expression. - -You can then use the `requestSignPayload` method of the `client` available on the `wallet` instance to sign the data. - -The wallet will return an object with a `signature` property that holds our signature. - -Here is the full code to sign data with a wallet: - -```ts -import { char2Bytes } from "@taquito/utils"; -import { RequestSignPayloadInput, SigningType } from "@airgap/beacon-sdk"; - -// The data to format -const dappUrl = "tezos-test-d.app"; -const ISO8601formatedTimestamp = new Date().toISOString(); -const input = "Hello world!"; - -// The full string -const formattedInput: string = - [ - "Tezos Signed Message:", - dappUrl, - ISO8601formatedTimestamp, - input - ] - .join(" "); - -// The bytes to sign -const bytes = "05" + char2Bytes(formattedInput); - -// The payload to send to the wallet -const payload: RequestSignPayloadInput = { - signingType: SigningType.MICHELINE, - payload: bytes, - sourceAddress: userAddress - }; - -// The signing -const signedPayload = await wallet.client.requestSignPayload(payload); - -// The signature -const { signature } = signedPayload; -``` - -## Sending the signature to a smart contract -After forging a signature, you may want to send it to a contract so it can use it within its own logic. Let's imagine you have a contract with an entrypoint that accepts a public key, a signature and bytes called `%check_signature`. Here is how to send it to the contract using Taquito: - -```js -const contract = await Tezos.wallet.at(CONTRACT_ADDRESS); -const op = - await contract - .methods - .check_signature(public_key, signature, bytes) - .send(); -await op.confirmation(); -``` - -In the contract, we can use the `CHECK_SIGNATURE` instruction to compare the signature and the bytes and verify the bytes have been signed by the provided public key. - -## A few things to keep in mind -The signing functionality has been implemented recently by the web wallets on Tezos and it's still very little used because it presents a major security concern. - -A fraudulent dapp could convince less tech-savvy users to sign arbitrary data and hide it as another type of operation before sending the signature to a smart contract. If the signature is used by the contract to allow the signer to perform certain actions, this would allow the fraudulent dapp to pose as the signer, which could be disastrous for the user. - -A signature can also be used in a replay attack when a dapp uses the same signature multiple times to gain access to a contract functionality. A signature should be used one single time and destroyed and a smart contract should implement a verification process to ensure the signature hasn't been used already. - -*April 2021 - Taquito version 8.1.0* \ No newline at end of file diff --git a/docs/smartcontracts.md b/docs/smartcontracts.md index 3a18211c8f..4182a609dc 100644 --- a/docs/smartcontracts.md +++ b/docs/smartcontracts.md @@ -1,25 +1,25 @@ --- -title: Smart contract interaction +title: Working with Smart Contracts author: Jev Bjorsell --- -Taquito allows developers to interact with Smart Contracts as if they are "Plain Old Javascript Objects." +Taquito allows developers to interact with Smart Contracts as if they are "Plain Old Javascript Objects". The "Machine Language" of Tezos Smart Contracts is named [Michelson][3]. Michelson is a stack-based language that is human-readable. It's possible to author Smart-Contracts directly in Michelson. However, developers can use High-Level Languages (such as [Ligo][0] or [SmartPy][1]) to write smart contracts. Taquito makes developing applications (dApps or traditional programs) around a Tezos Smart Contract easy. Taquito can also "originate" (create) a new Smart Contract to the Tezos Blockchain. -Michelson is a somewhat specialized language that isn't typical in Javascript or Typescript development contexts. Taquito helps to bridge the gap between the Tezos blockchain and a standard Javascript or Typescript development environment. +Michelson is a somewhat specialized language that isn't typical in Javascript or Typescript development contexts. Taquito helps to bridge the gap between the Tezos blockchain and a typical Javascript or Typescript development environment. ## Taquito's Smart Contract Abstraction -Taquito assists developers by reading the Michelson code for a given contract from the blockchain. Based on the retrieved Michelson code, Taquito generates a `contract` javascript object with methods and storage that correspond to the contract's Michelson entry points, storage definitions, and values. +Taquito assists developers by reading the Michelson code for a given contract from the blockchain. Based on the retrieved Michelson code, Taquito generates a `contract` javascript object with methods and storage that correspond to the contract's Michelson entrypoints, storage definitions and values. ## The Counter Contract In this guide, we use a straightforward "counter" smart contract to illustrate how Taquito works. -The counter contract has two entry points named `increment` and `decrement.` Taquito uses these entrypoints to generate corresponding javascript methods available to the developer. +The counter contract has two entrypoints named `increment` and `decrement`. These entrypoints are used by Taquito to generate corresponding javascript methods that are available to the developer. The counter contracts storage is a simple integer that gets increased or decreased based on the calls to the entrypoints. @@ -89,68 +89,67 @@ You can view this contract and deploy it to a testnet using the [Ligo WebIDE][2] To load the contract from the Tezos Blockchain, we use the `Tezos.contract.at` method. We can inspect the contract methods and data types using the `c.parameterSchema.ExtractSignatures()` method. -The following example shows how to load the contract and view the methods on that contract. +The following example shows how to load the contract, and view the methods on that contract. ```js live noInline -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); Tezos.contract - .at('KT1EPdhCbAssTpehC5hvu9PJSDEmRCmR4v6x') - .then((c) => { + .at('KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC') + .then(c => { let methods = c.parameterSchema.ExtractSignatures(); println(JSON.stringify(methods, null, 2)); }) - .catch((error) => console.log(`Error: ${error}`)); + .catch(error => console.log(`Error: ${error}`)); ``` -The `at()` method causes Taquito to query a Tezos nodes RPC API for the contracts "script" and "entrypoints." From these two inputs, Taquito builds an ordinary JavaScript object with methods that correspond to the Smart Contracts entrypoints. +The `at()` method causes Taquito to query a Tezos nodes RPC API for the contracts "script" and "entrypoints". From these two inputs, Taquito builds an ordinary JavaScript object with methods that correspond to the Smart Contracts entrypoints. The `at` method returns a representation of the contract as a plain old javascript object. Taquito dynamically creates an `increment` and `decrement` method that the developer can call as follows: - `contract.methods.increment()` - `contract.methods.decrement()` -In Tezos, to call an entrypoint on a contract, one must send a transfer operation. In the counter contract case, the transfer value can be `0` as the contract does not expect to receive any tokens. The transfer must have the appropriate Michelson values specified as "params" to call the `increment` entrypoint. +In Tezos, to call an entrypoint on a contract, one must send a transfer operation. In the case of the counter contract, the transfer value can be `0` as the contract does not expect to receive any tokens. To call the `increment` entrypoint, the transfer must have the appropriate Michelson values specified as "params". -We can inspect the transfer params produced by Taquito using the `toTransferParams()` method: +We can inspect the transfer params produced by Taquito using the `toTransferParams()` method as follows. ```js live noInline -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); Tezos.contract - .at('KT1EPdhCbAssTpehC5hvu9PJSDEmRCmR4v6x') - .then((c) => { + .at('KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC') + .then(c => { let incrementParams = c.methods.increment(2).toTransferParams(); println(JSON.stringify(incrementParams, null, 2)); }) - .catch((error) => console.log(`Error: ${error}`)); + .catch(error => console.log(`Error: ${error}`)); ``` ## Calling the Increment function -In the next example, we call the `send()` method. This example requires a different ceremony for getting a temporary key for signing. +In the next example, we call the `send()` method. This example requires an additional ceremony for getting a temporary key for signing. -We call the `send()` method on the `increment()` method. Taquito then forges this operation into a transfer operation (with a transfer value of zero), signs the operation with our testing key, and injects or broadcasts the operation to the Tezos RPC node. +We call the `send()` method on the `increment()` method. Taquito then forges this operation into a transfer operation (with a transfer value of zero), signs the operation with our testing key, and injects or broadcast the operation to the Tezos RPC node. -Then we wait for the confirmation(3)` to complete. The `3` number tells Taquito how many confirmations to wait for before resolving the promise. `3` is a good value for this type of demonstration, but we recommend a higher value if you are dealing with mainnet transactions. +Then we wait for the `confirmation(3)` to complete. The `3` number tells Taquito how many confirmations to wait for before resolving the promise. `3` is a good value for this type of demonstration, but we recommend a higher value if you are dealing with mainnet transactions. ```js live noInline -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); -Tezos.contract - .at('KT1EPdhCbAssTpehC5hvu9PJSDEmRCmR4v6x') - .then((contract) => { +Tezos.contract.at('KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC') + .then(contract => { const i = 7; println(`Incrementing storage value by ${i}...`); return contract.methods.increment(i).send(); }) - .then((op) => { + .then(op => { println(`Awaiting for ${op.hash} to be confirmed...`); return op.confirmation(3).then(() => op.hash); }) - .then((hash) => println(`Operation injected: https://florence.tzstats.com/${hash}`)) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); + .then(hash => println(`Operation injected: https://carthagenet.tzstats.com/${hash}`)) + .catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); ``` [0]: https://ligolang.org/ diff --git a/docs/storage_annotations.md b/docs/storage_annotations.md index 587ff72932..0782c019c8 100644 --- a/docs/storage_annotations.md +++ b/docs/storage_annotations.md @@ -4,10 +4,9 @@ author: Roxane Letourneau --- This section shows how to write storage when : - - it has annotations - it has no annotation -- it has a mix of annotated and not-annotated properties +- it has a mix of properties which are annotated and others which are not To do so, let's look at three examples of contract origination showing initial values in the storage. @@ -16,75 +15,67 @@ To do so, let's look at three examples of contract origination showing initial v ``` //storage representation in Michelson -(pair - (pair - (pair (address %theAddress) (bool %theBool)) +(pair + (pair + (pair (address %theAddress) (bool %theBool)) (pair (nat %theNat) (int %theNumber))) - (mutez %theTez)) + (mutez %theTez)) ``` We need to write the storage as a Javascript object and include the annotated names in it. ```js live noInline -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -Tezos.contract - .originate({ - code: contractStorageAnnot, - storage: { - theAddress: 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', - theBool: true, - theNat: '3', - theNumber: '5', - theTez: '10', - }, - }) - .then((originationOp) => { - println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); - return originationOp.contract(); - }) - .then(() => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + +Tezos.contract.originate({ + code: contractStorageAnnot, + storage: { + theAddress : 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', + theBool: true, + theNat : '3', + theNumber: '5', + theTez : '10' + } +}) +.then (originationOp => { + println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); + return originationOp.contract() +}) +.then (() => {println(`Origination completed.`)}) +.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); ``` - ### When there is no annotation ``` //storage representation in Michelson -(pair - (pair - (pair (address) (bool)) +(pair + (pair + (pair (address) (bool)) (pair (nat) (int))) - (mutez)) + (mutez)) ``` - All properties in storage are accessible by the index corresponding to the order that the storage is defined. ```js live noInline -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -Tezos.contract - .originate({ - code: contractStorageWithoutAnnot, - storage: { - 0: 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', //address - 1: true, //bool - 2: '3', //nat - 3: '5', //int - 4: '10', //mutez - }, - }) - .then((originationOp) => { - println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); - return originationOp.contract(); - }) - .then(() => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + +Tezos.contract.originate({ + code: contractStorageWithoutAnnot, + storage: { + 0 : 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', //address + 1: true, //bool + 2 : '3', //nat + 3: '5', //int + 4 : '10' //mutez + } +}) +.then (originationOp => { + println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); + return originationOp.contract() +}) +.then (() => {println(`Origination completed.`)}) +.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); ``` ### When some arguments are annotated and others are not @@ -92,9 +83,9 @@ Tezos.contract ``` //storage representation in Michelson -(pair - (pair - (pair (address) (bool)) +(pair + (pair + (pair (address) (bool)) (pair (nat %theNat) (int %theNumber))) (mutez)) ``` @@ -104,25 +95,22 @@ In the following example, only the elements in positions 2 and 3 have an annotat Note that when proprieties have annotations, we cannot access them by index. For example, if you replace "theNat" by 2 and "theNumber" by 3 in this code example, it will fail. ```js live noInline -// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - -Tezos.contract - .originate({ - code: contractStorageWithAndWithoutAnnot, - storage: { - 0: 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', //address - 1: true, //bool - theNat: '3', - theNumber: '5', - 4: '10', //mutez - }, - }) - .then((originationOp) => { - println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); - return originationOp.contract(); - }) - .then(() => { - println(`Origination completed.`); - }) - .catch((error) => println(`Error: ${JSON.stringify(error, null, 2)}`)); +// const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + +Tezos.contract.originate({ + code: contractStorageWithAndWithoutAnnot, + storage: { + 0 : 'tz1PgQt52JMirBUhhkq1eanX8hVd1Fsg71Lr', //address + 1: true, //bool + theNat : '3', + theNumber: '5', + 4 : '10' //mutez + } +}) +.then (originationOp => { + println(`Waiting for confirmation of origination for ${originationOp.contractAddress}...`); + return originationOp.contract() +}) +.then (() => {println(`Origination completed.`)}) +.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); ``` diff --git a/docs/tickets.md b/docs/tickets.md deleted file mode 100644 index d83e059e6f..0000000000 --- a/docs/tickets.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Tickets -id: tickets -author: Claude Barde ---- - -## Using tickets with Taquito - -### What is a ticket? - -Tickets are a new feature introduced to the Tezos blockchain with the Edo upgrade. Tickets are fungible tokens represented by 3 values: -- The address of the contract that created the ticket -- A value of a comparable type -- An amount of type `nat` - -Tickets open a wide range of permission use cases where they can be used to allow access to certain functionalities of a smart contract to one or multiple users. The goal of tickets explains 2 of their main characteristics: they can only be created on-chain and they cannot be duplicated. - -In this regard, the only interaction available to Taquito with tickets is reading them. This can be particularly useful to inform users if they have access to the functionality of a contract before they send a transaction to a forbidden entrypoint. - -### How to read a ticket with Taquito? - -Although tickets can be stored in any part of the storage of a contract, it is more common to see them in complex types like a pair or a map/big map. Taquito treats tickets like any other value fetched from a contract and they are available in JavaScript/TypeScript as an object with 3 properties: -`{ ticketer: string; value: any; amount: BigNumber }` - -- The `ticketer` property is a string representing the address of the contract that issued the ticket. As tickets can only be joined if they have the same ticketer and value, this is the guarantee that the ticket hasn't been tampered with. - -- The `value` property holds a value of a comparable type. It is of type `any` in Taquito as the value can be of different TypeScript types according to its Michelson type. - -- The `amount` property is a non-negative `BigNumber` in Taquito and it's the only property of a ticket likely to change after the ticket creation. - -### Examples of values returned when reading a ticket with Taquito - -|| Ticket in Michelson | Ticket with Taquito | -|----------------|---------------------|---------------------| -| Value type:<br />int | (pair address (pair int nat))<br />(Pair **"KT1ABC..."** (Pair **123** **5**))| { ticketer: **"KT1ABC..."**,<br /> value: **BigNumber(123)**,<br /> amount: **BigNumber(5)** }| -| Value type:<br />string | (pair address (pair string nat))<br />(Pair **"KT1ABC..."** (Pair **"Taquito"** **5**))| { ticketer: **"KT1ABC..."**,<br /> value: **"Taquito"**,<br /> amount: **BigNumber(5)** }| -| Value type:<br />bool | (pair address (pair bool nat))<br />(Pair **"KT1ABC..."** (Pair **True** **5**))| { ticketer: **"KT1ABC..."**,<br /> value: **true**,<br /> amount: **BigNumber(5)** }| -| Value type:<br />bytes | (pair address (pair bytes nat))<br />(Pair **"KT1ABC..."** (Pair **"0xCAFE"** **5**))| { ticketer: **"KT1ABC..."**,<br /> value: **"CAFE"**,<br /> amount: **BigNumber(5)** }| -| Value type:<br /> option | (pair address (pair (option string) nat))<br />(Pair **"KT1ABC..."** (Pair **(Some "Tezos")** **5**))| { ticketer: **"KT1ABC..."**,<br /> value: **"Tezos"**,<br /> amount: **BigNumber(5)** }| -| Value type:<br /> option | (pair address (pair (option string) nat))<br />(Pair **"KT1ABC..."** (Pair **None** **5**))| { ticketer: **"KT1ABC..."**,<br /> value: **null**,<br /> amount: **BigNumber(5)** }| -| Value type: <br />pair int string | (pair address (pair (pair int string) nat))<br />(Pair **"KT1ABC..."** (Pair **(Pair 7 "Tacos")** **5**))| { ticketer: **"KT1ABC..."**,<br /> value: **{ 0: BigNumber(7), 1: "Tacos" }**,<br /> amount: **BigNumber(5)** }| diff --git a/docs/tutorial_links.md b/docs/tutorial_links.md deleted file mode 100644 index 1f719cda00..0000000000 --- a/docs/tutorial_links.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Tutorial Links -id: tutorial_links -author: Claude Barde ---- - -Below is a list of different tutorials about Taquito written on various platforms. These tutorials explain core concepts of Taquito and how to implement them and use them in a Tezos dapp. - -- **[Build your first dapp on Tezos](https://medium.com/better-programming/build-your-first-dapp-on-tezos-270c568d4fe9)** - A guide to build a simple React dapp on Tezos with wallet support using Taquito -- **[Build a Tezos dapp with Taquito and the Beacon SDK](https://medium.com/coinmonks/build-a-tezos-dapp-using-taquito-and-the-beacon-sdk-692d7dc822aa)** - A guide to use Taquito and the Beacon SDK to connect to the Beacon extension and emit transactions -- **[Taquito Workshop](https://www.youtube.com/watch?v=qYk_17YbPa4&feature=emb_logo&ab_channel=CoinList)** - This video is part of the CoinList Hackathon of May 2020 and presents an overview of Taquito, along with how to use Taquito with React to build a voting dapp -- **[Working with FA1.2 using LIGO and Taquito](https://assets.tqtezos.com/docs/token-contracts/fa12/2-fa12-ligo/)** - This article explains how to deploy an FA1.2 contract and use Taquito to interact with it -- **[Protofire tutorial](https://medium.com/protofire-blog/tezos-part-4-how-to-integrate-javascript-with-smart-contracts-and-run-unit-tests-c36756149e9d)** - A guide to using Taquito to write unit tests that deploy a contract and interact with it -- **[Nomadic Labs Training](https://gitlab.com/nomadic-labs/training.nomadic-labs.com/-/blob/master/content/download/taquito.pdf)** - A simple introduction to the main features of Taquito -- **[A delicious TypeScript library for the Tezos blockchain](https://medium.com/tezoscommons/a-delicious-new-typescript-library-for-the-tezos-blockchain-a8fcf776b037)** - Taquito official introductory article on Medium -- **[Basic dapp concepts using Taquito](https://hackmd.io/@kinokasai/Sy1v-vtmL)** - A guide to dapps on Tezos with a smart contract in Ligo and a web interface using Taquito -- **[SmartPy lecture about Taquito](https://training.blockmatics.io/courses/tezos-smartpy-developer-course/lectures/13126359)** - Introduction to Taquito within SmartPy dapp developer course - -If you want to add a link to this page, please do not hesitate to [open an issue](https://github.com/ecadlabs/taquito/issues) with the missing resource. diff --git a/docs/tzip12.md b/docs/tzip12.md deleted file mode 100644 index d2484c008e..0000000000 --- a/docs/tzip12.md +++ /dev/null @@ -1,195 +0,0 @@ ---- -title: TZIP-12 Token Metadata -author: Roxane Letourneau ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -The `@taquito/tzip12` package allows retrieving metadata associated with tokens of FA2 contract. You can find more information about the TZIP-12 standard [here](https://gitlab.com/tzip/tzip/-/blob/master/proposals/tzip-12/tzip-12.md). - -## How to use the tzip12 package - -The package can act as an extension to the well-known Taquito contract abstraction. - -1. **We first need to create an instance of `Tzip12Module` and add it as an extension to our `TezosToolkit`** - -The constructor of the `Tzip12Module` takes an optional `MetadataProvider` as a parameter. When none is passed, the default `MetadataProvider` of Taquito is instantiated, and the default handlers (`HttpHandler,` `IpfsHandler,` and `TezosStorageHandler`) are used. - -```js -import { TezosToolkit } from '@taquito/taquito'; -import { Tzip12Module } from '@taquito/tzip12'; - -const Tezos = new TezosToolkit('rpcUrl'); -Tezos.addExtension(new Tzip12Module()); - -``` - -*Note that the `Tzip16Module` and `Tzip12Module` use the same `MetadataProvider`. If you have already set `Tezos.addExtension(new Tzip16Module());`, you can omit this step.* - -2. **Use the `tzip12` function to extend a contract abstraction** - -```js -const contract = await Tezos.contract.at("contractAddress", tzip12) -``` - -**The compose function** -The contract abstraction can also be extended to a `Tzip12ContractAbstraction` and a `Tzip16ContractAbstraction` (at the same time) by using the `compose` function. -Thus, all methods of the `ContractAbstraction`, `Tzip12ContractAbstraction` and `Tzip16ContractAbstraction` classes will be available on the contract abstraction instance. - -```js -import { compose } from '@taquito/taquito'; - -const contract = await Tezos.contract.at('contractAddress', compose(tzip16, tzip12)); - -await contract.storage(); // ContractAbstraction method -await contract.tzip12().getTokenMetadata(1); // Tzip12ContractAbstraction method -await contract.tzip16().getMetadata(); // Tzip16ContractAbstraction method -``` - -## Get the token metadata - -There are two scenarios to obtain the metadata of a token: -1. They can be obtained from executing an off-chain view named `token_metadata` present in the contract metadata -2. or from a big map named `token_metadata` in the contract storage. - -The `getTokenMetadata` method of the `Tzip12ContractAbstraction` class will find the token metadata with precedence for the off-chain view, if there is one, as specified in the standard. - -The `getTokenMetadata` method returns an object matching this interface : -``` -interface TokenMetadata { - token_id: number, - decimals: number - name?: string, - symbol?: string, -} -``` - -:::note -If additional metadata values are provided for a token_id, they will also be returned. -::: - -Here is a flowchart that summarizes the logic perform internally when calling the `getTokenMetadata` method: - - - -**Note: If there is a URI in the token_info map and other keys/values in the map, all properties will be returned (properties fetched from the URI and properties found in the map). If the same key is found at the URI location and in the map token_info and that their value is different, precedence is accorded to the value from the URI.* - -### Example where the token metadata are obtained from an off-chain view `token_metadata` - -```js live noInline -// import { TezosToolkit, compose } from '@taquito/taquito'; -// import { Tzip12Module, tzip12 } from "@taquito/tzip12"; -// import { tzip16 } from "@taquito/tzip16"; -// const Tezos = new TezosToolkit('rpc_url'); - -Tezos.addExtension(new Tzip12Module()); - -const contractAddress = "KT1SZiCZaED89zBRH2fYTYUa93gwEjVKoC5n"; -const tokenId = 1; - -Tezos.contract.at(contractAddress, compose(tzip12, tzip16)) -.then(contract => { - println(`Fetching the token metadata for the token ID ${tokenId}...`); - return contract.tzip12().getTokenMetadata(tokenId); -}) -.then (tokenMetadata => { - println(JSON.stringify(tokenMetadata, null, 2)); -}) -.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -The same result can also be obtained by calling the off-chain view `token_metadata` using the `taquito-tzip16` package: - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// import { Tzip16Module, tzip16, bytes2Char } from "@taquito/tzip16"; -// const Tezos = new TezosToolkit('rpc_url'); - -Tezos.addExtension(new Tzip16Module()); - -const contractAddress = "KT1SZiCZaED89zBRH2fYTYUa93gwEjVKoC5n"; -const tokenId = 1; - -Tezos.contract.at(contractAddress, tzip16) -.then(contract => { - println(`Initialising the views for ${contractAddress}...`); - return contract.tzip16().metadataViews(); -}) -.then (views => { - return views['token_metadata']().executeView(tokenId) -}).then (result => { - println('Result of the view token_metadata:'); - println(`name: ${bytes2Char((Object.values(result)[1]).get('name'))}`); - println(`decimals: ${bytes2Char((Object.values(result)[1]).get('decimals'))}`); - println(`symbol: ${bytes2Char((Object.values(result)[1]).get('symbol'))}`); - println(`extra: ${bytes2Char((Object.values(result)[1]).get('extra'))}`); -}) -.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -*Note that an off-chain view `all-tokens` should also be present in the contract metadata allowing the user to know with which token ID the `token_metadata` can be called.* -### Example where the token metadata are found in the big map `%token_metadata` - -:::note -To be [Tzip-012 compliant](https://gitlab.com/tzip/tzip/-/blob/master/proposals/tzip-12/tzip-12.md#token-metadata-storage-access), the type of the big map `%token_metadata` in the storage of the contract should match the following type: - - -<Tabs - defaultValue="michelson" - values={[ - {label: 'Michelson', value: 'michelson'}, - {label: 'JSON Michelson', value: 'jsonMichelson'} - ]}> - <TabItem value="michelson"> - - -``` -(big_map %token_metadata nat - (pair (nat %token_id) - (map %token_info string bytes))) -``` - - </TabItem> - <TabItem value="jsonMichelson"> - -``` -prim: 'big_map', - args: [ - { prim: 'nat' }, - { prim: 'pair', args: [ - { prim: 'nat' , annots: ['%token_id']}, - { prim: "map", args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%token_info'] }] }], - annots: ['%token_metadata'] -``` - - </TabItem> -</Tabs> - -Otherwise, the token metadata won't be found by the `getTokenMetadata` method, and a `TokenMetadataNotFound` error will be thrown. -::: - -```js live noInline -// import { TezosToolkit } from '@taquito/taquito'; -// import { Tzip12Module, tzip12 } from "@taquito/tzip12"; -// const Tezos = new TezosToolkit('rpc_url'); - -Tezos.addExtension(new Tzip12Module()); - -const contractAddress = "KT1NMRStqeWmxk8yQotMecacrHYsQKMdZQss"; -const tokenId = 1; - -Tezos.contract.at(contractAddress, tzip12) -.then(contract => { - println(`Fetching the token metadata for the token ID ${tokenId} of ${contractAddress}...`); - return contract.tzip12().getTokenMetadata(tokenId); -}) -.then (tokenMetadata => { - println(JSON.stringify(tokenMetadata, null, 2)); -}) -.catch(error => println(`Error: ${JSON.stringify(error, null, 2)}`)); -``` - -#### For more information on the contracts used in the examples: - -integration-tests/tzip12-token-metadata.spec.ts diff --git a/docs/tzip16-sequence-diagram.md b/docs/tzip16-sequence-diagram.md deleted file mode 100644 index c888a7ef30..0000000000 --- a/docs/tzip16-sequence-diagram.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: TZIP-16 Sequence diagrams -author: Roxane Letourneau ---- - -### Get the metadata - - -### Execute a view - diff --git a/docs/upgrading_guide.md b/docs/v7_breaking_changes.md similarity index 51% rename from docs/upgrading_guide.md rename to docs/v7_breaking_changes.md index f93d439419..0f52e243ae 100644 --- a/docs/upgrading_guide.md +++ b/docs/v7_breaking_changes.md @@ -1,61 +1,36 @@ --- -title: Upgrading Guide +title: Upgrading to v7/delphi author: Roxane Letourneau --- -# Upgrading to version 9 - -Please take note of the two following breaking changes: -- Breaking change introduced for the method `getMultipleValues` of the `BigMapAbstraction` class and the method `getBigMapKeysByID` of the `RpcContractProvider` class: they now return a MichelsonMap instead of an object. This is meant to support keys of type object that are encountered when the Michelson type of the big map key is a `pair`. - -- To give more flexibility to the user on the retry strategy used in the `ObservableSubscription` class, we removed the parameters `observableSubscriptionRetryDelay` and `observableSubscriptionRetries` introduced in version `8.1.1-beta` and replaced them to accept an `OperatorFunction`. When users configure the `ObservableSubscription` to retry on error, we use the `retry` operators from `rxjs` by default. An example showing how to set a custom retry strategy is available [here](https://github.com/ecadlabs/taquito/blob/master/example/example-streamer-custom-retry-logic.ts). - - -# Upgrading to version 8 - -## Breaking change - Typescript upgrade - -We decided to update the Typescript version that we are using to take advantage of the newer features it brings in our Michel-Codec package. - -You might get the following error if a Typescript upgrade is needed in your project: -``` -Error: node_modules/@taquito/michel-codec/dist/types/michelson-types.d.ts:122:34 - error TS1110: Type expected. -export declare type ProtocolID = `${Protocol}`; -``` - -# Upgrading to version 7 - -:::note Breaking changes -With this major number update to support the `delphi` Tezos protocol, we have also implemented some breaking changes to the Taquito API. The following sections explains how to update your projects. +:::warning Breaking changes +With this major number update to support the `delphi` Tezos protocol, we have also implemented some breaking changes to the Taquito API. This document explains how to update your projects. ::: -The following sections explain each breaking change, including: - +This page explains each breaking change, including: - the reasons that motivated it, -- code examples that demonstrate how to update your code (how it was in prior versions versus how it needs to be using v7), and +- code examples that explain how to update your code (how it was in prior versions versus how it needs to be using v7), and - potential errors you might get when updating to v7 without making the fixes. ## Removed the default RPC Node URL -Before version 7, Taquito shipped with a default RPC node URL. We have removed the default URL, forcing developers to specify the RPC node they wish to use. See [RPC Nodes](rpc_nodes.md) for a list of public and private nodes options. +Prior version 7, Taquito shipped with a default RPC node URL. We have removed the default URL, forcing developers to specify the RPC node they wish to use. See [RPC Nodes](rpc_nodes.md) for a list of public and private nodes options. -The previous default was set in the constructor of the `RpcClient` class. We took this approach so that users can get started quickly, and Taquito should "just work" with minimal fiddling. Users could import a ready-to-use Tezos singleton, an instance of the `TezosToolkit` class using the default RPC URL. +The previous default was set in the constructor of the `RpcClient` class. We took this approach so that users can get started quickly, and Taquito should "just work" with minimal fiddling. Users could import a ready-to-use `Tezos` singleton, an instance of the `TezosToolkit` class using the default RPC URL. -However, in version 7 of Taquito, we decided to remove the default RPC node URL. The reason behind this choice is to encourage developers to make their own informed choice on which Tezos RPC node (public or private) is best for them. This change also helps avoid dApps using Taquito from centralizing on one public RPC node. Decentralization is an essential part of Tezos, including the node infrastructure level. +However, in version 7 of Taquito, we decided to remove the default RPC node URL. The reason behind this choice is to encourage developers to make their own informed choice on which Tezos RPC node (public or private) is best for them. This change also helps avoid dApps using Taquito from centralizing on one public RPC node. Decentralization is an important part of Tezos, including the node infrastructure level. This change impacts the following classes, where it is now required to specify an RPC node in their constructor: - - `RpcClient` -- `Context` -- `TezosToolkit` +- `Context` +- `TezosToolkit` -When creating an instance of the `TezosToolkit`, one must specify the RPC node. It can be a `string` or a [`RpcClient`](rpc_package.md) object. A list of community-run nodes can be accessed [here](rpc_nodes.md#list-of-community-run-nodes). **The `Tezos` singleton, a ready-to-use instance of the `TezosToolkit` class, is no longer supported.** +When creating an instance of the `TezosToolkit`, one must specify the RPC node. It can be a `string` or a [`RpcClient`](rpc_package.md) object. A list of community-run nodes can be accessed [here](rpc_nodes.md#list-of-community-run-nodes). **The `Tezos` singleton, which was a ready-to-use instance of the `TezosToolkit` class, is no longer supported.** ### Change required in your code: **Before version 7:** - -```js +``` js import { TezosToolkit } from '@taquito/taquito'; const tezos = new TezosToolkit(); // or @@ -64,24 +39,22 @@ import { Tezos } from '@taquito/taquito'; ``` **Since version 7:** - -```js +``` js import { TezosToolkit } from '@taquito/taquito'; const tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL_NOW_REQUIRED'); // or // Those who were using the Tezos singleton may consider naming the variable like the singleton to avoid renaming it everywhere in their code: const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL_NOW_REQUIRED'); ``` - ### Example Errors if you were using the Tezos singleton -Here is an example of the compilation error you would get when updating Taquito to version 7, if you do not replace the Tezos singleton with an instance of the TezosToolkit: +Here is an example of the compilation error you would get when updating Taquito to version 7, if you do not replace the Tezos singleton by an instance of the TezosToolkit: -`Module '"../../node_modules/@taquito/taquito/dist/types/taquito"' has no exported member 'Tezos'.` +`Module '"../../node_modules/@taquito/taquito/dist/types/taquito"' has no exported member 'Tezos'.` ### Example Errors when the URL is not set: -Here are examples of the compilation error you would get when updating Taquito to version 7, if the RPC URL is not specified: +Here are examples of the compilation error you would get when updating Taquito to version 7, if the RPC URL is not specified: `An argument for '_rpc' was not provided. Expected 1-2 arguments, but got 0.` @@ -91,28 +64,26 @@ Here are examples of the compilation error you would get when updating Taquito t Version 7 of Taquito introduces a breaking change for implementations that use the `main` method for calling the default entrypoint of a contract. -Before version 7, there was a synthetic method called `main` in Taquito to interact with the default entrypoint. The `main` name was confusing because it referred to the [default](http://tezos.gitlab.io/whitedoc/michelson.html#the-default-entrypoint) entrypoint in Michelson. +Before version 7, there was a synthetic method called `main` in Taquito to interact with the default entrypoint of a contract. The `main` name was confusing because it referred to the [default](http://tezos.gitlab.io/whitedoc/michelson.html#the-default-entrypoint) entrypoint in Michelson. -In version 7, this synthetic entrypoint name has been renamed from `main` to `default.` +In version 7, this synthetic entrypoint name has been renamed from `main` to `default`. ### Changes required in your code: This change applies to you if you use the default `main` entrypoint in your code when calling a Tezos smart contract. -For example, the contract [KT1Jsf33Eh4Mt9zvx1xqW2JQpZGyo4fjW7y9](https://better-call.dev/delphinet/KT1Jsf33Eh4Mt9zvx1xqW2JQpZGyo4fjW7y9/operations) (deployed on Delphinet) has a single entrypoint (default). +For example, the contract [KT1FUF3yapxt5pKGsYgnekrJR4e25oJjYvCp](https://better-call.dev/carthagenet/KT1FUF3yapxt5pKGsYgnekrJR4e25oJjYvCp/operations) (deployed on Carthagenet) has a single entrypoint (default). **Before version 7:** - ```js -const contract = await tezos.contract.at('KT1Jsf33Eh4Mt9zvx1xqW2JQpZGyo4fjW7y9'); -const opMethod = await contract.methods.main('2').send(); +const contract = await tezos.contract.at('KT1FUF3yapxt5pKGsYgnekrJR4e25oJjYvCp') +const opMethod = await contract.methods.main("2").send(); ``` **Since version 7:** - ```js -const contract = await tezos.contract.at('KT1Jsf33Eh4Mt9zvx1xqW2JQpZGyo4fjW7y9'); -const opMethod = await contract.methods.default('2').send(); +const contract = await tezos.contract.at('KT1FUF3yapxt5pKGsYgnekrJR4e25oJjYvCp') +const opMethod = await contract.methods.default("2").send(); ``` ### Error when not replacing main with default: @@ -123,26 +94,24 @@ If you update to version 7 without replacing main with default in your code, you ## Removed the `importKey` method from TezosToolkit class This method was marked as deprecated in March 2020 and recommended to use the signer provider: `@taquito/signer importKey`. -The purpose of this change was to remove the `@taquito/signer` dependency from `@taquito/taquito` because it increased the bundle size by ~1.1mb while not being necessary for most browser-based use-cases. +The purpose of this change was to remove the `@taquito/signer` dependency from `@taquito/taquito` because it increased the bundle size by ~1.1mb while being not necessary for most browser-based use-cases. ### Change required in your code: **Before version 7:** - -```js +``` js import { TezosToolkit } from '@taquito/taquito'; -const tezos = new TezosToolkit('your_rpc_node'); -tezos.importKey(email, password, mnemonic, secret); +const tezos = new TezosToolkit('your_rpc_node') +tezos.importKey(email,password,mnemonic,secret); ``` **Since version 7:** - ```js import { TezosToolkit } from '@taquito/taquito'; -import { importKey } from '@taquito/signer'; +import { importKey } from "@taquito/signer"; -const tezos = new TezosToolkit('your_rpc_node'); +const tezos = new TezosToolkit('your_rpc_node') importKey(tezos, email, password, mnemonic, secret); ``` @@ -158,31 +127,30 @@ or this error at runtime: Taquito now uses a type union that is composed of specific types for each protocol's economic constants. -Each protocol can add, change or remove constants. Before v7, Taquito used a single type with optional parameters. We now implement specific types for each protocol's constants for the correctness and avoid bloat over time. +Each protocol can add, change or remove constants. Prior to v7 Taquito used a single type with optional parameters. For correctness and to avoid bloat over time, we now implement specific types for each protocol's constants. -The `ConstantsResponse` interface in the Taquito RPC package is used when querying the RPC for constants with the `getConstants` method of the `RpcClient` class. Changes made to the interface `ConstantsResponse` are in the table below. Note that not all of them are breaking changes; some new or missing properties are added. +The `ConstantsResponse` interface in the Taquito RPC package is used when querying the RPC for constants with the `getConstants` method of the `RpcClient` class. Changes made to the interface `ConstantsResponse` are in the table below. Note that not all of them are breaking changes; some new or missing properties are added. -| Property | Type | Proto | Details | -| ---------------------------------- | ------------------------ | ------- | ----------------------------------------------------------------------- | -| max_anon_ops_per_block? | number | 7 | New in Delphinet, optional in Taquito because not in previous protocols | -| **max_revelations_per_block?** | number | 1 to 6 | **Changed to optional because not in proto 7** | -| **block_reward?** | BigNumber | 1 to 5 | **Changed to optional because not in proto 6 and 7** | -| **initial_endorsers?** | number | 5 to 7 | **type correction, string[ ] changed to number** | -| **delay_per_missing_endorsement?** | BigNumber | 5 to 7 | **type correction, number changed to BigNumber** | -| **endorsement_reward** | BigNumber or BigNumber[] | 1 to 7 | **Added BigNumber[ ] for proto 6 and 7, BigNumber before** | -| baking_reward_per_endorsement? | BigNumber[] | 6 and 7 | Was missing in Taquito | -| test_chain_duration? | BigNumber | 4 to 7 | Was missing in Taquito | -| origination_size? | number | 3 to 7 | Was missing in Taquito | -| **origination_burn?** | string | 1 and 2 | **Changed to optional because only in proto 1 and 2** | -| max_proposals_per_delegate? | number | 3 to 7 | Was missing in Taquito | +|Property |Type |Proto |Details +|----------------------------------|------------------------|-------|------------------------------------------------------------------------------------------------------| +|max_anon_ops_per_block? |number |7 |New in Delphinet, optional in Taquito because not in previous protocols +|**max_revelations_per_block?** |number |1 to 6 |**Changed to optional because not in proto 7** +|**block_reward?** |BigNumber |1 to 5 |**Changed to optional because not in proto 6 and 7** +|**initial_endorsers?** |number |5 to 7 |**type correction, string[ ] changed to number** +|**delay_per_missing_endorsement?**|BigNumber |5 to 7 |**type correction, number changed to BigNumber** +|**endorsement_reward** |BigNumber or BigNumber[]|1 to 7 |**Added BigNumber[ ] for proto 6 and 7, BigNumber before** +|baking_reward_per_endorsement? |BigNumber[] |6 and 7|Was missing in Taquito +|test_chain_duration? |BigNumber |4 to 7 |Was missing in Taquito +|origination_size? |number |3 to 7 |Was missing in Taquito +|**origination_burn?** |string |1 and 2|**Changed to optional because only in proto 1 and 2** +|max_proposals_per_delegate? |number |3 to 7 |Was missing in Taquito ### Example of breaking change: -The constant `max_revelations_per_block` is part of protocols 1 to 6, but not 7. Thus, we have changed it to an optional property in Taquito. Projects which use `max_revelations_per_block` property in their code need to add a check to ensure that the property is defined. +The constant `max_revelations_per_block` is part of protocols 1 to 6, but not 7. Thus, we have changed it to an optional property in Taquito. Projects which use `max_revelations_per_block` property in their code need to add a check to ensure that the property is defined. **Before version 7:** - -```js +``` js const client = new RpcClient('your_rpc'); const response = await client.getConstants(); @@ -190,13 +158,12 @@ const maxRevPerBlock = response.max_revelations_per_block; ``` **Since version 7:** - ```js const client = new RpcClient('your_rpc'); const response = await client.getConstants(); if (response.max_revelations_per_block) { - const maxRevelatioknsPerBlock = response.max_revelations_per_block; + const maxRevelatioknsPerBlock = response.max_revelations_per_block; } ``` @@ -206,24 +173,22 @@ if (response.max_revelations_per_block) { Ledger support was pre-released in September. Taquito never officially released this package until v7, but some teams adopted the pre-release package early, and this section is relevant only to those early adopters. ::: -This breaking change can impact the users of the pre-released `ledger-signer` package. +This breaking change can impact the users of the pre-released `ledger-signer` package. We have renamed the enum `DerivationType` members to use the curve name. Now `tz1`, `tz2`, and `tz3` become `ED25519`, `SECP256K1`, and `P256`. This enum is used in the optional `derivationType` parameter of the constructor of the `LedgerSigner` class. -There is another derivation type (`BIPS32_ED25519`), which also uses the tz1 prefix. It is used by the `tezos-client` CLI when paired with a ledger device but is not implemented so far in the `ledger-signer` package. The derivation types being named `tz1`, `tz2`, and `tz3` were potentially an area of confusion in the future, whereas different derivation types use the same signature scheme. +There is another derivation type (`BIPS32_ED25519`), which also uses the tz1 prefix. It is used by the `tezos-client` CLI when paired with a ledger device but is not implemented so far in the `ledger-signer` package. The derivation types being named `tz1`, `tz2` and `tz3` were potentially an area of confusion in the future, whereas different derivation types use the same signature scheme. ### Change required in your code: No change is required if you are using the default `derivationType` parameter. **In early version 7 pre-released:** - -```js +``` js const ledgerSigner = new LedgerSigner(transport, "44'/1729'/0'/0'", true, DerivationType.tz2); ``` **Since version 7:** - ```js const ledgerSigner = new LedgerSigner(transport, "44'/1729'/0'/0'", true, DerivationType.SECP256K1); -``` +``` \ No newline at end of file diff --git a/docs/validators.md b/docs/validators.md index d7483281d2..41d620d969 100644 --- a/docs/validators.md +++ b/docs/validators.md @@ -3,40 +3,39 @@ title: Validation functions author: Roxane Letourneau --- -Taquito provides functions that allow us to see if an address, a chain, a key hash, a contract address, a public key, or a signature is valid. Note that these validations do not rely on a node but are done based on checksums. Thus, they allow us to check if a value is valid and not if it exists on a chain. The `ValidationResult` returned by these functions is an enum that can take the following values: - -``` -0 = NO_PREFIX_MATCHED, -1 = INVALID_CHECKSUM, -2 = INVALID_LENGTH, -3 = VALID -``` +Taquito provides functions that allow us to see if an address, a chain, a key hash, a contract address, a public key or a signature is valid. Note that these validations do not rely on a node but are done based on checksums. Thus, they allow us to check if a value is valid and not if it exists on a chain. The `ValidationResult` returned by these functions is an enum which can take the following values: + ``` + 0 = NO_PREFIX_MATCHED, + 1 = INVALID_CHECKSUM, + 2 = INVALID_LENGTH, + 3 = VALID + ``` ### Validate an address #### The `validateAddress` function -This function can be used to validate implicit addresses (tz1, tz2, tz3) and originated addresses (KT1). +This function can be used to validate implicit addresses (tz1, tz2, tz3) as well as originated addresses (KT1). -In the following example, the function is first called with a valid public key hash (pkh). It is then called with the same pkh where one character differs (e.g. 'p' instead of 'P'), which results in an invalid checksum. +In the following example, the function is first called with a valid public key hash (pkh). Then, it is called with the same pkh where one character differs (e.g. 'p' instead of 'P'), which results in an invalid checksum. ```js live noInline import { validateAddress } from '@taquito/utils'; //valid -const pkh = 'tz1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'; -const validation = validateAddress(pkh); -println(`Calling the validateAddress function with ${pkh} returns ${validation}.`); +const pkh = 'tz1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx' +const validation = validateAddress(pkh) +println(`Calling the validateAddress function with ${pkh} returns ${validation}.`) //invalid checksum -const invalidPkh = 'tz1L9r8mWmRpndRhuvMCWESLGSVeFzQ9NAWx'; -const invalidValidation = validateAddress(invalidPkh); -println(`Calling the validateAddress function with ${invalidPkh} returns ${invalidValidation}.`); +const invalidPkh = 'tz1L9r8mWmRpndRhuvMCWESLGSVeFzQ9NAWx' +const invalidValidation = validateAddress(invalidPkh) +println(`Calling the validateAddress function with ${invalidPkh} returns ${invalidValidation}.`) ``` #### The `validateKeyHash` function -This function is used to validate implicit addresses (tz1, tz2, tz3). +This function is used to validate implicit addresses (tz1, tz2, tz3). Here is a valid example with a pkh and an invalid one where the prefix is missing : @@ -44,14 +43,14 @@ Here is a valid example with a pkh and an invalid one where the prefix is missin import { validateKeyHash } from '@taquito/utils'; //valid -const keyHash = 'tz1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'; -const validation = validateKeyHash(keyHash); -println(`Calling the validateKeyHash function with ${keyHash} returns ${validation}.`); +const keyHash = 'tz1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx' +const validation = validateKeyHash(keyHash) +println(`Calling the validateKeyHash function with ${keyHash} returns ${validation}.`) //invalid prefix -const keyHashWithoutPrefix = 'L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'; -const invalidValidation = validateKeyHash(keyHashWithoutPrefix); -println(`Calling the validateKeyHash function with ${keyHash} returns ${invalidValidation}.`); +const keyHashWithoutPrefix = 'L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx' +const invalidValidation = validateKeyHash(keyHashWithoutPrefix) +println(`Calling the validateKeyHash function with ${keyHash} returns ${invalidValidation}.`) ``` #### The `validateContractAddress` function @@ -64,16 +63,14 @@ Here is a valid example with the address of an existing contract : import { validateContractAddress } from '@taquito/utils'; //valid -const contractAddress = 'KT1AfxAKKLnEg6rQ6kHdvCWwagjSaxEwURSJ'; -const validation = validateContractAddress(contractAddress); -println( - `Calling the validateContractAddress function with ${contractAddress} returns ${validation}.` -); +const contractAddress = 'KT1JVErLYTgtY8uGGZ4mso2npTSxqVLDRVbC' +const validation = validateContractAddress(contractAddress) +println(`Calling the validateContractAddress function with ${contractAddress} returns ${validation}.`) ``` ### Validate a chain -The `validateChain` function is used to validate a chain id. +The `validateChain` function is used to validate a chain id. The following example shows a valid result when using the mainnet chain id and an invalid result if the prefix is missing : @@ -81,34 +78,33 @@ The following example shows a valid result when using the mainnet chain id and a import { validateChain } from '@taquito/utils'; //valid -const chainId = 'NetXdQprcVkpaWU'; -const validation = validateChain(chainId); -println(`Calling the validateChain function with ${chainId} returns ${validation}.`); +const chainId = 'NetXdQprcVkpaWU' +const validation = validateChain(chainId) +println(`Calling the validateChain function with ${chainId} returns ${validation}.`) //invalid prefix -const chainIdWithoutPrefix = 'XdQprcVkpaWU'; -const invalidValidation = validateChain(chainIdWithoutPrefix); -println( - `Calling the validateChain function with ${chainIdWithoutPrefix} returns ${invalidValidation}.` -); +const chainIdWithoutPrefix = 'XdQprcVkpaWU' +const invalidValidation = validateChain(chainIdWithoutPrefix) +println(`Calling the validateChain function with ${chainIdWithoutPrefix} returns ${invalidValidation}.`) ``` ### Validate a public key The `validatePublicKey` is used to check if a public key is valid. + ```js live noInline import { validatePublicKey } from '@taquito/utils'; //valid -const publicKey = 'edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g'; -const validation = validatePublicKey(publicKey); -println(`Calling the validatePublicKey function with ${publicKey} returns ${validation}.`); +const publicKey = 'edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g' +const validation = validatePublicKey(publicKey) +println(`Calling the validatePublicKey function with ${publicKey} returns ${validation}.`) //invalid prefix -const value = 'tz1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx'; -const invalidValidation = validatePublicKey(value); -println(`Calling the validatePublicKey function with ${value} returns ${invalidValidation}.`); +const value = 'tz1L9r8mWmRPndRhuvMCWESLGSVeFzQ9NAWx' +const invalidValidation = validatePublicKey(value) +println(`Calling the validatePublicKey function with ${value} returns ${invalidValidation}.`) ``` ### Validate a signature @@ -119,16 +115,12 @@ The `validateSignature` function is used to check if a signature is valid. import { validateSignature } from '@taquito/utils'; //valid -const signature = - 'edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg'; -const validation = validateSignature(signature); -println(`Calling the validateSignature function with ${signature} returns ${validation}.`); +const signature = 'edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg' +const validation = validateSignature(signature) +println(`Calling the validateSignature function with ${signature} returns ${validation}.`) //invalid checksum -const invalidSignature = - 'edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuM'; -const invalidValidation = validateSignature(invalidSignature); -println( - `Calling the validateSignature function with ${invalidSignature} returns ${invalidValidation}.` -); -``` \ No newline at end of file +const invalidSignature = 'edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuM' +const invalidValidation = validateSignature(invalidSignature) +println(`Calling the validateSignature function with ${invalidSignature} returns ${invalidValidation}.`) +``` diff --git a/docs/version.md b/docs/version.md index 161c323691..38a33ef17f 100644 --- a/docs/version.md +++ b/docs/version.md @@ -1,322 +1,7 @@ --- title: Versions -author: Jev Bjorsell +author: Simon Boissonneault-Robert --- -# Taquito v9.0.0-beta - -## Summary - -### Enhancements - -- Florence compatibility support -- Allows fetching big map with a key of type string, number, or object. -- Accept an operator for the retry strategy of the `ObservableSubscription` class -- Updated beacon-sdk version to v2.2.5 which includes several performance improvements for p2p pairing. - -### Documentation updates -- Added documentation about the Michelson encoder package [here](https://tezostaquito.io/docs/michelson_encoder). - - -## Forward compatibility for Florence - -This version ships with official support for the new Florence protocol which will come into effect on Mainnet in May. - -## @taquito/taquito - Allows fetching big map with a key of type string, number, or object. - -In the precedent versions, fetching a value in a big map required the parameter to be a string, even in such cases when the key of the big map was a number. The `get` and `getMultipleValues` methods of the `BigMapAbstraction` and `getBigMapKeyByID` and `getBigMapKeysByID` methods of the `RpcContractProvider` class now accept a string, a number or an object for the key we want to fetch. - -This introduced a breaking change for the method `getMultipleValues` of the `BigMapAbstraction` class and the method `getBigMapKeysByID` of the `RpcContractProvider` class as they now return a `MichelsonMap` instead of an object. This is meant to support keys of type object that are encountered when the Michelson type of the big map key is a pair. - -## @taquito/taquito - Accept an operator for the retry strategy of the ObservableSubscription class - -To give more flexibility to the user on the retry strategy, we removed the parameters `observableSubscriptionRetryDelay` and `observableSubscriptionRetries` introduced in version 8.1.1-beta and replaced them to accept an `OperatorFunction`. When users configure the ObservableSubscription to retry on error, we use the `retry` operators from `rxjs` by default. An example showing how to set a custom retry strategy is available [here](https://github.com/ecadlabs/taquito/blob/master/example/example-streamer-custom-retry-logic.ts). - -# Taquito v8.1.1-beta - -## Summary - -### Enhancements -- Dynamically set the polling interval based on the RPC constants -- Added a configurable delay and number of retries to the ObservableSubscription - -### Bug fixes -- Corrected the prefix for the prefixSig property -- Corrected sorting of numeric values when encoding - -### Documentation updates -- Added the telegram group to the Website community links -- Fixed some broken links -- New documentation about signing with wallet - -## Polling interval - -After sending an operation with Taquito, we call the confirmation method on the operation. Taquito does polling to the node to fetch new blocks and validate if the operation hash is in the block. Before this change, the polling interval's default value (confirmationPollingIntervalSecond) was set to 10 seconds. In theory, a new block is baked every 30 seconds on the testnets and every 60 seconds on mainnet. However, the time between blocks is shorter on sandboxes. For example, it can be of 5 seconds on Flextesa. A 10-second polling interval is too high for sandboxes and leads to a very high chance of missing the block containing the operation. To improve sandbox users' experience., we now calculate the polling interval value dynamically based on the RPC constants. To consider variations regarding the time between blocks in practice, we divide the value by 3 to reduce the risk of missing a block. - -Note that this value was configurable before and can still be configured if needed: -Tezos.setProvider({config: {confirmationPollingIntervalSecond: 5}}) - -## Delay and maximum number of attempts for the ObservableSubscription - -When users configure the ObservableSubscription to retry on error, the retries were happening immediately and indefinitely, causing call stack exception. Now, when the retry is enabled, the subscription uses a default value of 1 second between retries and a maximum value of 10 retries. -These values are configurable by the user: -Tezos.setProvider({ config: { shouldObservableSubscriptionRetry: true, observableSubscriptionRetryDelay: 2000, observableSubscriptionRetries: 3 } }); - -## prefixSig - -The prefixSig property returned by the sign method of the LedgerSigner class was using SIG prefix. The correct prefix is now returned (e.g. EDSIG for tz1, SPSIG for tz2, and P2SIG for tz3). - -## Sorting of numeric values - -The numerics values (nat, int, and mutez) were not sorted properly by the Michelson Encoder, causing the following RPC Errors: unordered_map_literal or unordered_set_literal. For example, the RPC expects maps to be sorted by ascending keys values. The values were ordered as strings by the Michelson Encoder instead of number, resulting in wrong ordering for the RPC. - -## Documentation Additions and Improvements - -A link to the Tezos Taquito Telegram group has been added in the Taquito website home page's footer, making it easier to find the group. You are welcome to join this group to access community support and connect with the Taquito team. - -We fixed broken links on the Taquito documentation website. - -There is new documentation on the website explaining how to produce signatures with the InMemorySigner and the Wallet API, along with examples and tips to keep in mind. - -A note on how to use the Kukai wallet for testing on Edonet has been added to the Wallet API documentation. - -# Taquito v8.1.0-beta - -## Summary - -### New features - -- Pack/unpack data locally. Now used for fetching big-maps too. -- New API to fetch multiple bigmap values at once 🚀🚀 - -### Enhancements - -- Expand support for Tickets beyond nat. -- New edo RPC endpoints in Taquito. -- Compatibility support for Florencenet (009-PsFLoren) - -### Other - -- Taquito npm preview registry for current Taquito builds all the time -- Website preview builds from PR & Website now hosted on Netlify - -### Bug fixes - -- Nat/Int encoding of large numbers. -- Graceful error handling for getDelegate method. -- Save operation hash before executing on the network - better debugging 🚀🚀 -- Fix encoding of lambda value in the michelson-encoder - -### Testing improvements - -- Better coverage for getBlock endpoint. - -### Documentation updates - -- [Tickets](https://tezostaquito.io/docs/tickets) -- [Local pack/unpack, including bigmaps.](https://tezostaquito.io/docs/maps_bigmaps#local-packing-for-big-maps) -- Rename Thanos to Temple wallet. -- Build time pre-requisites for Taquito. -- Documentation website examples now uses the edonet testnet - -## Pack and unpack data locally - -Before v8.1, Taquito provided an API to pack data using Tezos RPC. This release introduces local packing and unpacking data, allowing for security-conscious off-line operations and faster dapps because of fewer RPC requests. allows the getBigMapKeyByID to use the new `michel-codec` packData implementation - -Local pack means that fetching big map values is now 50% faster! Big map keys must be encoded using the PACK method, so Taquito needed to use the `rpc.packData()` method. As of v8.1 Taquito, users can opt to pack big map keys locally, eliminating an RPC round trip. - -This feature is _opt-in_, meaning that the Taquito user must enable it to benefit from faster big map fetching. The RPC key backing method is still the default. See [Local packing for big maps](https://tezostaquito.io/docs/maps_bigmaps#local-packing-for-big-maps) - -## npm preview registry - Delivering continuous delivery - -Developers can now test and evaluate new features and bug fixes as soon as possible without having to clone and locally link Taquito. Preview builds are published to our npm preview registry from all pull requests (except PR's from forks). - -IMPORTANT NOTE: Preview builds are not official releases. They are helpful for testing and evaluating new features in Taquito. Preview builds may contain incomplete features or features that have not been fully tested. - -## Fetch multiple bigmaps at once. - -Taquito now provides a new API `getMultipleValues` that fetches multiple keys in a single call. Taquito ensures that all fetched keys are fetched from the same block level. Future enhancements for this feature may include Taquito directly fetching multiple big maps from an RPC call as and when such an RPC is added to the Tezos nodes. See docs [here](https://tezostaquito.io/docs/maps_bigmaps#fetch-multiple-big-map-values-at-once) - -## Expanded property value support for tickets and better `nat` type support. - -The Michelson encoder package initially supported tickets having a value property of type nat, but now it has been updated to support every comparable token. Additionally, when invoking a contract with nat as a parameter, encoding a numeral with more than 21 digits has been fixed. - -## Save operation hash before executing on the network - better debugging. - -Developers now can calculate the hash of an operation before injection using a newly introduced utility from `utils` package. With this utility, it is possible to obtain the operation hash before sending it to the node. - -## Forward compatibility for Florence - -v8.1 supports Florence net. All the Taquito integration tests are run against the Florence testnet. - -## Documentation Additions and Improvments - -Documentation on the Taquito website continues to grow and be refined. Developers can now read docs explaining what tickets are, their use cases, and example code reading tickets with various data values. - -Live code examples on the website now use Edonet. - -CodeBlock and Playground folders, along with contracts that work with live code, now rely on the Edonet testnet. - -For enabling local pack (MichelCodecPacker()) for big map values, there are now instructions and documentation about the benefits of doing so. - -Developers can now opt in to use Taquito's local pack implementation when fetching Big Map values. This feature makes fetching Big Map values 50% faster. Big Map keys need to be serialized or PACK'ed, and Taquito relied on the Tezos PACK RPC to PACK the bigmap keys. - -By relying on the local pack implementation, we eliminate one RPC roundtrip when fetching Big Map Values. To enable this feature, developers must call the `tezos. setPackerProvider(new MichelCodecPacker());` on the program's TezosToolkit instance. - -## Website now uses Netlify - -Netlify provides the deployment/hosting of the Taquito website. The primary motivation is so that we get full preview deployments of the website from PRs. - -## More RPC endpoints added to Taquito - -New RPC endpoints are added to the Taquito RPC package providing better edonet support while marking endpoints that have been deprecated. - -## Graceful error handling for getDelegate method and testing improvements. - -The Tezos RPC returns an HTTP 404 when requesting a delegate for an account with no Delegate. Taquito now returns null without throwing an exception for this case. - -Test coverage for the getBlock endpoint has been improved - -## What's coming next for Taquito? - -We will soon be working on integrating Florence, the next Tezos protocol update proposal. We plan to deliver a final version of Taquito v9 much earlier, giving teams a longer runway to upgrade their projects before protocol transition. - -Developer Experience is our high-priority item, and we have improvements in our backlog that we plan to start work. We are improving the `michelson-encoder implementation to open the door for Type generation from contracts and to provide easier discoverability of what parameters endpoints and initial storage take. Stay tuned! - -We have a good practice of Continuous Delivery in Taquito, but we plan to take this to the next level. Stay tuned! - -If you have feature or issue requests, please create an issue on http://github.com/ecadlabs/taquito/issues or join us on the Taquito community support channel on Telegram https://t.me/tezostaquito - -# 8.0.6-beta.0 Updated beacon-sdk, bug fixed related to contract callback entry point - -* Updated beacon-sdk to version 2.2.2 #677 -* char2bytes and bytes2char functions (initially in the taquito-tzip16 package) have been added to the taquito-utils package #589 -* Allow specifying an entry point in a contract callback #652 -* Improved CI by adding retry for some of the integration tests - -## 8.0.4-beta.0 Refactor batch API, improve errors for LamdbaView - -* TezosToolkit.batch has been deprecated in favour of a batch() method on the contract and wallet API. See preliminary docs here: https://github.com/ecadlabs/taquito/pull/648/files and many examples of usage in our integration tests. -* LamdbaView returns a useful error message when a signer is not configured in Taquito -* More intergration-tests to cover the Wallet API -* Many small fixes to the Taquito documentation - - -## 8.0.3-beta.0 Fix for batch origination - -# This is a bug-fix release that addresses issue #624 - -## 8.0.2-beta.0 Fixes for Protocol ENUM, getBakingRights and support for comb-pairs in local-forging package - - -* A type in the Protocols enum was fixed. Protocols.PtEdo27k is now Protocols.PtEdo2Zk If you use this ENUM value, you will need to update your code. The protocol hash value has not changed. -* getBakingRights issue when max_priority set to 0 has been fixed (Thank you to @itkach for report, thank you to @kjaiswal for first PR taco tada ) -* Support for comb-pairs has been added to the local-forging package -* Integration test has been added to originate sapling contracts with various initial storage states - -## 8.0.1-beta.1 Final v8.0.1 - Update Now - mainnet transitions to edo on Feb 13th 2021! - -The Tezos mainnet transitions from the incumbent delphi protocol to the edo protocol on Feb 13th 2021. If you have projects on mainnet that use Taquito, it is crucial that you update now. - -This release supports 008-PtEdo2Zk protocol that ships with the recently releases Tezos v8.2 node. - -The edonet testnet has been reset. The public node that Taquito operates is running this new testnet, and this testnet runs the protocol that will come into effect on mainnet this Saturday the 13th of Feb 2021. - -If you are using a public testnet for your development or testing, please verify that it is running protocol 008-PtEdo2Zk! - -## Summary - -* Support for the upcoming EDO protocol (Comes into effect on February 13th 2021) -* Contract and Token Metadata features -* Support for off-chain Michelson views -* Michel-codec type checks all your Michelson -* Ships with @airgap/beacon-sdk v2.2.1 for the Taquito Beacon wallet provider. -* As per the Taquito Versioning Strategy this v8.0.0 release supports the upcoming edonet Tezos Protocol which will activate on the Tezos mainnet on February 13th 2021. - -## edonet Support - -Taquito v8 ships with backward compatible support for the EDO protocol. This means that all our integration tests and known use cases that function on pre EDO protocols also function on the EDO protocol. Taquito users with Applications deployed on Tezos’ mainnet must upgrade to v8 prior to the EDO protocol transition which will happen on Saturday, February 13th. - -The edonet protocol brought changes to the layout of the “combs” data structure. Taquito supports this new structure in such a way that is backward compatible without changing the corresponding Taquito APIs. - -Taquito’s michel-codec package and michelson-encoder package has been updated to support the new Michelson instructions and layout changes. sapling_state and sapling_transaction will be added to michelson-encoder in a subsequent release. - -Michel-codec Update to support all Michelson changes introduced in the 008 edo update. - -For all the changes in edo itself, see the edo changelogs here: https://tezos.gitlab.io/protocols/008_edo.html - -Contract and Token Metadata support (TZIP-16/TZIP-12 -Taquito v8 ships with full support for reading Contract and Token metadata, as well as loading and executing “off-chain-views”. Projects can now publish metadata about their contract to IPFS, a HTTP server or (even if not appropriate) on-chain. - -Taquito’s support makes it easy for developers to fetch metadata such as name, author, logo, symbol for a Smart Contract based on the address. - -Documentation on Taquitos’ new API is available here: https://tezostaquito.io/docs/metadata-tzip16/ and here https://tezostaquito.io/docs/tzip12/ - -michel-codec updates -The michel-codec package now type checks all Michelson. Passing an incorrect data type with a Michelson operation will be caught by michel-codec. - -Michel-codec now takes a protocol parameter so that it produces the correct Michelson representation and validation based on what is supported in the specified protocol. - -Example of use: - -``` -Import {Protocol, Parser, ParserOptions} from ‘@taquito/michel-codec’ - -const parserOptions: ParserOptions = { - expandMacros: true, - protocol: Protocol.PtEdo27k, -} -const p = new Parser(parserOptions); -``` - -## Dependency requirements - -Taquito now depends on Typescript 4.1 to build. This release is build using Typescript 4.1.5 - -## Tests; - -We have added many more tests to our integration-test suite. Examples of originating contracts with Sapling state and Tickets are available in the test suite. - -## Why is Taquito still marked as beta? - -Taquito v8 is considered very stable, but we still carry the beta tag, as we want to make it perfect before removing the beta tag. Namely, complete architectural documentation to assist developers and auditors with understanding the internals. Documentation is part of the project, and we think our documentation is good, but we can do better. - -## What’s coming next for Taquito? - -We will soon be working on integrating Florence, the next Tezos protocol update proposal. We plan to deliver a final version of Taquito v9 much earlier, giving teams a longer runway to upgrade their projects prior to protocol transition. - -Developer Experience is our high priority item, and we have improvements in our backlog that we plan to start work on. - -We have a good practice of Continuous Delivery in Taquito, but we plan to take this to the next level. Making new features available for pre-view earlier, and test artefacts more visible. Stay tuned! - -If you have feature or issue requests, please create an issue on http://github.com/ecadlabs/taquito/issues or join us on the Taquito community support channel on Telegram https://t.me/tezostaquito - -## Taquito v7.1.0-beta - -### New Features - -#### Lambda Views - -Lambda views is a technique that allows a caller to execute a view function on a contract without incurring fees. Taquito provides an abstraction over this technique that makes it easy to use. Application developers can use this feature to call view methods on smart-contracts without incurring fees. - -See the [Lambda View documentation](https://tezostaquito.io/docs/lambda_view) - -Special thanks to Philip Diaz and Michael Klien for contributing this feature to Taquito. - -#### michel-codec type checking - -The `@taquito/michel-codec` package now validates/type checks your Michelson. This validation provides an additional layer of safety and speed as this package validates Michelson at run-time, catching invalid code before it reaches a Tezos node. We will be integrating `michel-codec` package deeper into Taquito over the next few releases. - -### Beacon V2 - -The Taquito wallet API now supports Beacon V2. This update is the product of close collaboration between AirGap, Kukai, Temple, and Taquito. The updated TZIP-10/Beacon experience is smoother than before, and users who have more than one Tezos wallet are accommodated. - -The new behaviour can be seen in action here: https://cloney.tezostaquito.io/, with actual implementation from the dApp side available here: https://github.com/ecadlabs/george-cloney - -### Docs - -- Using the Taquito Batch API -- MichelsonMap Documentation -- List of community learning resources (See an omission? Let us know!) ## Taquito v7.0.1-beta @@ -345,7 +30,7 @@ Documentation is available here: https://tezostaquito.io/docs/ledger_signer We have tested using both Ledger Nano S and X devices. -Both the [Madfish](https://www.madfish.solutions/) ([Temple Wallet](https://templewallet.com/)) and Agile Ventures (Tezos Domains) have put this package to use in their products. A special thanks to Klas and Luis of the Kukai team for their early feedback. +Both the [Madfish](https://www.madfish.solutions/) ([Thanos Wallet](https://thanoswallet.com/)) and Agile Ventures (Tezos Domains) have put this package to use in their products. A special thanks to Klas and Luis of the Kukai team for their early feedback. ### More documentation! diff --git a/docs/wallet_API.md b/docs/wallet_API.md index aad088c91b..5a87726eb1 100644 --- a/docs/wallet_API.md +++ b/docs/wallet_API.md @@ -1,243 +1,105 @@ --- title: Wallet API +id: wallet_API author: Claude Barde --- ## What is the Wallet API? - - -The Tezos blockchain is a fantastic tool, but it is self-contained. Except for the transactions you send to it, it has no interaction with the outside world. However, it would be amazing to interact with it, such as making payments, reading the balance of an account, or recording data in a smart contract. This interaction is what the Wallet API (and Taquito in general) achieves. The Wallet API provides a new yet familiar way to interact with the blockchain and smart contracts by delegating several actions that Taquito previously handled to the wallets. This delegation offers more flexibility for both developers and users and gives the ecosystem more space to evolve. - - +The Tezos blockchain is a fantastic tool but it is self-contained. Except for the transactions you send to it, it has no interaction with the outside world. However, it would be amazing to interact with it, for example to make payments, to read the balance of an account or to record data in a smart contract. This is what the Wallet API (and Taquito in general) achieves. The Wallet API provides a new, yet familiar way to interact with the blockchain and smart contracts by delegating a number of actions that were previously handled by Taquito to the wallets. This offers more flexibility for both developers and users and give more space for the ecosystem to evolve. ## Installing the Wallet API +The first thing to do to use the wallet API is to install it. - -The first thing to do is to use the wallet API is to install it. You just need to install the Taquito package to use the wallet API: - - -``` +```bash npm install @taquito/taquito - ``` - - or - -``` +```bash yarn add @taquito/taquito - ``` +Make sure you have the latest version, starting with `6.3.2-beta.0` (when the API became available) or above. +Once the package is downloaded, you can install the wallet of your choice. The wallet API supports different kinds of wallets, _TezBridge_, _Beacon_ and _Thanos_ wallets are available to use at the moment. You can install one or multiple wallets according to your needs: - -Make sure you have the latest version (`7.1.0` when this article was written, but the API became available from `6.3.2-beta.0`). - - - -Once the package is downloaded, you can install the wallet of your choice. The wallet API supports different kinds of wallets. _Beacon_, _Temple_ and _TezBridge_ wallets are available to use at the moment. You can install one or multiple wallets according to your needs: - - - -``` - +```bash npm install @taquito/tezbridge-wallet - npm install @taquito/beacon-wallet - -npm install @temple-wallet/dapp - +npm install @thanos-wallet/dapp ``` - - -Remember that some wallets may require an extra step in addition to the package installation. For example, TezBridge requires a plugin file, Temple must be used with an extension installed in the browser. We will explain the requirements for the different wallets in detail in the sections below. - - +Remember that some wallets may require an extra step in addition to the package installation. For example, TezBridge requires a plugin file, Thanos must be used with an extension installed in the browser, etc. The requirements for the different wallets will be explained in details in the sections below. ## Connecting the wallet - - -After installing the Taquito package in your dapp project and the package containing the Wallet API for the wallet of your choice, it's time to import the Wallet API into your project! Although the steps are very similar for each wallet, they all have their specificities that we will check in the paragraphs below. - -To start, let's import the Tezos Toolkit from Taquito and create a new instance of the Tezos singleton: - - +After installing the Taquito package and the package containing the Wallet API for the wallet of your choice, it's time to import the Wallet API into your project! Although the steps are very similar for each wallet, they all have their specificities that we will check in the paragraphs below. +To start, let's create an instance of the `TezosToolkit` from Taquito: +When doing so, we have to choose the network we want to use: ```js import { TezosToolkit } from '@taquito/taquito'; - -const Tezos = new TezosToolkit('https://testnet-tezos.giganode.io'); +const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); ``` +This object exposes different methods we are going to use to set up our wallet. TezBridge has been around for some time and it may be the one you are the most familiar with, so let's start with that! -This object exposes different methods we are going to use to set up our wallet. TZIP-10 has become the official standard of communication and interaction between wallets and dapps, so let's start with the `@taquito/beacon-wallet` package that implements this standard! - - - -### - TZIP-10 wallet - - - -The `BeaconWallet` is a package implementing the TZIP-10 standard that describes the communication between a dapp (decentralized application on Tezos) and a wallet (e.g., a browser extension). The Beacon wallet works with any wallet that supports the TZIP-10 standard (for example, the Beacon extension, Temple, or Kukai). This package is the recommended way of connecting your dapp to a wallet. In addition to being future-proof, it gives your users the freedom to choose the wallet they want. - - - -First, the `BeaconWallet` class must be imported: - +### - TezBridge wallet +First, we have to import the TezBridge wallet from the package: ```js - -import { BeaconWallet } from '@taquito/beacon-wallet'; - +import { TezBridgeWallet } from '@taquito/tezbridge-wallet'; ``` +Next, we can set up the wallet. In general, you will give your dapp users the choice of the wallet they prefer, so the wallet initialization wouldn't happen when the dapp is mounted but after user's interaction, for example after pressing a button. It is important to remember that you have to import the TezBridge class in your HTML file before setting up your wallet or this will throw an error: - -Then, you can start initializing the wallet: - - - -```js -const options = { - name: 'MyAwesomeDapp', - iconUrl: 'https://tezostaquito.io/img/favicon.png', - preferredNetwork: "florencenet", - eventHandlers: { - PERMISSION_REQUEST_SUCCESS: { - handler: async (data) => { - console.log('permission data:', data); - }, - }, - }, -}; -const wallet = new BeaconWallet(options); - +```bash +<script src="https://www.tezbridge.com/plugin.js"></script> ``` - - -The necessary bare minimum to instantiate the wallet is an object with a `name` property that contains the name of your dapp. However, the Beacon wallet allows you to customize your dapp responses to different events. In the example above, instead of getting the default Beacon pop-up after the user connects the wallet, it will display the available data in the console. You can use whatever solution you prefer for feedback. You can find a list of all the default handlers [in the beacon-sdk Github repo](https://github.com/airgap-it/beacon-sdk/blob/master/src/events.ts). - -> Note: if you want to use the Kukai wallet for testing on florencenet, you must use the optional property `preferredNetwork` and set it to `florencenet`, otherwise the mainnet version of the Kukai wallet will open. - - - -The Beacon wallet requires an extra step to set up the network to connect to and the permissions: - - +To set up TezBridge as your wallet, you use the `setWalletProvider` method of the `TezosToolkit` instance and pass a new instance of the `TezBridgeWallet` class: ```js - -await wallet.requestPermissions({ - network: { - type: 'mainnet' | 'florencenet' | 'edonet' | 'custom', - }, -}); - +Tezos.setWalletProvider(new TezBridgeWallet()); ``` - - -You can choose among `mainnet`, `florencenet`, `edonet` and `custom` to set up the network. Once the permissions have been configured, you can get the user's address by calling the `getPKH` method on the wallet: - - +or ```js - -const userAddress = await wallet.getPKH(); - +Tezos.setProvider({ wallet: new TezBridgeWallet() }); ``` - - -To finish, you can set the wallet as your provider: - - +Please note that you don't need to interact directly with the `tezbridge` object that the plugin injects in the `window` object. Taquito will take care of it. You can even get the user's address using the TezBridgeWallet instance like so: ```js - +const wallet = new TezBridgeWallet(); Tezos.setWalletProvider(wallet); - -``` - - - -or - - - -```js - -Tezos.setProvider({ wallet }); - +const userAddress = await wallet.getPKH(); ``` +#### Try the TezBridge wallet! - -#### Try the Beacon wallet! - - - -Make sure you have the Beacon browser extension installed (the extension offers minimal features, the BeaconWallet works with any wallet implementing the TZIP-10 standard), the AirGap wallet on your phone, or any TZIP-10 ready wallet like Temple or Kukai. - - - -```js live noInline wallet - -//import { BeaconWallet } from '@taquito/beacon-wallet'; - - -const options = { name: 'MyAwesomeDapp' }; -const wallet = new BeaconWallet(options); - -wallet - .requestPermissions({ network: { type: 'florencenet' } }) - .then((_) => wallet.getPKH()) - .then((address) => println(`Your address: ${address}`)); - +```js live noInline +//import { TezBridgeWallet } from '@taquito/tezbridge-wallet'; +const wallet = new TezBridgeWallet(); Tezos.setWalletProvider(wallet); - +wallet.getPKH().then((userAddress) => println(`Your address: ${userAddress}`)); ``` +### - Thanos wallet - -### - Development wallets - - - -During the development of your dapp, you may prefer a less "user-friendly" option that gives you more information and details than a more user-friendly wallet. You may also want to install and set up a wallet quickly that requires less boilerplate than the Beacon SDK. In these cases, you can choose between the Tezbridge wallet (for more details in a lightweight format) and the Temple Wallet (for a quick setup using the Temple wallet extension). - - - -- Temple wallet - - - -Just like the other wallets, you have to import the Temple wallet class first: - - +Just like the other wallets, you have to import Thanos wallet class first: ```js - -import { TempleWallet } from '@temple-wallet/dapp'; - +import { ThanosWallet } from '@thanos-wallet/dapp'; ``` - - -Then, Temple requires an extra step to verify that the extension is installed and connected in the browser. Temple used to be called Thanos and some Taquito code still uses the name Thanos. The `Thanoswallet` class exposes a static property called `isAvailable` that just does that. You must use it before attempting to connect the wallet: - - +Then, Thanos requires an extra step to verify that the extension is installed and connected in the browser. The `ThanosWallet` class exposes a static property called `isAvailable` that just does that. You must use it before attempting to connect the wallet: ```js - try { const available = await ThanosWallet.isAvailable(); if (!available) { @@ -246,204 +108,143 @@ try { } catch (err) { console.log(err); } - ``` +In order for this to work, you have to enable dapps in the Thanos wallet. Under `Settings`, you will find a `DApps` section where the checkbox must be checked to allow interactions between the wallet and the dapps. - -For this to work, you have to enable dapps in the Temple wallet. Under `Settings`, you will find a `DApps` section where the checkbox must be checked to allow interactions between the wallet and the dapps. - - - -Now that we are sure the extension is installed and running, we can continue connecting the wallet. We start by creating a new instance of the `ThanosWallet` class: - - +Now that we are sure the extension is installed and running, we can continue and connect the wallet. We start by creating a new instance of the ThanosWallet class: ```js - const wallet = new ThanosWallet('MyAwesomeDapp'); - ``` - - The class constructor takes one parameter, the name of your dapp (this will be used later in the transaction confirmation pop-up). After the instantiation, we can connect the wallet by calling the `connect` method: - - ```js - -await wallet.connect('mainnet' | 'edo2net' | 'florencenet' | 'labnet' | 'sandbox'); - +await wallet.connect('mainnet' | 'carthagenet' | 'labnet' | 'sandbox'); ``` - -(Temple used to be called Thanos and some Taquito code still uses the name Thanos.) Once the wallet is connected, there are a couple of things you can get out of it: - - ```js - const wallet = new ThanosWallet('MyAwesomeDapp'); // the ThanosWallet can return an instance of the Tezos singleton const Tezos = await wallet.toTezos(); // the ThanosWallet can return the user's address const userAddress = wallet.pkh || (await wallet.getPKH()); - ``` - - -If you are using your own Tezos singleton instance, it is time to set the wallet as the provider (this is not necessary if you use the one provided by Temple wallet, but remember you have to continue using it throughout your dapp): - - +If you are using your own TezosToolkit instance, it is time to set the wallet as the provider (this is not necessary if you use the one provided by Thanos wallet, but remember you have to continue using it throughout your dapp): ```js - Tezos.setWalletProvider(wallet); - ``` - - or - - ```js - -Tezos.setProvider({ wallet }); - +Tezos.setProvider({ wallet: wallet }); ``` +#### Try the Thanos wallet! +Make sure you have the Thanos browser extension installed first. -#### Try the Temple wallet! - - - -Make sure you have the Temple browser extension installed first. - - - -```js live noInline wallet - +```js live noInline //import { ThanosWallet } from '@thanos-wallet/dapp'; + ThanosWallet.isAvailable() .then(() => { - const mywallet = new ThanosWallet('MyAwesomeDapp'); - mywallet.connect('florencenet').then(() => { - Tezos.setWalletProvider(mywallet); - return mywallet.getPKH()}).then((pkh) => { - println(`Your address: ${pkh}`); + const wallet = new ThanosWallet('MyAwesomeDapp'); + + wallet.connect('carthagenet').then(() => { + Tezos.setWalletProvider(wallet); + + println(`Your address: ${wallet.pkh}`); }); }) .catch((err) => console.log(err)); - ``` +### - Beacon wallet +The Beacon wallet is a package implementing the TZIP-10 standard that describes the communication between a dapp (decentralised application on Tezos) and a wallet (eg. browser extension). The Beacon wallet works with the Beacon extension you can install in your browser but also with any wallet that supports the TZIP-10 standard (for example Thanos). -- TezBridge wallet - - - -> Note that the TezBridge wallet may not work correctly since the Delphi upgrade might be deprecated in the future. - - - -First, we have to import the TezBridge wallet from the package: - - +First, the `BeaconWallet` class must be imported: ```js - -import { TezBridgeWallet } from '@taquito/tezbridge-wallet'; - +import { BeaconWallet } from '@taquito/beacon-wallet'; ``` - - -Next, we can set up the wallet. In general, you will give your dapp users the choice of the wallet they prefer, so the wallet initialization wouldn't happen when the dapp is mounted but after user's interaction, for example, after pressing a button. It is important to remember that you have to import the TezBridge class in your HTML file before setting up your wallet, or this will throw an error: - - +Then, you can start initializing the wallet: ```js - -<script src="https://www.tezbridge.com/plugin.js"></script> - +const options = { + name: 'MyAwesomeDapp', + iconUrl: 'https://tezostaquito.io/img/favicon.png', + eventHandlers: { + PERMISSION_REQUEST_SUCCESS: { + handler: async (data) => { + console.log('permission data:', data); + }, + }, + }, +}; +const wallet = new BeaconWallet(options); ``` +The necessary bare minimum to instantiate the wallet is an object with a `name` property which contains the name of your dapp. However, the Beacon wallet allows you to customize your dapp responses to different events. In the example above, instead of getting the default Beacon pop-up after the user connects the wallet, it will just display the available data in the console. You can use whatever solution you prefer for feedback. For more customization options, you can find a list of all the default handlers [in the beacon-sdk Github repo](https://github.com/airgap-it/beacon-sdk/blob/master/src/events.ts). - -To set up TezBridge as your wallet, you use the `setWalletProvider` method of the `Tezos` singleton instance and pass a new instance of the `TezBridgeWallet` class: - - +Next, you can set the wallet as your provider: ```js - -Tezos.setWalletProvider(new TezBridgeWallet()); - +Tezos.setWalletProvider(wallet); ``` - - or - - ```js - -Tezos.setProvider({ wallet: new TezBridgeWallet() }); - +Tezos.setProvider({ wallet }); ``` +The Beacon wallet requires an extra step to set up the network to connect to and the permissions: +```js +await wallet.requestPermissions({ network: { type: 'mainnet' | 'carthagenet' | 'custom' } }); -Please note that you don't need to interact directly with the `tezbridge` object that the plugin injects in the `window` object. Taquito will take care of it. You can even get the user's address using the TezBridgeWallet instance like so: - +const userAddress = wallet.permissions.address; +``` +You can choose among `mainnet`, `carthagenet` and `custom` to set up the network. Once the permissions have been configured, you can find the user's address under the `address` property of the `wallet.permissions` object. You can also get the user's address by calling the `getPKH` method on the wallet: ```js - -const wallet = new TezBridgeWallet(); -Tezos.setWalletProvider(wallet); const userAddress = await wallet.getPKH(); - ``` +#### Try the Beacon wallet! +Make sure you have the Beacon browser extension installed (the extension is only used for development purposes, the BeaconWallet works with any wallet implementing the TZIP-10 standard) or the AirGap wallet on your phone. -#### Try the TezBridge wallet! - +```js live noInline +//import { BeaconWallet } from '@taquito/beacon-wallet'; +const options = { name: 'MyAwesomeDapp' }; +const wallet = new BeaconWallet(options); -```js live noInline wallet +wallet + .requestPermissions({ network: { type: 'carthagenet' } }) + .then((_) => println(`Your address: ${wallet.permissions.address}`)); -//import { TezBridgeWallet } from '@taquito/tezbridge-wallet'; -const wallet = new TezBridgeWallet(); Tezos.setWalletProvider(wallet); -wallet.getPKH().then((userAddress) => println(`Your address: ${userAddress}`)); - ``` - - ## Making transfers - - -Although it is possible to transfer tokens directly from the wallets, Taquito offers to send tokens programmatically. This method could be a better solution if you want to do calculations before sending the tokens or if the amount of tokens to send is based on a variable value. This could also be preferable to avoid manual inputs that can often be a source of errors. Using Taquito to send tokens only requires to sign a transaction, sit back and relax :) - - +Although it is possible and perfectly fine to transfer tokens directly from the wallets, Taquito offers the possibility to programmatically send tokens. This could be a better solution if you want to do calculations before sending the tokens or if the amount of tokens to send is based on a variable value. This could also be preferrable in order to avoid manual inputs that can often be a source of errors. Using Taquito to send tokens only requires to sign a transaction, sit back and relax :) ### - Transfer between implicit accounts - - ```js live noInline wallet - Tezos.wallet .transfer({ to: 'tz1NhNv9g7rtcjyNsH8Zqu79giY5aTqDDrzB', amount: 0.2 }) .send() @@ -461,76 +262,48 @@ Tezos.wallet }) .catch((err) => println(err)); }); - ``` - - -The `transfer` method takes an object with only two required properties: the `to` property that indicates the recipient of the transaction and the `amount` property for the number of tokens that should be sent. Unlike the Contract API, the transfer must be _sent_ by using the `.send` method, which returns a promise that will resolve with an instance of the [**TransactionWalletOperation class**](https://tezostaquito.io/typedoc/classes/_taquito_taquito.transactionwalletoperation.html). This instance holds, among others, the transaction hash under the `opHash` property. You can then call the `.confirmation()` method and pass as a parameter the number of confirmations you want to wait (one by default). Once confirmed, the returned promise is resolved to an object with a `complete` property set to true if the operation has been confirmed. - - +The `transfer` method takes an object with only two required properties: the `to` property that indicates the recipient of the transaction and the `amount` property for the amount of tokens that should be sent. Unlike the Contract API, the transfer must be _sent_ by using the `.send` method which returns a promise that will resolve with an instance of the [**TransactionWalletOperation class**](https://tezostaquito.io/typedoc/classes/_taquito_taquito.transactionwalletoperation-2.html). This instance holds, among others, the transaction hash under the `opHash` property. You can then call the `.confirmation()` method and pass as a parameter the number of confirmations you want to wait (one by default). Once confirmed, the returned promise resolved to an object with a `complete` property set to true if the operation has been confirmed. ### - Transfer to smart contracts - - ```js live noInline wallet Tezos.wallet - .transfer({ to: 'KT1KCcRLejgWnauwuBFiDWX5nsrAVnR4nMvB', amount: 0.2 }) + .transfer({ to: 'KT1TMZhfoYtpjbGG1nLjs7SZioFM1njsRwkP', amount: 0.2 }) .send() .then((op) => { - println(`Waiting for ${op.opHash} to be confirmed...`) - return op.confirmation().then(() => op.opHash); + println(`Waiting for ${op.opHash} to be confirmed...`); + return op.confirmation(1).then(() => op.opHash); }) - .then(() => println(`Operation injected!`)) - .catch((error) => println(`Error: ${error} ${JSON.stringify(error, null, 2)}`)); -``` - - - -Transactions to smart contracts operate in the same fashion as transactions to an implicit account, the only difference being the `KT1...` address. You will also receive a transaction hash and have to wait for the transaction to be confirmed. Once confirmed, it can be the right time to update the user's/contract's balance, for example. - - - -## Calling a smart contract - - - -Sending a transaction to a smart contract to update its storage will be a different type of action as it implies targetting a specific entrypoint and formatting correctly the data to be sent. - -Fortunately, Taquito will make this operation go like a breeze! First, you need the contract abstraction created with the address of the smart contract you are targeting: - - - -```js -const contract = await -Tezos.wallet.at('KT1KLbEeEgW5h1QLkPuPvqdgurHx6v4hGyic'); + .then(hash => println(`Operation injected: https://carthagenet.tzstats.com/${hash}`)) + .catch((err) => println(err)) ``` +Transactions to smart contracts operate in the same fashion as transactions to an implicit account, the only difference being the `KT1...` address. You will also receive a transaction hash and have to wait for the transaction to be confirmed. Once confirmed, it can be the right time to update the user's/contract's balance, for example. -This line creates a contract abstraction with multiple methods named after the contract entrypoints. For example, if you have a `transfer` entrypoint in your contract, you will also have a `.transfer()` method in the `contract` object. Each method accepts parameters required by the contract entrypoint. - - - -In this example, we are working with a simple smart contract with two methods: `areYouThere` expects a value of type `boolean` to update the `areYouThere` value in the storage of the same type, and `addName` expects a value of type `string` to add it to the map in the contract. - +## Sending transactions +Sending a transaction to a smart contract to update its storage is going to be a different type of action as it implies targetting a specific entrypoint and formatting correctly the data to be sent. +Fortunately, Taquito will make this operation go like a breeze! First, you need the contract abstraction created with the address of the smart contract you are targetting: -### - Contract entrypoint arguments +```js +const contract = await Tezos.wallet.at('KT1TMZhfoYtpjbGG1nLjs7SZioFM1njsRwkP'); +``` +This line creates a contract abstraction with multiple methods named after the contract entrypoints. For example, if you have a `transfer` entrypoint in your contract, you will also have a `.transfer()` method in the `contract` object. Each method accepts parameters required by the contract entrypoint. +In this example, we are working with a simple smart contract with two methods: `areYouThere` expects a value of type `boolean` to update the `areYouThere` value in the storage of the same type and `addName` expects a value of type `string` to add it to the map in the contract. -Most of the entrypoint method's possible arguments are pretty straightforward and intuitive and do not require any explanation. However, a couple of them need more attention. +### - Contract entrypoint arguments +Most of the possible arguments of the entrypoint method are pretty straightforward and intuitive and do not require any explanation. However, a couple of them need more attention. Most of the time, the process is simple: you take the contract abstraction you created for the contract you target, you call the `methods` property on it which exposes all the entrypoints of the contract as methods. You pass the argument you want to send to the contract as a function argument before calling the `send()` method to send the transaction: - - ```js live noInline wallet - Tezos.wallet - .at('KT1CQJ9CAFN92a6tzCjHcuwDJEUWzBFsxTvM') + .at('KT1PCLg8Da8T5h5SWibMopPVsxiKg27tSRxx') .then((contract) => contract.methods.areYouThere(true).send()) .then((op) => { println(`Hash: ${op.opHash}`); @@ -547,19 +320,13 @@ Tezos.wallet } }) .catch((err) => console.log(err)); - ``` - - In the case of multiple arguments (for example if the entrypoint expects a pair), you can just pass the arguments one by one. Be careful of the order of the arguments, they must be in the exact order expected by the contract entrypoint: - - ```js live noInline wallet - Tezos.wallet - .at('KT1CQJ9CAFN92a6tzCjHcuwDJEUWzBFsxTvM') + .at('KT1PCLg8Da8T5h5SWibMopPVsxiKg27tSRxx') .then((contract) => contract.methods.addName('tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb', 'Alice').send() ) @@ -578,39 +345,22 @@ Tezos.wallet } }) .catch((err) => console.log(err)); - ``` - - If the entrypoint doesn't expect any value (or more precisely, if it expects a `unit` value), you also have to specify it when sending the transaction as follows: - - ```js - contract.methods.noArgumentEntrypoint([['unit']]).send(); - ``` - - This will tell Taquito that a value of type unit needs to be sent to the entrypoint. - - ### - `.send()` function arguments - - In the previous examples, we called the `send()` method without passing any argument. However, it is also possible to change some options before sending a transaction by passing an object to the `send()` method. - The properties of the argument are described in the following interface: - - -```js - +```ts interface SendParams { fee?: number; storageLimit?: number; @@ -618,111 +368,62 @@ interface SendParams { amount: number; source?: string; mutez?: boolean; - } - ``` - - If you choose to use the parameters, only one property is mandatory: the `amount` property. It represents the amount of tokens you want to send to the contract. Let's check the other properties: - - - `fee`: a custom fee for the current transaction - - `storageLimit`: sets the storage limit for the current transaction - - `gasLimit`: sets the gas limit for the current transaction - - `source`: a string indicating the source of the transaction - - `mutez`: if set to `true`, it indicates that the amount provided is in mutez - - ### - Operation hash and confirmation +The `.send()` method returns an instance of the [`TransactionWalletOperation`](https://tezostaquito.io/typedoc/classes/_taquito_taquito.transactionwalletoperation-2.html) class with different properties and methods you can use to gather information about the transaction. Among them, there are two properties and one method that you will use most of the time when using Taquito: - -The `.send()` method returns an instance of the [`TransactionWalletOperation`](https://tezostaquito.io/typedoc/classes/_taquito_taquito.transactionwalletoperation.html) class with different properties and methods you can use to gather information about the transaction. Among them, there are two properties and one method that you will use most of the time when using Taquito: - - - -1. `.opHash`: this property holds the hash of the current transaction. It can be useful for debugging purposes or checking the status of the transaction in a block explorer. - +1. `.opHash`: this property holds the hash of the current transaction, it can be useful for debugging purposes or checking the status of the transaction in a block explorer. 2. `._included`: the `_included` property is set to `false` when the transaction is sent to the network and will be updated to `true` when it is included in a block. It can be useful to verify the transaction has been properly included in the blockchain. +3. `.confirmation()`: this method is a crucial promise to use in your code: it will wait until the transaction is confirmed before executing the rest of the code. You can pass a number as an argument if you want to wait several block confirmations, otherwise it is set to `1` by default. Note that this method returns a promise with different valuable information: -3. `.confirmation()`: this method is a crucial promise to use in your code: it will wait until the transaction is confirmed before executing the rest of the code. You can pass a number as an argument if you want to wait for several block confirmations; otherwise it is set to `1` by default. Note that this method returns a promise with different valuable information: - - - - - `block`: holds details about the block in which the transaction was included, for example, the chain ID, the block level, etc. - - - `completed`: `true` if the transaction is over - + - `block`: holds details about the block in which the transaction was included, for example the chain ID, the block level, etc. + - `completed`: `true` if the the transaction is over - `currentConfirmation`: the current number of confirmations, if more than 1 confirmation was requested (otherwise 1) - - ## Originating a contract +In the Tezos lingo, "origination" means "deployment of a contract to the blockchain". Before Taquito, this was a painstaking work as it required to interact directly with a Tezos node and type commands to originate the contract. But not anymore! With Taquito, you only need the Michelson code and the initial storage to make it happen. - -In the Tezos lingo, "origination" means "deployment of a contract to the blockchain". Before Taquito, this was painstaking work as it required to interact directly with a Tezos node and type commands to originate the contract. But not anymore! With Taquito, you only need the Michelson code and the initial storage to make it happen. - - - -First, you need to get the code of the contract. If you deploy a contract you wrote, then you already have the code. If you want to deploy a copy of a contract, you can easily get its code with the following method: - - +First, you need to get the code of the contract. If you deploy a contract you wrote, then you already have the code. If you want to deploy the copy of a contract, you cand easily get its code with the following method: ```js - const contract = await Tezos.contract.at(address); const storage = await contract.storage(); const code = contract.script.code; - ``` - - If you get the contract code through this method, it will already be properly formatted for origination. If you have a `.tz` file, you can use the `michel-codec` package to encode it properly: - - ```js import { Parser } from '@taquito/michel-codec'; const parser = new Parser(); const parsedMichelson = parser.parseScript(michelsonCode); - ``` +> Note: Since Taquito version 6.3.2, you can also passed plain Michelson to the parser without formatting it. +For example, this very simple Michelson contract: -> Note: Since Taquito version 6.3.2, you can also pass plain Michelson to the parser without formatting it. - - - -For example, this straightforward Michelson contract: - - - -```js - +```bash parameter int; storage int; code { DUP ; CDR ; SWAP ; CAR ; ADD ; NIL operation ; PAIR } - ``` - - will be encoded and formatted this way: - - -```js +```json [ { "prim": "parameter", @@ -774,36 +475,22 @@ will be encoded and formatted this way: ] } ] - ``` +> Note: make sure you have three objects in the main array with the following properties: one with "prim":"parameter", one with "prim":"storage" and one with "prim":"code". - -> Note: make sure you have three objects in the main array with the following properties: one with "prim": "parameter", one with "prim": "storage", and one with "prim": "code". - - - -Second, you need the initial storage. According to your smart contract's storage type, you must include a default storage to initialize the contract during the origination. The default (or initial) storage holds the values that will be saved into the smart contract when created and stored on the blockchain. For simple contracts like the one above, this will be very easy: - - +Second, you need the initial storage. According to the storage type of your smart contract, you must include a default storage to initialize the contract during the origination. The default (or initial) storage holds the values that will be saved into the smart contract when it is created and stored on the blockchain. For simple contracts like the one above, this will be very easy: ```js - { code: parsedMichelson, storage: 2 } - ``` - - If you use the Ligo programming language and the storage is a record, you can simply use a JavaScript object that Taquito will encode according to the storage type: - - ```js - { code: parsedMichelson, storage: { @@ -812,17 +499,11 @@ If you use the Ligo programming language and the storage is a record, you can si paused: false } } - ``` - - In case of a map or a big map, you must import `MichelsonMap` from `@taquito/taquito` and use it to initialize the map: - - ```js - import { MichelsonMap } from "@taquito/taquito"; { @@ -832,17 +513,11 @@ import { MichelsonMap } from "@taquito/taquito"; owner: "tz1..." } } - ``` - - You can even initialize your map/big map with key/value pairs if you wish: - - ```js - import { MichelsonMap } from "@taquito/taquito"; { @@ -856,33 +531,13 @@ import { MichelsonMap } from "@taquito/taquito"; owner: "tz1..." } } - ``` - - Now, we have everything we need to originate a new contract! - - -Before doing so, we have to choose the network we want to originate it to: - - - -```js - -Tezos.setProvider({ rpc: 'https://testnet-tezos.giganode.io}' }); - -``` - - - -Then, we can start the process. The Tezos singleton has a `wallet` property with an `originate` method. This is the one that must be called to originate the contract. This method takes an argument, an object with two properties: `code` that holds the parsed Michelson code to be originated and `storage` that has the initial storage. After passing this argument, you call the `send()` method to originate the contract. - - +Then, we can start the process. The TezosToolkit has a `wallet` property with an `originate` method. This is the one that must be called to originate the contract. This method takes an argument, an object with two properties: `code` that holds the parsed Michelson code to be originated and `storage` that holds the initial storage. After passing this argument, you call the `send()` method to originate the contract. ```js - const op = await Tezos.wallet .originate({ code: parsedMichelson, @@ -892,153 +547,72 @@ const op = await Tezos.wallet const opHash = op.opHash; const contract = await op.contract(); console.log('Contract address:', contract.address); - ``` - - -The origination function returns an instance of the `OriginationWalletOperation` class containing the hash of the transaction under the `opHash` property. You can call the `contract()` method on this instance to wait for the contract to be confirmed. Once confirmed, the method returns a contract abstraction that you can use to get the contract address or interact with the contract. - - +The origination function returns an instance of the `OriginationWalletOperation` class that contains, among others, the hash of the transaction under the `opHash` property. You can call the `contract()` method on this instance to wait for the contract to be confirmed. Once confirmed, the method returns a contract abstraction that you can use, for example to get the contract address or to interact with the contract. ## Working with the contract abstraction instance - - -Taquito makes interacting with smart contracts very easy! With only the smart contract address you want to interact with, you can create a `contract abstraction` and use it for subsequent interactions. You will not only be able to call entrypoints of the smart contract but also fetch its storage! - - +Taquito makes interacting with smart contracts very easy! With only the address of the smart contract you want to interact with, you can create a `contract abstraction` and use it for subsequent interactions. You will not only be able to call entrypoints of the smart contract but also fetch its storage! ### - Instance creation - - -First, you need to import the Tezos singleton object or instantiate the Tezos toolkit and configure the RPC host you want to connect to: - - - -```js - -import { Tezos } from '@taquito/taquito'; - -Tezos.setProvider({ rpc: 'https://YOUR_PREFERRED_RPC_URL' }); - -``` - - - -_or_ - - +First, you need to import TezosToolkit and instantiate it with the RPC host you want to connect to: ```js - import { TezosToolkit } from '@taquito/taquito'; -const Tezos = new TezosToolkit(); - -Tezos.setProvider({ rpc: 'https://YOUR_PREFERRED_RPC_URL' }); - +const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL'); ``` - - -Next, you can use the singleton object to create the smart contract instance with the contract address: - - +Next, you can use the `TezosToolkit` instance to create the smart contract instance with the contract address: ```js - const contractInstance = await Tezos.wallet.at('contract address'); - ``` - - This returns the contract abstraction that you can now use to interact with the contract. - - ### - Contract properties and methods - - -Now, let's observe the contract abstraction that we obtained. It's an instance of the [ContractAbstraction class](https://tezostaquito.io/typedoc/classes/_taquito_taquito.contractabstraction.html) with different properties and methods: - - +Now, let's observe the contract abstraction that we obtained. It's an instance of the [ContractAbstraction class](https://tezostaquito.io/typedoc/classes/_taquito_taquito.contractabstraction-2.html) with different properties and methods: _Properties:_ - - 1. `address`: a string containing the address of the smart contract. - 2. `methods`: an object whose methods are named after the contract entrypoints (if the entrypoints are not annotated, the methods will be numbers). - 3. `parameterSchema`: an instance of the [Parameter class](https://github.com/ecadlabs/taquito/blob/d424fa178a95675920b21c8e8c228fbe0e7df36e/packages/taquito-michelson-encoder/src/schema/parameter.ts) with two useful methods: `hasAnnotation` tells you if the entrypoints are annotated and `isMultipleEntryPoint` tells you if the contract has multiple entrypoints (if _false_, you can interact with the contract with `.methods.default()`). - 4. `schema`: an instance of the [Schema class](https://github.com/ecadlabs/taquito/blob/d424fa178a95675920b21c8e8c228fbe0e7df36e/packages/taquito-michelson-encoder/src/schema/storage.ts#L15) with various methods to get more information about the storage or the structure of the contract. - 5. `script`: an object with two properties: `code` is an array with three objects, each representing the JSON formatted Michelson code for the parameter, storage and code (respectively), `storage` is the JSON formatted Michelson code for the storage of the contract. - - _Methods:_ - - -1. `bigMap`: a promise that takes a key from the big map in the storage as a parameter and returns the value associated with that key. - -2. `storage`: a promise that returns a representation of the storage value(s). The storage is represented as an object whose keys are the name of the values. `map` and `big map` values are returned as an instance of the [BigMapAbstraction](https://tezostaquito.io/typedoc/classes/_taquito_taquito.bigmapabstraction.html) while numeric values are returned as BigNumber. - - +1. `bigMap`: a promise that takes a key from the big map in the storage as a parameter and that returns the value associated to that key. +2. `storage`: a promise that returns a representation of the storage value(s). The storage is represented as an object whose keys are the name of the values. `map` and `big map` values are returned as an instance of the [BigMapAbstraction](https://tezostaquito.io/typedoc/classes/_taquito_taquito.bigmapabstraction-1.html) while numeric values are returned as BigNumber. ## The Wallet instance +The TezosToolkit instance exposes a _wallet_ property in the same fashion it exposes the _contract_ property you may be used to. This property is an instance of the [Wallet class](https://tezostaquito.io/typedoc/classes/_taquito_taquito.wallet-2.html) with a few useful methods you want to check out. It becomes available as soon as you set up a wallet by calling `Tezos.setProvider({wallet})` or `Tezos.setWalletProvider(wallet)`. Here is a list of the methods and a basic description of their function before seeing some examples: - -The Tezos singleton object exposes a _wallet_ property in the same fashion it exposes the _contract_ property to which you may be used. This property is an instance of the [Wallet class](https://tezostaquito.io/typedoc/classes/_taquito_taquito.wallet.html) with a few useful methods you want to check out. It becomes available as soon as you set up a wallet by calling `Tezos.setProvider({wallet})` or `Tezos.setWalletProvider(wallet)`. Here is a list of the methods and a basic description of their function before seeing some examples: - - - -1. `at`: creates a smart contract abstraction for the address specified - +1. `at`: creates an smart contract abstraction for the address specified 2. `batch`: creates a batch of operations - 3. `originate`: originates a new contract - 4. `pkh`: retrieves the private key hash of the account that is currently in use by the wallet - -5. `registerDelegate`: registers the current address as a delegate - +5. `registerDelegate`: registers the current address as delegate 6. `setDelegate`: sets the delegate for a contract - -7. `transfer`: transfers Tezos tokens from the current address to a specific address or call a smart contract - - +7. `transfer`: transfers Tezos tokens from current address to a specific address or call a smart contract We have already seen the `at` method of the Wallet instance earlier in order to create the contract abstraction: - - ```js - -const contract = await Tezos.wallet.at('KT1XW9MAxDqF4LwVps86meQ5ihEXyAepmZDm'); - +const contract = await Tezos.wallet.at('KT1TMZhfoYtpjbGG1nLjs7SZioFM1njsRwkP'); ``` +The method is a promise that expects the address of the contract for which you want to create the abstraction. - -The method is a promise that expects the contract's address for which you want to create the abstraction. - - - -This feature may be a lesser-known feature of Taquito, but it is possible to send operations batches at once! This operation is what the `batch` method does. There are two different ways of using it: you can either pass the operations to send as an array of objects in the parameter of the method or you can use the `withTransfer`, `withContractCall`, `withTransfer`, `withOrigination` or `withDelegation` methods it provides: - - +This may be a lesser-known feature of Taquito but it is possible to send batches of operations at once! This is what the `batch` method does. There are two different ways of using it: you can either pass the operations to send as an array of objects in the parameter of the method or you can use the `withTransfer`, `withContractCall`, `withTransfer`, `withOrigination` or `withDelegation` methods it provides: ```js - const op = await Tezos.wallet .batch([ { @@ -1056,17 +630,11 @@ const op = await Tezos.wallet .send(); await op.confirmation(); - ``` - - or - - ```js - const batch = Tezos.wallet .batch() .withTransfer({ to: 'tz1...', amount: 2 }) @@ -1080,22 +648,15 @@ const batch = Tezos.wallet const batchOp = await batch.send(); await batchOp.confirmation(); - ``` - +> Note: you cannot make a contract call with the first method. As with other operations, you must call the `confirmation` method on the returned operation to wait for the operation to be confirmed. -*See [the Batch API documentation](batch-api.md) for more examples using the `batch` method.* - - -We already checked the `originate` method earlier, and it takes an object as a parameter with two properties: `code` with the Michelson code of the contract in a JSON format and storage with the initial storage. - - +We already checked the `originate` method earlier, it takes an object as a parameter with two properties: `code` with the Michelson code of the contract in a JSON format and storage with the initial storage. ```js - const op = await Tezos.wallet .originate({ code: parsedMichelson, @@ -1105,94 +666,55 @@ const op = await Tezos.wallet const opHash = op.opHash; const contract = await op.contract(); console.log('Contract address:', contract.address); - ``` - - -Next, the `pkh` method allows you to retrieve the public key hash currently associated with the chosen wallet. Because the key is saved earlier in the process, you can pass an object as a parameter with a `forceRefetch` property set to **true** if you want Taquito to fetch the key and be sure you have the right one: - - +Next, the `pkh` method allows you to retrieve the public key hash currently associated with the chosen wallet. Because the key is saved earlier in the process, you can pass an object as a parameter with a `forceRefetch` property set to **true** if you want Taquito to refetch the key and be sure you have the right one: ```js - // to fetch the current public key hash const pkh = await Tezos.wallet.pkh(); // to force Taquito to retrieve the current public key hash const refetchedPkh = await Tezos.wallet.pkh({ forceRefetch: true }); - ``` - - The Wallet instance also provides two methods to deal with delegate things on Tezos: the `registerDelegate` method takes the current address and registers it as a new delegate: - - ```js - const op = await Tezos.wallet.registerDelegate().send(); await op.confirmation(); - ``` - - The `setDelegate` method takes an object as a parameter with a `delegate` property set to the address you want to set as a delegate: - - ```js - const op = await Tezos.wallet.setDelegate({ delegate: 'tz1...' }).send(); await op.confirmation(); - ``` - - -Finally, the `transfer` method allows transfers between implicit accounts and calls to a smart contract. It takes an object as a parameter with four properties: `amount`, `mutez`, `parameter` and `to`. Here is how to use it to transfer tokens between two addresses: - - +Finally, the `transfer` method allows transfers between implicit accounts but also calls to a smart contract. It takes an object as a parameter with four properties: `amount`, `mutez`, `parameter` and `to`. Here is how to use it to transfer tokens between two addresses: ```js - const op = await Tezos.wallet.transfer({ to: 'tz1...', amount: 2 }).send(); await op.confirmation(); - ``` - - If you want to send a transaction to a contract, the process is very similar with the addition of the `parameter` property that must point to the entrypoint you are targetting and the value you want to pass: - - ```js - const op = await Tezos.wallet .transfer({ to: 'KT1...', parameter: { entrypoint: 'increment', value: 2 } }) .send(); await op.confirmation(); - ``` - - ## Choosing between the Contract API and the Wallet API +In most cases, you want to use the Wallet API when you give the users of your dapp the freedom to choose the wallet of their choice to interact with it. The Contract API is more suited for back-end applications and forging/signing offline (for example using the `inMemorySigner`). You would also use the Contract API to build a wallet. +The Wallet API introduces a new method to process operation confirmations. Observables. When the dApp sends the operation to the wallet, the dApp will “listen” for when the operation appears in a block. The Wallet API observable will “emit” a stream of events as they occur. Orphan/Uncle block detection is also surfaced when observing confirmations for an operation. -In most cases, you want to use the Wallet API when you give the users of your dapp the freedom to choose the wallet of their choice to interact with it. The Contract API is more suited for back-end applications and forging/signing offline (for example, using the `inMemorySigner`). You would also use the Contract API to build a wallet. - - - -The Wallet API introduces a new method to process operation confirmations. Observables. When the dApp sends the operation to the wallet, the dApp will "listen" when the operation appears in a block. The Wallet API observable will "emit" a stream of events as they occur. Orphan/Uncle block detection is also surfaced when observing confirmations for an operation. - - - -The duties of a Wallet are much broader than the very narrow duty of signing operation byte sequences. That's one reason why we built the Wallet API. It offers a better user experience by doing less. It allows Wallets to carry out all the duties expected of a Wallet. \ No newline at end of file +The duties of a Wallet are much broader than the very narrow duty of signing operation byte sequences. That’s one reason why we built the Wallet API. It offers a better user experience by doing less. It allows Wallets to carry out all the duties expected of a Wallet. diff --git a/docs/web3js_taquito.md b/docs/web3js_taquito.md index 607625b365..c77b61e50a 100644 --- a/docs/web3js_taquito.md +++ b/docs/web3js_taquito.md @@ -4,7 +4,7 @@ id: web3js_taquito author: Claude Barde --- -Web3js and Taquito have a common goal: connecting dapps to the Ethereum and Tezos blockchain (respectively) and thus implement similar approaches. However, these approaches are also different due to the nature of Ethereum and the Tezos blockchains. +Web3js and Taquito have a common goal: connecting dapps to the Ethereum and Tezos blockchain (respectively) and thus implement similar approaches. However, these approaches are also different due to the nature of the Ethereum and the Tezos blockchains. A comparison of the methods implemented by Web3js and Taquito can put in perspective their similarities and differences. @@ -16,7 +16,7 @@ A comparison of the methods implemented by Web3js and Taquito can put in perspec **Taquito**: `npm install @taquito/taquito` -Web3js comes as a single package containing all the necessary tools to connect to the Ethereum blockchain, while Taquito is made of various packages that you can install and import whenever you need them. +Web3js comes as a single package containing all the necessary tools to connect to the Ethereum blockchain while Taquito is made of various packages that you can install and import whenever you need them. ## Connection @@ -33,11 +33,11 @@ const web3 = new Web3(Web3.providers.HttpProvider('http://localhost:9545')); ```js import { TezosToolkit } from '@taquito/taquito'; -const Tezos = new TezosToolkit('http://localhost:8732'); +const Tezos = new TezosToolkit("http://localhost:9545"); ``` -The Web3js package exports a class that needs to be instantiated before being used. The difference between _Web3_ and _web3_ is a common source of Ethereum development errors. -Taquito also exports a class named `TezosToolkit` that needs to be instantiated before being used, similar to the Web3js code. +The Web3js package exports a class that needs to be instantiated before being used. The difference between _Web3_ and _web3_ is a common source of errors in Ethereum development. +Taquito also exports a class named `TezosToolkit` that needs to be instantiated before being used, which is similar to the Web3js code. ## Get account balance @@ -111,7 +111,7 @@ const counter = await contract.storage(); This is another point that shows how different the Ethereum and the Tezos blockchains are. On Ethereum, the contract has to implement getter functions to return values from its storage and make them available to dapps. -On Tezos, the whole storage is always available, and developers don't have to add view functions to their contracts to make the storage values available. +On Tezos, the whole storage is always available and developers don't have to add view functions to their contracts to make the values in the storage available. ## Call the increment method on the contract instance @@ -128,7 +128,7 @@ const op = await contract.methods.increment(1).send(); await op.confirmation(); ``` -Calling functions/entrypoints is very similar to Ethereum and Tezos. Just remember that the function doesn't return any value from the blockchain on Tezos. +Calling functions/entrypoints is very similar on Ethereum and Tezos. Just remember that the function doesn't return any value from the blockchain on Tezos. ## Deploy/originate a smart contract @@ -157,7 +157,7 @@ const contract = await op.contract(); const contractAddress = contract.address; ``` -Both functions return a new instance of the contract from which the newly deployed/originated contract address can be found. +Both functions returns a new instance of the contract from which the address of the newly deployed/originated contract can be found. ## Check if the wallet injected an outdated version of the library in the browser @@ -178,7 +178,7 @@ if(typeof window.web3 !== undefined){ Nope; ``` -## Full code to connect to a local node and send a transaction to a smart contract +## Full code to connect to the network and send a transaction to a smart contract **Web3js**: diff --git a/example/data/knownBigMapContract.ts b/example/data/knownBigMapContract.ts deleted file mode 100644 index 5737282890..0000000000 --- a/example/data/knownBigMapContract.ts +++ /dev/null @@ -1,2523 +0,0 @@ -export const knownBigMapContract = [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%0'] }, - { prim: 'nat', annots: ['%1'] } - ], - annots: ['%approve'] - }, - { prim: 'nat', annots: ['%burn'] } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%0'] }, - { prim: 'address', annots: ['%1'] } - ] - }, - { prim: 'contract', args: [{ prim: 'nat' }], annots: ['%2'] } - ], - annots: ['%getAllowance'] - }, - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%0'] }, - { prim: 'contract', args: [{ prim: 'nat' }], annots: ['%1'] } - ], - annots: ['%getBalance'] - } - ] - } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'unit', annots: ['%0'] }, - { prim: 'contract', args: [{ prim: 'nat' }], annots: ['%1'] } - ], - annots: ['%getTotalSupply'] - }, - { prim: 'nat', annots: ['%mint'] } - ] - }, - { - prim: 'or', - args: [ - { prim: 'address', annots: ['%setOwner'] }, - { prim: 'bool', annots: ['%setPause'] } - ] - } - ] - } - ] - }, - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [{ prim: 'address', annots: ['%0'] }, { prim: 'address', annots: ['%1'] }] - }, - { prim: 'nat', annots: ['%2'] } - ], - annots: ['%transfer'] - } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'big_map', - args: [ - { prim: 'address' }, - { - prim: 'pair', - args: [ - { - prim: 'map', - args: [{ prim: 'address' }, { prim: 'nat' }], - annots: ['%allowances'] - }, - { prim: 'nat', annots: ['%balance'] } - ] - } - ], - annots: ['%ledger'] - }, - { prim: 'address', annots: ['%owner'] } - ] - }, - { - prim: 'pair', - args: [{ prim: 'bool', annots: ['%paused'] }, { prim: 'nat', annots: ['%totalSupply'] }] - } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'AMOUNT' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [{ prim: 'string' }, { string: 'This contract do not accept token' }] - }, - { prim: 'FAILWITH' } - ], - [{ prim: 'PUSH', args: [{ prim: 'unit' }, { prim: 'Unit' }] }] - ] - }, - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { - prim: 'DIP', - args: [[{ prim: 'DUP' }, { prim: 'CDR' }]] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '6' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '6' }] } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [{ int: '2' }, [{ prim: 'DUP' }]] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'Contract paused' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'unit' }, - { prim: 'Unit' } - ] - } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '3' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] } - ] - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] } - ] - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [{ int: '4' }, [{ prim: 'DUP' }]] - }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [{ prim: 'DUP' }], - [ - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'MAP FIND' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { - prim: 'DIP', - args: [[{ prim: 'DUP' }]] - }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - { int: '4' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '4' }] }, - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { - prim: 'DIP', - args: [ - { int: '8' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '8' }] }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '7' }, - [{ prim: 'DUP' }] - ] - }, - { - prim: 'DIG', - args: [{ int: '7' }] - }, - { prim: 'SOME' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { - int: '3' - }, - [ - { - prim: - 'DUP' - } - ] - ] - }, - { - prim: 'DIG', - args: [ - { int: '3' } - ] - }, - { prim: 'CAR' } - ] - ] - } - ] - ] - }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SOME' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '5' }, - [{ prim: 'DUP' }] - ] - }, - { - prim: 'DIG', - args: [{ int: '5' }] - }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SENDER' }, - { prim: 'UPDATE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [[{ prim: 'DROP' }]] - } - ] - ] - }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { - prim: 'DIP', - args: [ - [{ prim: 'DROP', args: [{ int: '7' }] }] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [{ prim: 'DROP', args: [{ int: '2' }] }] - ] - } - ], - [ - { prim: 'DUP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '5' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '5' }] } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'Contract paused' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'unit' }, - { prim: 'Unit' } - ] - } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] } - ] - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [{ int: '2' }, [{ prim: 'DUP' }]] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'You must be the owner of the contract to burn tokens' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '0' }] - }, - { - prim: 'EMPTY_MAP', - args: [ - { prim: 'address' }, - { prim: 'nat' } - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - { int: '3' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '3' }, - [{ prim: 'DUP' }] - ] - }, - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [{ prim: 'DUP' }], - [ - { - prim: 'DIP', - args: [ - [{ prim: 'DUP' }] - ] - }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [{ prim: 'DUP' }] - ] - }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DROP', - args: [ - { int: '2' } - ] - } - ] - ] - } - ] - ] - }, - { - prim: 'DIP', - args: [ - { int: '5' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '5' }] }, - { - prim: 'DIP', - args: [ - [{ prim: 'DUP' }, { prim: 'CDR' }] - ] - }, - { prim: 'COMPARE' }, - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'Owner balance is too low' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'unit' }, - { prim: 'Unit' } - ] - } - ] - ] - }, - { - prim: 'DIP', - args: [[{ prim: 'DUP' }]] - }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '7' }, - [{ prim: 'DUP' }] - ] - }, - { - prim: 'DIG', - args: [{ int: '7' }] - } - ] - ] - }, - { prim: 'SUB' }, - { prim: 'ABS' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - { int: '6' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '6' }] }, - { - prim: 'DIP', - args: [ - { int: '7' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '7' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - [{ prim: 'DUP' }] - ] - }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { - int: '7' - }, - [ - { - prim: - 'DUP' - } - ] - ] - }, - { - prim: 'DIG', - args: [ - { int: '7' } - ] - }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - } - ] - ] - }, - { prim: 'UPDATE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { - prim: 'DIP', - args: [[{ prim: 'DUP' }]] - }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'PUSH', - args: [{ prim: 'int' }, { int: '1' }] - }, - { prim: 'SWAP' }, - { prim: 'SUB' }, - { prim: 'ABS' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - { int: '6' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '6' }] }, - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [[{ prim: 'DUP' }]] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DROP', - args: [{ int: '6' }] - } - ] - ] - } - ] - ] - }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { - prim: 'DIP', - args: [ - [{ prim: 'DROP', args: [{ int: '6' }] }] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ], - [ - { prim: 'DUP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '6' }, - [{ prim: 'DUP' }] - ] - }, - { - prim: 'DIG', - args: [{ int: '6' }] - } - ] - ] - }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'MAP FIND' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [[{ prim: 'DUP' }, { prim: 'CAR' }]] - }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'MAP FIND' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DUP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'PUSH', - args: [ - { prim: 'mutez' }, - { int: '0' } - ] - } - ] - ] - }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'SWAP' }, - { prim: 'CONS' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DROP', args: [{ int: '3' }] }, - { - prim: 'DIP', - args: [ - { int: '6' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '6' }] } - ] - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [{ prim: 'DROP', args: [{ int: '2' }] }] - ] - } - ], - [ - { prim: 'DUP' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { - prim: 'DIP', - args: [[{ prim: 'DUP' }, { prim: 'CDR' }]] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '6' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '6' }] } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'MAP FIND' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [[{ prim: 'DUP' }]] - }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'PUSH', - args: [ - { prim: 'mutez' }, - { int: '0' } - ] - } - ] - ] - }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'SWAP' }, - { prim: 'CONS' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DROP', args: [{ int: '2' }] }, - { - prim: 'DIP', - args: [ - { int: '6' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '6' }] } - ] - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [{ prim: 'DROP', args: [{ int: '2' }] }] - ] - } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ], - [ - { prim: 'DUP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '5' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '5' }] } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { - prim: 'PUSH', - args: [ - { prim: 'mutez' }, - { int: '0' } - ] - } - ] - ] - }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'SWAP' }, - { prim: 'CONS' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DROP' }, - { - prim: 'DIP', - args: [ - { int: '5' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '5' }] } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ], - [ - { prim: 'DUP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '5' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '5' }] } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'Contract paused' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'unit' }, - { prim: 'Unit' } - ] - } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] } - ] - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [{ int: '2' }, [{ prim: 'DUP' }]] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'You must be the owner of the contract to mint tokens' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '0' }] - }, - { - prim: 'EMPTY_MAP', - args: [ - { prim: 'address' }, - { prim: 'nat' } - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - { int: '3' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '3' }, - [{ prim: 'DUP' }] - ] - }, - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [{ prim: 'DUP' }], - [ - { - prim: 'DIP', - args: [ - [{ prim: 'DUP' }] - ] - }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [{ prim: 'DUP' }] - ] - }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DROP', - args: [ - { int: '2' } - ] - } - ] - ] - } - ] - ] - }, - { prim: 'DUP' }, - { - prim: 'DIP', - args: [[{ prim: 'DUP' }]] - }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '6' }, - [{ prim: 'DUP' }] - ] - }, - { - prim: 'DIG', - args: [{ int: '6' }] - } - ] - ] - }, - { prim: 'ADD' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - { int: '5' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '5' }] }, - { - prim: 'DIP', - args: [ - { int: '6' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '6' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - [{ prim: 'DUP' }] - ] - }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { - int: '6' - }, - [ - { - prim: - 'DUP' - } - ] - ] - }, - { - prim: 'DIG', - args: [ - { int: '6' } - ] - }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - } - ] - ] - }, - { prim: 'UPDATE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { - prim: 'DIP', - args: [[{ prim: 'DUP' }]] - }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'PUSH', - args: [{ prim: 'int' }, { int: '1' }] - }, - { prim: 'ADD' }, - { prim: 'ABS' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - { int: '5' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '5' }] }, - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [[{ prim: 'DUP' }]] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DROP', - args: [{ int: '5' }] - } - ] - ] - } - ] - ] - }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { - prim: 'DIP', - args: [ - [{ prim: 'DROP', args: [{ int: '6' }] }] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ], - [ - { prim: 'DUP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '5' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '5' }] } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'You must be the owner of the contract to transfer ownership' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DUP' }, - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { - prim: 'DIP', - args: [ - { int: '4' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '4' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [{ prim: 'DROP', args: [{ int: '5' }] }] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ], - [ - { prim: 'DUP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '5' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '5' }] } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'You must be the owner of the contract to pause the contract' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DUP' }, - { - prim: 'DIP', - args: [ - { int: '2' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { - prim: 'DIP', - args: [ - { int: '4' }, - [{ prim: 'DUP' }] - ] - }, - { prim: 'DIG', args: [{ int: '4' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [{ prim: 'DROP', args: [{ int: '5' }] }] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DROP' }]] } - ], - [ - { prim: 'DUP' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }, { prim: 'CAR' }, { prim: 'CDR' }]] }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '3' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '3' }] } - ] - ] - }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [{ int: '3' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'IF', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'Contract paused' }] }, - { prim: 'FAILWITH' } - ], - [{ prim: 'PUSH', args: [{ prim: 'unit' }, { prim: 'Unit' }] }] - ] - }, - { prim: 'DIP', args: [{ int: '4' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '4' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '3' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '3' }] } - ] - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '2' }] } - ] - ] - }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [{ int: '5' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '5' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '4' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '4' }] } - ] - ] - }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [{ prim: 'DUP' }], - [ - { prim: 'DIP', args: [{ int: '5' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '5' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '3' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '3' }] } - ] - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '2' }] } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PUSH', args: [{ prim: 'bool' }, { prim: 'False' }] }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' } - ] - ] - }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [{ int: '3' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DIP', args: [{ int: '3' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [{ prim: 'string' }, { string: 'MAP FIND' }] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [{ prim: 'string' }, { string: 'MAP FIND' }] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [{ int: '5' }, [{ prim: 'DUP' }]] - }, - { prim: 'DIG', args: [{ int: '5' }] } - ] - ] - }, - { prim: 'COMPARE' }, - { prim: 'GE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [[{ prim: 'DROP', args: [{ int: '2' }] }]] - } - ], - [ - { prim: 'DUP' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'PUSH', args: [{ prim: 'bool' }, { prim: 'True' }] }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'DIP', args: [[{ prim: 'DROP', args: [{ int: '6' }] }]] }, - { - prim: 'IF', - args: [ - [{ prim: 'PUSH', args: [{ prim: 'unit' }, { prim: 'Unit' }] }], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'Sender not allowed to spend token from source' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIP', args: [{ int: '6' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '6' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '3' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [{ prim: 'string' }, { string: 'MAP FIND' }] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DIP', args: [{ int: '5' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '5' }] }, - { prim: 'DIP', args: [[{ prim: 'DUP' }, { prim: 'CDR' }]] }, - { prim: 'COMPARE' }, - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'Source balance is too low' } - ] - }, - { prim: 'FAILWITH' } - ], - [{ prim: 'PUSH', args: [{ prim: 'unit' }, { prim: 'Unit' }] }] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '7' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '7' }] } - ] - ] - }, - { prim: 'SUB' }, - { prim: 'ABS' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [{ int: '6' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '6' }] }, - { prim: 'DIP', args: [{ int: '10' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '10' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [{ int: '7' }, [{ prim: 'DUP' }]] - }, - { prim: 'DIG', args: [{ int: '7' }] }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - } - ] - ] - }, - { prim: 'UPDATE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '0' }] }, - { prim: 'EMPTY_MAP', args: [{ prim: 'address' }, { prim: 'nat' }] }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [{ int: '10' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '10' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [{ prim: 'DUP' }], - [ - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [[{ prim: 'DROP', args: [{ int: '2' }] }]] - } - ] - ] - }, - { prim: 'DUP' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '11' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '11' }] } - ] - ] - }, - { prim: 'ADD' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [{ int: '4' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '4' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '11' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '11' }] } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [{ int: '5' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '5' }] }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [{ prim: 'DUP' }], - [ - { prim: 'DIP', args: [{ int: '6' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '6' }] }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [{ int: '14' }, [{ prim: 'DUP' }]] - }, - { prim: 'DIG', args: [{ int: '14' }] } - ] - ] - }, - { prim: 'SUB' }, - { prim: 'ABS' }, - { prim: 'SOME' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [{ int: '7' }, [{ prim: 'DUP' }]] - }, - { prim: 'DIG', args: [{ int: '7' }] }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SENDER' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [[{ prim: 'DROP', args: [{ int: '2' }] }]] - } - ] - ] - }, - { prim: 'DIP', args: [{ int: '5' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '5' }] }, - { prim: 'DIP', args: [{ int: '16' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '16' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'SOME' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [{ int: '6' }, [{ prim: 'DUP' }]] - }, - { prim: 'DIG', args: [{ int: '6' }] }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - } - ] - ] - }, - { prim: 'UPDATE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [{ int: '11' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '11' }] }, - { prim: 'DIP', args: [{ int: '7' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '7' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [{ int: '17' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '17' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [{ int: '5' }, [{ prim: 'DUP' }]] }, - { prim: 'DIG', args: [{ int: '5' }] }, - { prim: 'SOME' }, - { - prim: 'DIP', - args: [ - [ - { - prim: 'DIP', - args: [{ int: '2' }, [{ prim: 'DUP' }]] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - } - ] - ] - }, - { prim: 'UPDATE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DROP', args: [{ int: '11' }] }]] } - ] - ] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'DROP', args: [{ int: '8' }] }]] }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' }, - { prim: 'DIP', args: [[{ prim: 'DROP', args: [{ int: '2' }] }]] } - ] - ] - }, - { prim: 'DIP', args: [[{ prim: 'DROP', args: [{ int: '3' }] }]] } - ] - ] - } -]; diff --git a/example/data/knownContract.ts b/example/data/knownContract.ts deleted file mode 100644 index 5d84aa96de..0000000000 --- a/example/data/knownContract.ts +++ /dev/null @@ -1,323 +0,0 @@ -export const knownContract = [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { prim: 'unit', annots: ['%default'] }, - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%counter'] }, - { - prim: 'or', - args: [ - { - prim: 'lambda', - args: [ - { prim: 'unit' }, - { prim: 'list', args: [{ prim: 'operation' }] } - ], - annots: ['%operation'] - }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%threshold'] }, - { prim: 'list', args: [{ prim: 'key' }], annots: ['%keys'] } - ], - annots: ['%change_keys'] - } - ], - annots: [':action'] - } - ], - annots: [':payload'] - }, - { - prim: 'list', - args: [{ prim: 'option', args: [{ prim: 'signature' }] }], - annots: ['%sigs'] - } - ], - annots: ['%main'] - } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%stored_counter'] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%threshold'] }, - { prim: 'list', args: [{ prim: 'key' }], annots: ['%keys'] } - ] - } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - [[{ prim: 'DUP' }, { prim: 'CAR' }, { prim: 'DIP', args: [[{ prim: 'CDR' }]] }]], - { - prim: 'IF_LEFT', - args: [ - [{ prim: 'DROP' }, { prim: 'NIL', args: [{ prim: 'operation' }] }, { prim: 'PAIR' }], - [ - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'AMOUNT' }, - [ - [{ prim: 'COMPARE' }, { prim: 'EQ' }], - { prim: 'IF', args: [[], [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]]] } - ], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DIP', args: [[{ prim: 'SWAP' }]] }, - { - prim: 'DIP', - args: [ - [ - [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'CDR' }]] } - ] - ], - { prim: 'DUP' }, - { prim: 'SELF' }, - { prim: 'ADDRESS' }, - { prim: 'PAIR' }, - { prim: 'PACK' }, - { - prim: 'DIP', - args: [ - [ - [ - [ - { prim: 'DUP' }, - { prim: 'CAR', annots: ['@counter'] }, - { prim: 'DIP', args: [[{ prim: 'CDR' }]] } - ] - ], - { prim: 'DIP', args: [[{ prim: 'SWAP' }]] } - ] - ] - }, - { prim: 'SWAP' } - ] - ] - }, - [ - [ - { prim: 'DUP' }, - { prim: 'CAR', annots: ['@stored_counter'] }, - { prim: 'DIP', args: [[{ prim: 'CDR' }]] } - ] - ], - { prim: 'DIP', args: [[{ prim: 'SWAP' }]] }, - [ - [{ prim: 'COMPARE' }, { prim: 'EQ' }], - { prim: 'IF', args: [[], [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]]] } - ], - { prim: 'DIP', args: [[{ prim: 'SWAP' }]] }, - [ - [ - { prim: 'DUP' }, - { prim: 'CAR', annots: ['@threshold'] }, - { prim: 'DIP', args: [[{ prim: 'CDR', annots: ['@keys'] }]] } - ] - ], - { - prim: 'DIP', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '0' }], annots: ['@valid'] }, - { prim: 'SWAP' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'DIP', args: [[{ prim: 'SWAP' }]] }, - { prim: 'SWAP' }, - { - prim: 'IF_CONS', - args: [ - [ - [ - { - prim: 'IF_NONE', - args: [ - [{ prim: 'SWAP' }, { prim: 'DROP' }], - [ - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - { int: '2' }, - [ - [ - { - prim: - 'DIP', - args: [ - [ - { - prim: - 'DUP' - } - ] - ] - }, - { - prim: - 'SWAP' - } - ] - ] - ] - }, - [ - [ - { - prim: 'DIP', - args: [ - { - int: '2' - }, - [ - { - prim: - 'DUP' - } - ] - ] - }, - { - prim: 'DIG', - args: [ - { int: '3' } - ] - } - ], - { - prim: 'DIP', - args: [ - [ - { - prim: - 'CHECK_SIGNATURE' - } - ] - ] - }, - { prim: 'SWAP' }, - { - prim: 'IF', - args: [ - [ - { - prim: - 'DROP' - } - ], - [ - { - prim: - 'FAILWITH' - } - ] - ] - } - ], - { - prim: 'PUSH', - args: [ - { prim: 'nat' }, - { int: '1' } - ] - }, - { - prim: 'ADD', - annots: ['@valid'] - } - ] - ] - } - ] - ] - } - ] - ], - [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]] - ] - }, - { prim: 'SWAP' } - ] - ] - } - ] - ] - }, - [ - [{ prim: 'COMPARE' }, { prim: 'LE' }], - { prim: 'IF', args: [[], [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]]] } - ], - { prim: 'IF_CONS', args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] }, - { prim: 'DROP' }, - { - prim: 'DIP', - args: [ - [ - [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [[{ prim: 'CDR' }]] } - ] - ], - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'ADD', annots: ['@new_counter'] }, - { prim: 'PAIR' } - ] - ] - }, - { - prim: 'IF_LEFT', - args: [ - [{ prim: 'UNIT' }, { prim: 'EXEC' }], - [ - { prim: 'DIP', args: [[{ prim: 'CAR' }]] }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] } - ] - ] - }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } -]; diff --git a/example/deploy-integration-tests-contracts.ts b/example/deploy-integration-tests-contracts.ts deleted file mode 100644 index ec2ec8a5a1..0000000000 --- a/example/deploy-integration-tests-contracts.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { MichelsonMap, TezosToolkit } from '@taquito/taquito'; -import { importKey } from '@taquito/signer'; -import { knownContract } from './data/knownContract'; -import { knownBigMapContract } from './data/knownBigMapContract'; - -const provider = 'https://api.tez.ie/rpc/florencenet'; - -async function example() { - const tezos = new TezosToolkit(provider); - - await importKey( - tezos, - 'peqjckge.qkrrajzs@tezos.example.org', - 'y4BX7qS1UE', - [ - 'skate', - 'damp', - 'faculty', - 'morning', - 'bring', - 'ridge', - 'traffic', - 'initial', - 'piece', - 'annual', - 'give', - 'say', - 'wrestle', - 'rare', - 'ability' - ].join(' '), - '7d4c8c3796fdbf4869edb5703758f0e5831f5081' - ); - try { - console.log('Deploying the knownContract...'); - const opknownContract = await tezos.contract.originate({ - balance: '0', - code: knownContract, - init: { - prim: 'Pair', - args: [ - { int: '0' }, - { - prim: 'Pair', - args: [ - { int: '1' }, - [{ bytes: '005c8244b8de7d57795962c1bfc855d0813f8c61eddf3795f804ccdea3e4c82ae9' }] - ] - } - ] - } - }); - console.log('Awaiting confirmation...'); - const contractknownContract = await opknownContract.contract(); - console.log('The address of the knownContract is: ', contractknownContract.address); - - console.log('Deploying the knownBigMapContract...'); - const allowances = new MichelsonMap(); - const ledger = new MichelsonMap(); - ledger.set('tz1btkXVkVFWLgXa66sbRJa8eeUSwvQFX4kP', { allowances, balance: '100' }); - - const opknownBigMapContract = await tezos.contract.originate({ - code: knownBigMapContract, - storage: { - ledger, - owner: 'tz1gvF4cD2dDtqitL3ZTraggSR1Mju2BKFEM', - paused: true, - totalSupply: '100' - } - }); - console.log('Awaiting confirmation...'); - const contractknownBigMapContract = await opknownBigMapContract.contract(); - console.log('The address of the knownBigMapContract is: ', contractknownBigMapContract.address); - } catch (ex) { - console.error(ex); - } -} -example(); diff --git a/example/deploy-lambda-contract.ts b/example/deploy-lambda-contract.ts index 61c48d6e31..06b241cdb1 100644 --- a/example/deploy-lambda-contract.ts +++ b/example/deploy-lambda-contract.ts @@ -1,8 +1,8 @@ import { TezosToolkit } from '@taquito/taquito'; import { importKey } from '@taquito/signer'; -import { VIEW_LAMBDA } from '../packages/taquito/src/contract/view_lambda'; +import { VIEW_LAMBDA } from '@taquito/taquito/src/contract/view_lambda' -const provider = 'https://api.tez.ie/rpc/florencenet'; +const provider = 'https://api.tez.ie/rpc/carthagenet'; async function example() { const tezos = new TezosToolkit(provider); diff --git a/example/example-parallel-bigmap-local-vs-rpc-pack.ts b/example/example-parallel-bigmap-local-vs-rpc-pack.ts deleted file mode 100644 index 0a51413f06..0000000000 --- a/example/example-parallel-bigmap-local-vs-rpc-pack.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { BigMapAbstraction, TezosToolkit, MichelCodecPacker } from '@taquito/taquito'; -import BigNumber from 'bignumber.js'; - -const rpc = 'https://api.tez.ie/rpc/edonet'; -const numberOfValueToFetch = 810; // max 810 -const repeat = 1; // How many time we want to fetch all the keys - -async function example() { - - try { - const tezos = new TezosToolkit(rpc); - - const contractAddress = 'KT1CikRXdnRjw8TfAd5VgqEqR5tpo2HjQzSS'; - const contract = await tezos.contract.at(contractAddress); - - interface StorageType { - 0: BigNumber - 1: BigMapAbstraction - } - const storage = await contract.storage<StorageType>(); - const bigMapStorage = storage[1]; - - // Fetch values of the big map using the RPC to pack - const startRpcPack = new Date().getTime(); - const promisesRpc: Array<Promise<string|undefined>> = []; - for (let i = 1; i <= repeat; i++) { - for (let i = 1; i <= numberOfValueToFetch; i++) { - promisesRpc.push(bigMapStorage.get<string>(i.toString())); - } - } - await Promise.all(promisesRpc); - - const durationRpcPack = new Date().getTime() - startRpcPack; - - // Fetch values of the big map using local implementation to pack data - tezos.setPackerProvider(new MichelCodecPacker()); - const startLocalPack = new Date().getTime(); - - const promisesLocalPack: Array<Promise<string|undefined>> = []; - for (let i = 1; i <= repeat; i++) { - for (let i = 1; i <= numberOfValueToFetch; i++) { - promisesLocalPack.push(bigMapStorage.get<string>(i.toString())); - } - } - await Promise.all(promisesLocalPack) - - const durationLocalPack = new Date().getTime() - startLocalPack; - - console.log(`Fetched ${numberOfValueToFetch * repeat} value(s) on the big map in parallel using ${rpc}.`); - console.log(`It took`, durationRpcPack, `ms to fetch the big map values when packing data with the RPC.`); - console.log(`It took`, durationLocalPack, `ms to fetch the big map values when packing data locally.`); - console.log('Difference is:', durationRpcPack - durationLocalPack, 'ms.') - - } catch (ex) { - console.error(ex); - } -} - - - - -// tslint:disable-next-line: no-floating-promises -example(); - -// Code to deploy the contract used in the example: -/* - const signer: any = new InMemorySigner('edskRtmEwZxRzwd1obV9pJzAoLoxXFWTSHbgqpDBRHx1Ktzo5yVuJ37e2R4nzjLnNbxFU4UiBU1iHzAy52pK5YBRpaFwLbByca'); - const tezos = new TezosToolkit(rpc); - tezos.setSignerProvider( signer ); - - console.log('Deploying contract...'); - const code = [{ "prim": "parameter", "args": [{ "prim": "unit" }] }, { "prim": "storage", "args": [{ "prim": "pair", "args": [{ "prim": "nat" }, { "prim": "big_map", "args": [{ "prim": "nat" }, { "prim": "string" }] }] }] }, { "prim": "code", "args": [[{ "prim": "CDR" }, { "prim": "NIL", "args": [{ "prim": "operation" }] }, { "prim": "PAIR" }]] }]; - - const bigmap = new MichelsonMap(); - - for (let i = 1; i <= 810; i++) { - bigmap.set(i, `${i}`) - } - - const op = await tezos.contract.originate({ - code, - storage: { - 0: '10', - 1: bigmap - } - }) - - console.log('Awaiting confirmation...'); - - await op.confirmation() - const contractAddress = op.contractAddress; - console.log(contractAddress); */ - - - - diff --git a/example/example-sequential-bigmap-local-vs-rpc-pack.ts b/example/example-sequential-bigmap-local-vs-rpc-pack.ts deleted file mode 100644 index 988ff22705..0000000000 --- a/example/example-sequential-bigmap-local-vs-rpc-pack.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { BigMapAbstraction, TezosToolkit, MichelCodecPacker } from '@taquito/taquito'; -import BigNumber from 'bignumber.js'; - -const rpc = 'https://api.tez.ie/rpc/edonet'; -const numberOfValueToFetch = 810; // max 810 -const repeat = 1; // How many time we want to fetch all the keys - -async function example() { - - try { - const tezos = new TezosToolkit(rpc); - - const contractAddress = 'KT1CikRXdnRjw8TfAd5VgqEqR5tpo2HjQzSS'; - const contract = await tezos.contract.at(contractAddress); - - interface StorageType { - 0: BigNumber - 1: BigMapAbstraction - } - const storage = await contract.storage<StorageType>(); - const bigMapStorage = storage[1]; - - // Fetch values of the big map using the RPC to pack - const startRpcPack = new Date().getTime(); - for (let i = 1; i <= repeat; i++) { - for (let i = 1; i <= numberOfValueToFetch; i++) { - await bigMapStorage.get(i.toString()); - } - } - const durationRpcPack = new Date().getTime() - startRpcPack; - - // Fetch values of the big map using local implementation to pack data - tezos.setPackerProvider(new MichelCodecPacker()); - const startLocalPack = new Date().getTime(); - for (let i = 1; i <= repeat; i++) { - for (let i = 1; i <= numberOfValueToFetch; i++) { - await bigMapStorage.get(i.toString()); - } - } - const durationLocalPack = new Date().getTime() - startLocalPack; - - console.log(`Fetched ${numberOfValueToFetch * repeat} value(s) on the big map in sequence using ${rpc}.`); - console.log(`It took`, durationRpcPack, `ms to fetch the big map values when packing data with the RPC.`); - console.log(`It took`, durationLocalPack, `ms to fetch the big map values when packing data locally.`); - console.log('Difference is:', durationRpcPack - durationLocalPack, 'ms.') - - } catch (ex) { - console.error(ex); - } -} - - -// tslint:disable-next-line: no-floating-promises -example(); - -// Code to deploy the contract used in the example: -/* - const signer: any = new InMemorySigner('edskRtmEwZxRzwd1obV9pJzAoLoxXFWTSHbgqpDBRHx1Ktzo5yVuJ37e2R4nzjLnNbxFU4UiBU1iHzAy52pK5YBRpaFwLbByca'); - const tezos = new TezosToolkit(rpc); - tezos.setSignerProvider( signer ); - - console.log('Deploying contract...'); - const code = [{ "prim": "parameter", "args": [{ "prim": "unit" }] }, { "prim": "storage", "args": [{ "prim": "pair", "args": [{ "prim": "nat" }, { "prim": "big_map", "args": [{ "prim": "nat" }, { "prim": "string" }] }] }] }, { "prim": "code", "args": [[{ "prim": "CDR" }, { "prim": "NIL", "args": [{ "prim": "operation" }] }, { "prim": "PAIR" }]] }]; - - const bigmap = new MichelsonMap(); - - for (let i = 1; i <= 810; i++) { - bigmap.set(i, `${i}`) - } - - const op = await tezos.contract.originate({ - code, - storage: { - 0: '10', - 1: bigmap - } - }) - - console.log('Awaiting confirmation...'); - - await op.confirmation() - const contractAddress = op.contractAddress; - console.log(contractAddress); */ - - - - diff --git a/example/example-streamer-custom-retry-logic.ts b/example/example-streamer-custom-retry-logic.ts deleted file mode 100644 index 482ee851ab..0000000000 --- a/example/example-streamer-custom-retry-logic.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { TezosToolkit } from '@taquito/taquito'; -import { delay, retryWhen, tap, scan } from 'rxjs/operators'; - -async function example() { - // This example will intentionally fail after two attempts as the RPC URL is invalid. - const provider = 'https://api.tez.ie/rpc/notValid'; - const tezos = new TezosToolkit(provider) - tezos.setProvider({ - rpc: provider, config: { - shouldObservableSubscriptionRetry: true, observableSubscriptionRetryFunction: - retryWhen(error => - error.pipe( - scan((acc, error) => { - if (acc > 2) throw error; - console.log("attempt " + acc); - return acc + 1; - }, 1), - delay(3), - tap(() => console.log("Retrying ...")) - ) - ) - } - }); - - const bakerEndorsementFilter = { - and: [{ source: 'tz2TSvNTh2epDMhZHrw73nV9piBX7kLZ9K9m' }, { kind: 'endorsement' }] - } - - const bakerDelegation = { - and: [{ destination: 'tz2TSvNTh2epDMhZHrw73nV9piBX7kLZ9K9m' }, { kind: 'delegation' }] - } - - tezos.stream.subscribeOperation({ - or: [bakerEndorsementFilter, bakerDelegation] - }) -} - -// tslint:disable-next-line: no-floating-promises -example(); diff --git a/example/example-tzip16.ts b/example/example-tzip16.ts deleted file mode 100644 index 62d1883eb2..0000000000 --- a/example/example-tzip16.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { TezosToolkit } from "@taquito/taquito"; -import { tzip16 } from '../packages/taquito-tzip16/src/composer' -import { Tzip16Module } from "../packages/taquito-tzip16/src/tzip16-extension"; - -async function example() { - try { - - const tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); - tezos.addExtension(new Tzip16Module()); - const contract = await tezos.contract.at("KT1GPiBGM2sQ7DjPqCmGbHBDzkhweTR2spZA", tzip16) - const metadata = await contract.tzip16().getMetadata(); - console.log(JSON.stringify(metadata, null, 2)); - - } catch (ex) { - console.error(ex); - } -} - -// tslint:disable-next-line: no-floating-promises -example(); diff --git a/example/package-lock.json b/example/package-lock.json index ac5202787c..d7ab0c639b 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -1,67 +1,116 @@ { "name": "@taquito/example", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { - "@ledgerhq/devices": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.43.0.tgz", - "integrity": "sha512-/M5ZLUBdBK7Vl2T4yNJbES3Z4w55LbPdxD9rcOBAKH/5V3V0obQv6MUasP9b7DSkwGSSLCOGZLohoT2NxK2D2A==", - "requires": { - "@ledgerhq/errors": "^5.43.0", - "@ledgerhq/logs": "^5.43.0", - "rxjs": "^6.6.3", - "semver": "^7.3.4" - } - }, - "@ledgerhq/errors": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.43.0.tgz", - "integrity": "sha512-ZjKlUQbIn/DHXAefW3Y1VyDrlVhVqqGnXzrqbOXuDbZ2OAIfSe/A1mrlCbWt98jP/8EJQBuCzBOtnmpXIL/nYg==" - }, - "@ledgerhq/hw-transport": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.43.0.tgz", - "integrity": "sha512-0S+TGmiEJOqgM2MWnolZQPVKU3oRtoDj4yUFUZts9Owbgby+hmo4dIKTvv0vs8mwknQbOZByUgh3MQOQiK70MQ==", - "requires": { - "@ledgerhq/devices": "^5.43.0", - "@ledgerhq/errors": "^5.43.0", - "events": "^3.2.0" - } - }, "@ledgerhq/hw-transport-node-hid": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.43.0.tgz", - "integrity": "sha512-YfKHd4BNKfKDdd9ldDU6aAquWxuNGer39dITSGAA+BWeN760Uv60SjwHfgUx0zFxvQcz7bp2n4RMScJCnpspYg==", - "requires": { - "@ledgerhq/devices": "^5.43.0", - "@ledgerhq/errors": "^5.43.0", - "@ledgerhq/hw-transport": "^5.43.0", - "@ledgerhq/hw-transport-node-hid-noevents": "^5.43.0", - "@ledgerhq/logs": "^5.43.0", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.25.0.tgz", + "integrity": "sha512-px0i61nEAS61xJTFLB+s9Xg5V2cfFXFWyl9+apewazBnhEh7dWINJaIJ1XHmfJFySYMkriHXyaFQeb+9KCBZ1w==", + "requires": { + "@ledgerhq/devices": "^5.25.0", + "@ledgerhq/errors": "^5.25.0", + "@ledgerhq/hw-transport": "^5.25.0", + "@ledgerhq/hw-transport-node-hid-noevents": "^5.25.0", + "@ledgerhq/logs": "^5.25.0", "lodash": "^4.17.20", - "node-hid": "2.1.1", - "usb": "^1.6.4" + "node-hid": "1.3.0", + "usb": "^1.6.3" + }, + "dependencies": { + "@ledgerhq/devices": { + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.25.0.tgz", + "integrity": "sha512-3wsxVDkUYd5ERA5KVy99wEGbHAkfsuWbQ8b2ruzr8JX9wIxUS8mu1XkdoDt5M+H4jXP9C8ZGj9YT3VsiiIzfxg==", + "requires": { + "@ledgerhq/errors": "^5.25.0", + "@ledgerhq/logs": "^5.25.0", + "rxjs": "^6.6.3" + } + }, + "@ledgerhq/errors": { + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.25.0.tgz", + "integrity": "sha512-+FyyweA9odaWRwRkS35Wf0n2gC4tGsBlgW6VMhT7m1kcwVzUqNFyQzqMKqYvYEAga0P0X59wE+IAlqokkG7Usg==" + }, + "@ledgerhq/hw-transport": { + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.25.0.tgz", + "integrity": "sha512-q6hhWWwbSZPmzdTaQMowY+uQYwCC4xRqRQFQFgF6BjZFn2n+AwGOEU9mDmHnjL6XxkQfj8CjWuPJSRRv5OLmlg==", + "requires": { + "@ledgerhq/devices": "^5.25.0", + "@ledgerhq/errors": "^5.25.0", + "events": "^3.2.0" + } + }, + "@ledgerhq/logs": { + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.25.0.tgz", + "integrity": "sha512-OPlkvufjwJWQR+Jp7C6GaEeub+ZHzh3x0xyQMVLL62O7VGrhpzjwq2il/aLNt687k7mKJ+Vg6lFL1B6gO1ZiIg==" + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + } + } } }, "@ledgerhq/hw-transport-node-hid-noevents": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.43.0.tgz", - "integrity": "sha512-3TqeVTFslJdaAPgQh9qqRN6MuEkDNA9talEdm6k6osB3aIG3I67TNMTOY32nWdyeGx9VuEw0guUN1KJpxWQ1rg==", - "requires": { - "@ledgerhq/devices": "^5.43.0", - "@ledgerhq/errors": "^5.43.0", - "@ledgerhq/hw-transport": "^5.43.0", - "@ledgerhq/logs": "^5.43.0", - "node-hid": "2.1.1" + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.25.0.tgz", + "integrity": "sha512-2vC/9xOl/B8cCejxNWZLdzOwd9JvbjHq7SMJdhM9UDAGPcfy1awRRpuPpLQWS1hhM0sck5ejXz63L4xPqWRcdg==", + "requires": { + "@ledgerhq/devices": "^5.25.0", + "@ledgerhq/errors": "^5.25.0", + "@ledgerhq/hw-transport": "^5.25.0", + "@ledgerhq/logs": "^5.25.0", + "node-hid": "1.3.0" + }, + "dependencies": { + "@ledgerhq/devices": { + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.25.0.tgz", + "integrity": "sha512-3wsxVDkUYd5ERA5KVy99wEGbHAkfsuWbQ8b2ruzr8JX9wIxUS8mu1XkdoDt5M+H4jXP9C8ZGj9YT3VsiiIzfxg==", + "requires": { + "@ledgerhq/errors": "^5.25.0", + "@ledgerhq/logs": "^5.25.0", + "rxjs": "^6.6.3" + } + }, + "@ledgerhq/errors": { + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.25.0.tgz", + "integrity": "sha512-+FyyweA9odaWRwRkS35Wf0n2gC4tGsBlgW6VMhT7m1kcwVzUqNFyQzqMKqYvYEAga0P0X59wE+IAlqokkG7Usg==" + }, + "@ledgerhq/hw-transport": { + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.25.0.tgz", + "integrity": "sha512-q6hhWWwbSZPmzdTaQMowY+uQYwCC4xRqRQFQFgF6BjZFn2n+AwGOEU9mDmHnjL6XxkQfj8CjWuPJSRRv5OLmlg==", + "requires": { + "@ledgerhq/devices": "^5.25.0", + "@ledgerhq/errors": "^5.25.0", + "events": "^3.2.0" + } + }, + "@ledgerhq/logs": { + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.25.0.tgz", + "integrity": "sha512-OPlkvufjwJWQR+Jp7C6GaEeub+ZHzh3x0xyQMVLL62O7VGrhpzjwq2il/aLNt687k7mKJ+Vg6lFL1B6gO1ZiIg==" + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + } + } } }, - "@ledgerhq/logs": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.43.0.tgz", - "integrity": "sha512-QWfQjea3ekh9ZU+JeL2tJC9cTKLZ/JrcS0JGatLejpRYxQajvnHvHfh0dbHOKXEaXfCskEPTZ3f1kzuts742GA==" - }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -88,14 +137,9 @@ "dev": true }, "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.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "bindings": { "version": "1.5.0", @@ -128,12 +172,12 @@ } }, "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-from": { @@ -162,12 +206,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "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 - }, "decompress-response": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", @@ -251,9 +289,9 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, "inherits": { "version": "2.0.4", @@ -261,9 +299,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "is-fullwidth-code-point": { "version": "1.0.0", @@ -283,14 +321,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -307,15 +337,23 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, "mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" }, "napi-build-utils": { "version": "1.0.2", @@ -323,33 +361,22 @@ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, "node-abi": { - "version": "2.19.3", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", - "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz", + "integrity": "sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==", "requires": { "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, - "node-addon-api": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", - "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" - }, "node-hid": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-2.1.1.tgz", - "integrity": "sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-1.3.0.tgz", + "integrity": "sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g==", "requires": { "bindings": "^1.5.0", - "node-addon-api": "^3.0.2", - "prebuild-install": "^6.0.0" + "nan": "^2.14.0", + "node-abi": "^2.18.0", + "prebuild-install": "^5.3.4" } }, "noop-logger": { @@ -387,15 +414,15 @@ } }, "prebuild-install": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.0.0.tgz", - "integrity": "sha512-h2ZJ1PXHKWZpp1caLw0oX9sagVpL2YTk+ZwInQbQ3QqNd4J03O6MpFNmMTJlkfgPENWqe5kP0WjQLqz5OjLfsw==", + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz", + "integrity": "sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==", "requires": { "detect-libc": "^1.0.3", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", + "mkdirp": "^0.5.1", "napi-build-utils": "^1.0.1", "node-abi": "^2.7.0", "noop-logger": "^0.1.1", @@ -447,26 +474,15 @@ "util-deprecate": "~1.0.1" } }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "requires": { - "tslib": "^1.9.0" - } - }, "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==" }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "requires": { - "lru-cache": "^6.0.0" - } + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "set-blocking": { "version": "2.0.0", @@ -541,20 +557,20 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", + "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", "requires": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "tar-stream": "^2.0.0" } }, "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", + "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", "requires": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -576,13 +592,12 @@ } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -590,9 +605,9 @@ } }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" }, "tunnel-agent": { "version": "0.6.0", @@ -603,36 +618,19 @@ } }, "usb": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/usb/-/usb-1.6.4.tgz", - "integrity": "sha512-/QYxyZEcj2iRnNT2HaHurCa/nVc54/d3vXxGH8Wz/shsGDgrf/7vg7N65VTGeR1MWQof7O4EQXfLpKd1k3VU7Q==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/usb/-/usb-1.6.3.tgz", + "integrity": "sha512-23KYMjaWydACd8wgGKMQ4MNwFspAT6Xeim4/9Onqe5Rz/nMb4TM/WHL+qPT0KNFxzNKzAs63n1xQWGEtgaQ2uw==", "requires": { "bindings": "^1.4.0", "nan": "2.13.2", "prebuild-install": "^5.3.3" }, "dependencies": { - "prebuild-install": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", - "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - } + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" } } }, @@ -659,11 +657,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/example/package.json b/example/package.json index 962b9c0ae3..78bac18dea 100644 --- a/example/package.json +++ b/example/package.json @@ -1,7 +1,7 @@ { "name": "@taquito/example", "private": true, - "version": "9.0.0", + "version": "7.1.0-preview.1", "scripts": { "example:at": "node -r ts-node/register --preserve-symlinks contract-schema.ts", "example:origination": "node -r ts-node/register --preserve-symlinks contract-origination.ts", @@ -12,20 +12,16 @@ "example": "node -r ts-node/register --preserve-symlinks example-node.ts", "example:activation": "node -r ts-node/register --preserve-symlinks example-activate.ts", "example:streamer": "node -r ts-node/register --preserve-symlinks example-streamer.ts", - "example:streamer-custom": "node -r ts-node/register --preserve-symlinks example-streamer-custom-retry-logic.ts", - "example:scan-path-ledger": "node -r ts-node/register --preserve-symlinks scan-path-ledger.ts", - "example:rpc-vs-local-pack-sequential": "node -r ts-node/register --preserve-symlinks example-sequential-bigmap-local-vs-rpc-pack.ts", - "example:rpc-vs-local-pack-parallel": "node -r ts-node/register --preserve-symlinks example-parallel-bigmap-local-vs-rpc-pack.ts" + "example:scan-path-ledger": "node -r ts-node/register --preserve-symlinks scan-path-ledger.ts" }, "dependencies": { - "@ledgerhq/hw-transport-node-hid": "^5.43.0", - "@taquito/ledger-signer": "^9.0.0", - "@taquito/michel-codec": "^9.0.0", - "@taquito/signer": "^9.0.0", - "@taquito/taquito": "^9.0.0", - "bignumber.js": "^9.0.1" + "@ledgerhq/hw-transport-node-hid": "^5.25.0", + "@taquito/ledger-signer": "^7.1.0-preview.1", + "@taquito/michel-codec": "^7.1.0-preview.1", + "@taquito/signer": "^7.1.0-preview.1", + "@taquito/taquito": "^7.1.0-preview.1" }, "devDependencies": { - "ts-node": "^9.1.1" + "ts-node": "^9.0.0" } } diff --git a/example/scan-path-ledger.ts b/example/scan-path-ledger.ts index fb527257c4..7fe14896db 100644 --- a/example/scan-path-ledger.ts +++ b/example/scan-path-ledger.ts @@ -7,7 +7,7 @@ async function example() { const transport = await TransportNodeHid.create(); let index = 0; - const tezos = new TezosToolkit('https://api.tez.ie/rpc/edonet') + const tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet') while (index < 10) { const ledgerSigner = new LedgerSigner(transport, `44'/1729'/${index}'/0'`, false, DerivationType.ED25519); tezos.setProvider({ signer: ledgerSigner }); diff --git a/integration-tests/README.md b/integration-tests/README.md index eecf9f56c5..71f21ac35b 100644 --- a/integration-tests/README.md +++ b/integration-tests/README.md @@ -1,50 +1,14 @@ # Taquito Integration Tests -The `taquito/integration-tests` directory contains Taquito's integration test suite. These tests exercise many use cases of Taquito against a live Tezos testnet. +The `integration-tests` directory contains a testing suite for various contract interactions that require querying a live chain to test properly. -## How to run the tests +## How to test -To run the tests, you must have: +If you feel obliged, you can run the entire test suite with `npm run test` inside the `integration-tests` directory. Do know that this can take a bit of time to fully run. -- The Taquito source code cloned to your computer -- A node.js, the current LTS version is a good choice -- Compiled the Taquito suite of packages +If you'd like to take a more targeted approach you can use the command: `npm run test -- -t "Title of test here"` So if I have a test block that starts with `it('does some stuff)` then the command `npm run test -- -t "does some stuff"` will run this test only and save you loads of time. -### Prerequisite building Taquito -To compile Taquito before running tests. -Start in the root folder of `taquito/` - -``` -npm run clean # Optional step to clean out node_modules -npm run bootstrap # installs dependencies for all packages -npm run build # Builds all Taquito packages -``` - -### Running all tests against all pre-configured testnets - -from the `taquito/integration-tests` directory run - -``` -npm run test # This runs all tests against all pre-configured testnets -``` - -### Running all test against a specific testnet - -Depending on where we are in the Tezos protocol proposal upgrade cycle, there could be more than one testnet network configured in the Taquito integration-tests. Targeting a specific testnet can be done using environment variables. The testnet environment variables are found in `taquito/integration-tests/config.ts` (See Configuration section below) - -``` -DELPHINET=true npm run test -``` - -To target a specific test within the suite, use the jest `--testNamePattern=<regex>` parameter, or `-t` for short. - -Specify the "spec name" of the test you wish to run. Doing this with `npm` looks like this: -`npm run test -- -t "Title of test here"` - -So if you have a test spec with the name `it('does some stuff)` then the command `npm run test -- -t "does some stuff"` will run this test only and saving you time. - -## Configuration - -See the `taquito/integration-tests/config.ts` file for details of test configurations and target networks. Some configurations have default values that can be overridden using environment variables. For example, you can make the tests run against a custom `delphinet` node by setting the environment variable: ` export TEZOS_RPC_DELPHINET='http://localhost:8732'`. +## Disclaimer +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/integration-tests/batch-api.spec.ts b/integration-tests/batch-api.spec.ts index b9f9f264c2..b75ddac68b 100644 --- a/integration-tests/batch-api.spec.ts +++ b/integration-tests/batch-api.spec.ts @@ -1,5 +1,5 @@ import { CONFIGS } from "./config"; -import { ligoSample, ligoSampleMichelson } from "./data/ligo-simple-contract"; +import { ligoSample } from "./data/ligo-simple-contract"; import { managerCode } from "./data/manager_code"; import { MANAGER_LAMBDA, OpKind } from "@taquito/taquito"; @@ -118,22 +118,5 @@ CONFIGS().forEach(({ lib, rpc, setup, knownBaker, createAddress }) => { expect(batchOp.status).toEqual('applied') done(); }) - - it('Simple transfers with origination and code in Michelson format', async (done) => { - const batch = await Tezos.batch() - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withOrigination({ - balance: "1", - code: ligoSampleMichelson, - storage: 0, - }) - - const op = await batch.send(); - await op.confirmation(); - expect(op.status).toEqual('applied') - done(); - }) }); }) diff --git a/integration-tests/call-contract-method-manual-steps.spec.ts b/integration-tests/call-contract-method-manual-steps.spec.ts deleted file mode 100644 index 699b4d900e..0000000000 --- a/integration-tests/call-contract-method-manual-steps.spec.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { createTransferOperation } from '@taquito/taquito'; -import { encodeOpHash } from '@taquito/utils'; -import { CONFIGS } from './config'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - - describe(`Test obtain operation hash before sending the operation to the node ${rpc}`, () => { - beforeEach(async (done) => { - await setup(true); - done(); - }); - test('Estimates, forges, signs, obtains the operation hash and injects the operation', async (done) => { - // We deploy a simple contract that will be used in the next steps - const code = `parameter nat; storage nat; code { CAR ; NIL operation ; PAIR }`; - const opOrigination = await Tezos.contract.originate({ - code, - storage: 10 - }); - const contract = await opOrigination.contract(); - - // Let's say we want to call the default entry point of the presented contract, and we want to obtain the operation hash before injecting the operation to the node. - // Currently, if we do `await contract.methods.default(5).send()`, we won't be able to obtain the operation hash before the operation gets injected. - // This plan to be addressed in issue #432 - - // The purpose of this test is to calculate the operation hash before sending the operation to the node. - // Using Taquito to call a contract entry point abstracts many underlying calls - // Here are steps to manually reproduce the following operation: contract.methods.default(5).send(); - - // Calling an entry point is a type of transaction operation - // The toTransferParams method returns a TransferParams object having parameter in a JSON Michelson format - const transferParams = contract.methods.default(5).toTransferParams(); - - // We estimate the fees for the operation - const estimate = await Tezos.estimate.transfer(transferParams); - - // The createTransferOperation function returns RPCTransferOperation where we include the estimated fees - const rpcTransferOperation = await createTransferOperation({ - ...transferParams, - fee: estimate.suggestedFeeMutez, - gasLimit: estimate.gasLimit, - storageLimit: estimate.storageLimit - }); - - // We add the branch, the source and the counter to the operation object - const source = await Tezos.signer.publicKeyHash(); - const { counter } = await Tezos.rpc.getContract(source); - const { hash } = await Tezos.rpc.getBlockHeader(); - - const op = { - branch: hash, - contents: [{ - ...rpcTransferOperation, - source, - counter: parseInt(counter || '0', 10) + 1, - }] - } - - // We forge the operation - const forgedOp = await Tezos.rpc.forgeOperations(toString(op)) - - // We sign the operation - const signOp = await Tezos.signer.sign(forgedOp, new Uint8Array([3])); - - // We calculate the operation hash - const opHash = encodeOpHash(signOp.sbytes); - - // simulate the operation, additional step in the default main flow - // const results = await Tezos.rpc.preapplyOperations(op); - - // We inject the operation - const opHashFromRpc = await Tezos.rpc.injectOperation(signOp.sbytes) - - expect(opHash).toEqual(opHashFromRpc); - done(); - }); - }); - - // deepcode ignore no-any: any is good enough - function toString(object: any): object { - const keys = Object.keys(object); - keys.forEach(key => { - if (typeof object[key] === 'object') { - return toString(object[key]); - } - - object[key] = '' + object[key]; - }); - - return object; - } - -}); - - diff --git a/integration-tests/call-get-delegate-when-no-delegate.spec.ts b/integration-tests/call-get-delegate-when-no-delegate.spec.ts deleted file mode 100644 index dd32556d9a..0000000000 --- a/integration-tests/call-get-delegate-when-no-delegate.spec.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { CONFIGS } from "./config"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Test trying to get the delegate when there is none: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup(true) - done() - }) - it('returns null when the account has no delegate', async (done) => { - const signer = await Tezos.signer.publicKeyHash(); - - expect (await Tezos.rpc.getDelegate(signer)).toBeNull(); - expect (await Tezos.tz.getDelegate(signer)).toBeNull(); - - done(); - }); - }); -}) diff --git a/integration-tests/config.ts b/integration-tests/config.ts index 2e8d68f02f..40a16dc2eb 100644 --- a/integration-tests/config.ts +++ b/integration-tests/config.ts @@ -55,32 +55,43 @@ interface FaucetConfig { faucetKey: {}; } -const florencenetEphemeral = { - rpc: process.env['TEZOS_RPC_FLORENCENET'] || 'https://api.tez.ie/rpc/florencenet', - knownBaker: 'tz1cjyja1TU6fiyiFav3mFAdnDsCReJ12hPD', - knownContract: 'KT1BRwtrBfiC2paqoSw4nakJ2EGLCGuoprLQ', - knownBigMapContract: 'KT1W1jh5C5NbcVVvpnBLQT9ekMbR5a8fg6mc', - protocol: Protocols.PsFLorena, +const delphinetEphemeral = { + rpc: 'https://api.tez.ie/rpc/delphinet', + knownBaker: 'tz1LpmZmB1yJJBcCrBDLSAStmmugGDEghdVv', + knownContract: 'KT1Gm9PeBggJzegaM9sRCz1EymLrWxpWyGXr', + knownBigMapContract: 'KT1Nf1CPvF1FFmAan5LiRvcyukyt3Nf4Le9B', + protocol: Protocols.PsDELPH1, signerConfig: { type: SignerType.EPHEMERAL_KEY as SignerType.EPHEMERAL_KEY, - keyUrl: 'https://api.tez.ie/keys/florencenet', + keyUrl: 'https://api.tez.ie/keys/delphinet', requestHeaders: { 'Authorization': 'Bearer taquito-example' }, } } -const edonetEphemeral = { - rpc: process.env['TEZOS_RPC_EDONET'] || 'https://api.tez.ie/rpc/edonet', - knownBaker: 'tz1R55a2HQbXUAzWKJYE5bJp3UvvawwCm9Pr', - knownContract: 'KT1MTFjUeqBeZoFeW1NLSrzJdcS5apFiUXoB', - knownBigMapContract: 'KT1Aqk5xE36Kx7JUUV8VMx4t9jLgQn4MBWQk', - protocol: Protocols.PtEdo2Zk, +const carthagenetEphemeral = { + rpc: 'https://api.tez.ie/rpc/carthagenet', + knownBaker: 'tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9', + knownContract: 'KT1XYa1JPKYVJYVJge89r4w2tShS8JYb1NQh', + knownBigMapContract: 'KT1HqWsXrGbHWc9muqkApqWu64WsxCU3FoRf', + protocol: Protocols.PsCARTHA, signerConfig: { type: SignerType.EPHEMERAL_KEY as SignerType.EPHEMERAL_KEY, - keyUrl: 'https://api.tez.ie/keys/edonet', - requestHeaders: { 'Authorization': 'Bearer taquito-example' }, - } -} - + keyUrl: 'https://api.tez.ie/keys/carthagenet', + requestHeaders: { Authorization: 'Bearer taquito-example' }, + }, +}; +const babylonnetEphemeral = { + rpc: 'https://api.tez.ie/rpc/babylonnet', + knownBaker: 'tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh', + knownContract: 'KT1EM2LvxxFGB3Svh9p9HCP2jEEYyHjABMbK', + knownBigMapContract: 'KT1T2KjQdqeNzeaSGm9MfzfgMN8rWC94BrTP', + protocol: Protocols.PsBabyM1, + signerConfig: { + type: SignerType.EPHEMERAL_KEY as SignerType.EPHEMERAL_KEY, + keyUrl: 'https://api.tez.ie/keys/babylonnet', + requestHeaders: { Authorization: 'Bearer taquito-example' }, + }, +}; // Well known faucet key. Can be overridden by setting the `TEZOS_FAUCET_KEY_FILE` environment variable const key = { email: "fnpurrgy.lnzeqdpg@tezos.example.org", @@ -105,48 +116,59 @@ const key = { secret: "122bb47843750982da5c65f7affa0d32971ac876" } -const florencenetFaucet = { - rpc: 'https://api.tez.ie/rpc/florencenet', - knownBaker: 'tz1cjyja1TU6fiyiFav3mFAdnDsCReJ12hPD', - knownContract: 'KT1BRwtrBfiC2paqoSw4nakJ2EGLCGuoprLQ', - knownBigMapContract: 'KT1W1jh5C5NbcVVvpnBLQT9ekMbR5a8fg6mc', - protocol: Protocols.PsFLorena, +const delphinetFaucet = { + rpc: 'https://api.tez.ie/rpc/delphinet', + knownBaker: 'tz1LpmZmB1yJJBcCrBDLSAStmmugGDEghdVv', + knownContract: 'KT1Gm9PeBggJzegaM9sRCz1EymLrWxpWyGXr', + knownBigMapContract: 'KT1Nf1CPvF1FFmAan5LiRvcyukyt3Nf4Le9B', + protocol: Protocols.PsDELPH1, signerConfig: { type: SignerType.FAUCET as SignerType.FAUCET, faucetKey: key, } } -const edonetFaucet = { - rpc: 'https://api.tez.ie/rpc/edonet', - knownBaker: 'tz1R55a2HQbXUAzWKJYE5bJp3UvvawwCm9Pr', - knownContract: 'KT1MTFjUeqBeZoFeW1NLSrzJdcS5apFiUXoB', - knownBigMapContract: 'KT1Aqk5xE36Kx7JUUV8VMx4t9jLgQn4MBWQk', - protocol: Protocols.PtEdo2Zk, +const carthagenetFaucet = { + rpc: 'https://api.tez.ie/rpc/carthagenet', + knownBaker: 'tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh', + knownContract: 'KT1EM2LvxxFGB3Svh9p9HCP2jEEYyHjABMbK', + knownBigMapContract: 'KT1HqWsXrGbHWc9muqkApqWu64WsxCU3FoRf', + protocol: Protocols.PsCARTHA, signerConfig: { type: SignerType.FAUCET as SignerType.FAUCET, faucetKey: key, - } -} + }, +}; +const babylonnetFaucet = { + rpc: 'https://api.tez.ie/rpc/babylonnet', + knownBaker: 'tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh', + knownContract: 'KT1EM2LvxxFGB3Svh9p9HCP2jEEYyHjABMbK', + knownBigMapContract: 'KT1T2KjQdqeNzeaSGm9MfzfgMN8rWC94BrTP', + protocol: Protocols.PsBabyM1, + signerConfig: { + type: SignerType.FAUCET as SignerType.FAUCET, + faucetKey: key, + }, +}; const providers: Config[] = []; if (process.env['RUN_WITH_FAUCET']) { - providers.push(florencenetFaucet, edonetFaucet) + providers.push(carthagenetFaucet, delphinetFaucet) } -else if (process.env['RUN_FLORENCENET_WITH_FAUCET']) { - providers.push(florencenetFaucet) -} -else if (process.env['RUN_EDONET_WITH_FAUCET']) { - providers.push(edonetFaucet) +else if (process.env['RUN_CARTHAGENET_WITH_FAUCET']) { + providers.push(carthagenetFaucet) +} +else if (process.env['RUN_DELPHINET_WITH_FAUCET']) { + providers.push(delphinetFaucet) } -else if (process.env['FLORENCENET']) { - providers.push(florencenetEphemeral) +else if (process.env['DELPHINET']) { + providers.push(delphinetEphemeral) } -else if (process.env['EDONET']) { - providers.push(edonetEphemeral) +else if (process.env['CARTHAGENET']) { + providers.push(carthagenetEphemeral) } else { - providers.push(florencenetEphemeral, edonetEphemeral) + providers.push(carthagenetEphemeral, delphinetEphemeral) } const faucetKeyFile = process.env['TEZOS_FAUCET_KEY_FILE']; @@ -168,19 +190,14 @@ const setupSignerWithFreshKey = async ( { keyUrl, requestHeaders }: EphemeralConfig ) => { const httpClient = new HttpBackend(); - - try { - const key = await httpClient.createRequest<string>({ - url: keyUrl, - method: 'POST', - headers: requestHeaders, - json: false, - }); - const signer = new InMemorySigner(key!); - Tezos.setSignerProvider(signer); - } catch (e) { - console.log("An error occurs when trying to fetch a fresh key:", e) - } + const key = await httpClient.createRequest<string>({ + url: keyUrl, + method: 'POST', + headers: requestHeaders, + json: false, + }); + const signer = new InMemorySigner(key); + Tezos.setSignerProvider(signer); }; const setupSignerWithEphemeralKey = async ( @@ -189,20 +206,14 @@ const setupSignerWithEphemeralKey = async ( ) => { const ephemeralUrl = `${keyUrl}/ephemeral`; const httpClient = new HttpBackend(); + const { id, pkh } = await httpClient.createRequest({ + url: ephemeralUrl, + method: 'POST', + headers: requestHeaders, + }); - try { - const { id, pkh } = await httpClient.createRequest({ - url: ephemeralUrl, - method: 'POST', - headers: requestHeaders, - }); - - const signer = new RemoteSigner(pkh, `${ephemeralUrl}/${id}/`, { headers: requestHeaders }); - Tezos.setSignerProvider(signer); - - } catch (e) { - console.log("An error occurs when trying to fetch an ephemeral key:", e) - } + const signer = new RemoteSigner(pkh, `${ephemeralUrl}/${id}/`, { headers: requestHeaders }); + Tezos.setSignerProvider(signer); }; const setupWithFaucetKey = async (Tezos: TezosToolkit, signerConfig: FaucetConfig) => { diff --git a/integration-tests/contract-batch.spec.ts b/integration-tests/contract-batch.spec.ts deleted file mode 100644 index 3512fa82b6..0000000000 --- a/integration-tests/contract-batch.spec.ts +++ /dev/null @@ -1,167 +0,0 @@ -import { CONFIGS } from './config'; -import { ligoSample, ligoSampleMichelson } from './data/ligo-simple-contract'; -import { managerCode } from './data/manager_code'; -import { MANAGER_LAMBDA, OpKind } from '@taquito/taquito'; - -CONFIGS().forEach(({ lib, rpc, setup, knownBaker, knownContract, createAddress }) => { - const Tezos = lib; - const test = require('jest-retries'); - describe(`Test contract.batch using: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - test('Simple transfers with origination (where the code in JSON Michelson format)', 2, async (done: () => void) => { - const batch = Tezos.contract - .batch() - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withOrigination({ - balance: '1', - code: ligoSample, - storage: 0 - }); - - const op = await batch.send(); - await op.confirmation(); - expect(op.status).toEqual('applied'); - done(); - }); - - test('Simple transfers with origination (where the code in Michelson format)', 2, async (done: () => void) => { - const batch = Tezos.contract - .batch() - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withOrigination({ - balance: '1', - code: ligoSampleMichelson, - storage: 0 - }); - - const op = await batch.send(); - await op.confirmation(); - expect(op.status).toEqual('applied'); - done(); - }); - - test('Simple transfers with origination using with', 2, async (done: () => void) => { - const op = await Tezos.contract.batch([ - { - kind: OpKind.TRANSACTION, - to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', - amount: 2 - }, - { - kind: OpKind.ORIGINATION, - balance: "1", - code: ligoSample, - storage: 0, - } - ]) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .send(); - await op.confirmation(); - expect(op.status).toEqual('applied') - done(); - }) - - test('Simple transfers with bad origination', 2, async (done: () => void) => { - expect.assertions(1); - try { - await Tezos.contract - .batch() - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withOrigination({ - balance: '1', - code: ligoSample, - storage: 0, - storageLimit: 0 - }) - .send(); - } catch (ex) { - expect(ex).toEqual( - expect.objectContaining({ - message: expect.stringContaining('storage_exhausted.operation') - }) - ); - } - done(); - }); - - test('Test batch from account with low balance', 2, async (done: () => void) => { - const LocalTez = await createAddress(); - const op = await Tezos.contract.transfer({ to: await LocalTez.signer.publicKeyHash(), amount: 2 }); - await op.confirmation(); - - const contract = await Tezos.contract.at(knownContract); - - const batchOp = await LocalTez.contract - .batch([ - { - kind: OpKind.TRANSACTION, - to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', - amount: 1 - }, - { - kind: OpKind.ORIGINATION, - balance: '0', - code: ligoSample, - storage: 0 - } - ]) - .send(); - await batchOp.confirmation(); - expect(op.status).toEqual('applied'); - done(); - }); - - test('Chain contract calls', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - balance: '1', - code: managerCode, - init: { string: await Tezos.signer.publicKeyHash() } - }); - - const contract = await op.contract(); - expect(op.status).toEqual('applied'); - - const batch = Tezos.contract - .batch() - .withTransfer({ to: contract.address, amount: 1 }) - .withContractCall( - contract.methods.do(MANAGER_LAMBDA.transferImplicit('tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh', 50)) - ) - .withContractCall(contract.methods.do(MANAGER_LAMBDA.setDelegate(knownBaker))) - .withContractCall(contract.methods.do(MANAGER_LAMBDA.removeDelegate())); - - const batchOp = await batch.send(); - - await batchOp.confirmation(); - - expect(batchOp.status).toEqual('applied'); - done(); - }); - - test('Batch transfers and method call', 2, async (done: () => void) => { - const contract = await Tezos.contract.at(knownContract); - const batchOp = await Tezos.contract - .batch([ - { kind: OpKind.TRANSACTION, to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }, - { kind: OpKind.TRANSACTION, to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }, - { kind: OpKind.TRANSACTION, ...contract.methods.default([['Unit']]).toTransferParams() } - ]) - .send(); - - await batchOp.confirmation(); - - expect(batchOp.status).toEqual('applied'); - done(); - }); - }); -}); diff --git a/integration-tests/contract-big-map-access-by-index.spec.ts b/integration-tests/contract-big-map-access-by-index.spec.ts index ec8c56c4c6..adc1ce5b73 100644 --- a/integration-tests/contract-big-map-access-by-index.spec.ts +++ b/integration-tests/contract-big-map-access-by-index.spec.ts @@ -1,6 +1,6 @@ import { CONFIGS } from "./config"; import { tokenCode, tokenInit } from "./data/tokens"; -import { MichelsonMap, MichelCodecPacker } from "@taquito/taquito"; +import { MichelsonMap } from "@taquito/taquito"; CONFIGS().forEach(({ lib, rpc, setup, knownBigMapContract }) => { const Tezos = lib; @@ -18,6 +18,7 @@ CONFIGS().forEach(({ lib, rpc, setup, knownBigMapContract }) => { init: tokenInit(`${await Tezos.signer.publicKeyHash()}`), }) const contract = await op.contract() + console.log("Address",contract.address) // Fetch the storage of the newly deployed contract const storage: any = await contract.storage(); @@ -33,38 +34,10 @@ CONFIGS().forEach(({ lib, rpc, setup, knownBigMapContract }) => { }) }); - it('Return undefined when BigMap key is not found', async (done) => { + it('Return undefined when BigMap key is not found', async () => { const myContract = await Tezos.contract.at(knownBigMapContract); const contractStorage: any = await myContract.storage(); const value = await contractStorage.ledger.get("tz1NortRftucvAkD1J58L32EhSVrQEWJCEnB") expect(value).toBeUndefined(); - done() }) - - it('originates a contract with empty bigmap and fetches value in the bigMap using local packing', async (done) => { - - // Configure the Tezostoolkit to use the MichelCodecPacker (the data will be packed locally instead of using the rpc) - Tezos.setPackerProvider(new MichelCodecPacker()); - - // Deploy a contract with a big map - const op = await Tezos.contract.originate({ - balance: "1", - code: tokenCode, - init: tokenInit(`${await Tezos.signer.publicKeyHash()}`), - }) - const contract = await op.contract() - - // Fetch the storage of the newly deployed contract - const storage: any = await contract.storage(); - - // First property is the big map abstraction (This contract does not have annotations so we access by index) - const bigMap = storage['0']; - - // Fetch the key (current pkh that is running the test) - const bigMapValue = await bigMap.get(await Tezos.signer.publicKeyHash()) - expect(bigMapValue['0'].toString()).toEqual("2") - expect(bigMapValue['1']).toEqual(expect.objectContaining(new MichelsonMap())) - done(); - }) - }) diff --git a/integration-tests/contract-big-map.spec.ts b/integration-tests/contract-big-map.spec.ts index a17546a6dd..7e8bb54956 100644 --- a/integration-tests/contract-big-map.spec.ts +++ b/integration-tests/contract-big-map.spec.ts @@ -10,7 +10,7 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { await setup() done() }) - it('originates a contract and initializes bigmaps with variants of data', async (done) => { + it('originates a contract and initlizes bigmaps with variants of data', async (done) => { const op = await Tezos.contract.originate({ balance: "1", code: storageContract, @@ -22,7 +22,6 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { "tz1ccqAEwfPgeoipnXtjAv1iucrpQv3DFmmS": 3, }), "map2": MichelsonMap.fromLiteral({ - "12": 3, "2": 1, '3': 2, "1": 2, @@ -31,7 +30,6 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { "map3": MichelsonMap.fromLiteral({ "2": 1, '3': 2, - "12": 3, "1": 2, "4": 3, }), @@ -51,7 +49,6 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { "map6": MichelsonMap.fromLiteral({ "2": 1, '3': 2, - "12": 3, "1": 2, "4": 3, }), diff --git a/integration-tests/contract-collections.spec.ts b/integration-tests/contract-collections.spec.ts index 02f5ed6236..e5c0c669a5 100644 --- a/integration-tests/contract-collections.spec.ts +++ b/integration-tests/contract-collections.spec.ts @@ -10,7 +10,7 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { await setup() done() }) - it('Originate a contract with set,list,map and exercise all collections', async (done) => { + it('Origingate a contract with set,list,map and exercise all collections', async (done) => { const addr = await Tezos.signer.publicKeyHash(); const initialStorage = { diff --git a/integration-tests/contract-empty-implicit-account-into-new-implicit-account.spec.ts b/integration-tests/contract-empty-implicit-account-into-new-implicit-account.spec.ts deleted file mode 100644 index bdcc0039ca..0000000000 --- a/integration-tests/contract-empty-implicit-account-into-new-implicit-account.spec.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { CONFIGS } from "./config"; - -CONFIGS().forEach(({ lib, rpc, setup, createAddress }) => { - const Tezos = lib; - describe(`Test emptying a revealed implicit account into a new implicit account using: ${rpc}`, () => { - const test = require('jest-retries'); - - beforeEach(async (done) => { - await setup() - done() - }) - test('reveals the sender account, creates an unrevealed implicit account, empties the sender account into the created one', 2, async (done: () => void) => { - const receiver = await createAddress(); - const receiver_pkh = await receiver.signer.publicKeyHash(); - - // create and fund the account we want to empty - const sender = await createAddress(); - const sender_pkh = await sender.signer.publicKeyHash(); - const op = await Tezos.contract.transfer({ to: sender_pkh, amount: 10 }); - await op.confirmation(); - - // Sending 1 token from the account we want to empty - // This will do the reveal operation automatically - const op2 = await sender.contract.transfer({ to: await Tezos.signer.publicKeyHash(), amount: 1 }); - await op2.confirmation(); - - const balance = await Tezos.tz.getBalance(sender_pkh); - - const estimate = await sender.estimate.transfer({ - to: receiver_pkh, - amount: (balance.toNumber()/1000000) - 2, - }); - - // Emptying the account - const totalFees = estimate.suggestedFeeMutez + estimate.burnFeeMutez; - const maxAmount = balance.minus(totalFees).toNumber(); - - const opTransfer = await sender.contract.transfer({ - to: receiver_pkh, - mutez: true, - amount: maxAmount, - fee: estimate.suggestedFeeMutez, - gasLimit: 1900, - storageLimit: estimate.storageLimit - }); - - await opTransfer.confirmation(); - const finalBalance = await Tezos.tz.getBalance(sender_pkh); - - expect(finalBalance.toString()).toEqual("0") - - done(); - }); - }); -}) diff --git a/integration-tests/contract-estimation-tests.spec.ts b/integration-tests/contract-estimation-tests.spec.ts index 4066122748..3fdfff2a49 100644 --- a/integration-tests/contract-estimation-tests.spec.ts +++ b/integration-tests/contract-estimation-tests.spec.ts @@ -5,13 +5,13 @@ import { originate, originate2, transferImplicit2 } from "./data/lambda"; import { ligoSample } from "./data/ligo-simple-contract"; import { managerCode } from "./data/manager_code"; -CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => { +CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol }) => { const Tezos = lib; - const edonet = (protocol === Protocols.PtEdo2Zk) ? test : test.skip; - const florencenet = (protocol === Protocols.PsFLorena) ? test : test.skip; + const carthagenet = (protocol === Protocols.PsCARTHA) ? test : test.skip; + const delphinet = (protocol === Protocols.PsDELPH1) ? test : test.skip; - describe(`Estimate scenario using: ${rpc}`, () => { + describe('Estimate scenario', () => { let LowAmountTez: TezosToolkit; let contract: Contract; const amt = 2000000 + DEFAULT_FEE.REVEAL; @@ -39,7 +39,7 @@ CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => } }) - florencenet('Estimate transfer with allocated destination', async (done) => { + delphinet('Estimate transfer with allocated destination', async (done) => { const estimate = await LowAmountTez.estimate.transfer({ to: await Tezos.signer.publicKeyHash(), amount: 1.9 }); expect(estimate.gasLimit).toEqual(1527); expect(estimate.storageLimit).toEqual(0); @@ -52,20 +52,20 @@ CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => done(); }) - edonet('Estimate transfer with allocated destination', async (done) => { + carthagenet('Estimate transfer with allocated destination', async (done) => { const estimate = await LowAmountTez.estimate.transfer({ to: await Tezos.signer.publicKeyHash(), amount: 1.9 }); - expect(estimate.gasLimit).toEqual(1527); + expect(estimate.gasLimit).toEqual(10307); expect(estimate.storageLimit).toEqual(0); - expect(estimate.suggestedFeeMutez).toEqual(506); + expect(estimate.suggestedFeeMutez).toEqual(1386); expect(estimate.burnFeeMutez).toEqual(0); - expect(estimate.minimalFeeMutez).toEqual(406); - expect(estimate.totalCost).toEqual(406); - expect(estimate.usingBaseFeeMutez).toEqual(406); - expect(estimate.consumedMilligas).toEqual(1427000); + expect(estimate.minimalFeeMutez).toEqual(1286); + expect(estimate.totalCost).toEqual(1286); + expect(estimate.usingBaseFeeMutez).toEqual(1286); + expect(estimate.consumedMilligas).toEqual(10207000); done(); }) - florencenet('Estimate transfer with unallocated destination', async (done) => { + delphinet('Estimate transfer with unallocated destination', async (done) => { const estimate = await LowAmountTez.estimate.transfer({ to: await (await createAddress()).signer.publicKeyHash(), amount: 1.7 }); expect(estimate.gasLimit).toEqual(1527); expect(estimate.storageLimit).toEqual(257); @@ -78,54 +78,54 @@ CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => done(); }); - edonet('Estimate transfer with unallocated destination', async (done) => { + carthagenet('Estimate transfer with unallocated destination', async (done) => { const estimate = await LowAmountTez.estimate.transfer({ to: await (await createAddress()).signer.publicKeyHash(), amount: 1.7 }); - expect(estimate.gasLimit).toEqual(1527); + expect(estimate.gasLimit).toEqual(10307); expect(estimate.storageLimit).toEqual(257); - expect(estimate.suggestedFeeMutez).toEqual(506); - expect(estimate.burnFeeMutez).toEqual(64250); - expect(estimate.minimalFeeMutez).toEqual(406); - expect(estimate.totalCost).toEqual(64656); - expect(estimate.usingBaseFeeMutez).toEqual(406); - expect(estimate.consumedMilligas).toEqual(1427000); + expect(estimate.suggestedFeeMutez).toEqual(1386); + expect(estimate.burnFeeMutez).toEqual(257000); + expect(estimate.minimalFeeMutez).toEqual(1286); + expect(estimate.totalCost).toEqual(258286); + expect(estimate.usingBaseFeeMutez).toEqual(1286); + expect(estimate.consumedMilligas).toEqual(10207000); done(); }); - florencenet('Estimate simple origination', async (done) => { + delphinet('Estimate simple origination', async (done) => { const estimate = await LowAmountTez.estimate.originate({ balance: "1", code: ligoSample, storage: 0, }) - expect(estimate.gasLimit).toEqual(2751); + expect(estimate.gasLimit).toEqual(2775); expect(estimate.storageLimit).toEqual(571); - expect(estimate.suggestedFeeMutez).toEqual(921); + expect(estimate.suggestedFeeMutez).toEqual(923); expect(estimate.burnFeeMutez).toEqual(142750); - expect(estimate.minimalFeeMutez).toEqual(821); - expect(estimate.totalCost).toEqual(143571); - expect(estimate.usingBaseFeeMutez).toEqual(821); - expect(estimate.consumedMilligas).toEqual(2650621); + expect(estimate.minimalFeeMutez).toEqual(823); + expect(estimate.totalCost).toEqual(143573); + expect(estimate.usingBaseFeeMutez).toEqual(823); + expect(estimate.consumedMilligas).toEqual(2674701); done(); }); - edonet('Estimate simple origination', async (done) => { + carthagenet('Estimate simple origination', async (done) => { const estimate = await LowAmountTez.estimate.originate({ balance: "1", code: ligoSample, storage: 0, }) - expect(estimate.gasLimit).toEqual(2751); + expect(estimate.gasLimit).toEqual(17932); expect(estimate.storageLimit).toEqual(571); - expect(estimate.suggestedFeeMutez).toEqual(921); - expect(estimate.burnFeeMutez).toEqual(142750); - expect(estimate.minimalFeeMutez).toEqual(821); - expect(estimate.totalCost).toEqual(143571); - expect(estimate.usingBaseFeeMutez).toEqual(821); - expect(estimate.consumedMilligas).toEqual(2650621); + expect(estimate.suggestedFeeMutez).toEqual(2441); + expect(estimate.burnFeeMutez).toEqual(571000); + expect(estimate.minimalFeeMutez).toEqual(2341); + expect(estimate.totalCost).toEqual(573341); + expect(estimate.usingBaseFeeMutez).toEqual(2341); + expect(estimate.consumedMilligas).toEqual(17832000); done(); }); - florencenet('Estimate setDelegate', async (done) => { + delphinet('Estimate setDelegate', async (done) => { const estimate = await LowAmountTez.estimate.setDelegate({ delegate: knownBaker, source: await LowAmountTez.signer.publicKeyHash(), @@ -141,142 +141,142 @@ CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => done(); }) - edonet('Estimate setDelegate', async (done) => { + carthagenet('Estimate setDelegate', async (done) => { const estimate = await LowAmountTez.estimate.setDelegate({ delegate: knownBaker, source: await LowAmountTez.signer.publicKeyHash(), }) - expect(estimate.gasLimit).toEqual(1100); + expect(estimate.gasLimit).toEqual(10100); expect(estimate.storageLimit).toEqual(0); - expect(estimate.suggestedFeeMutez).toEqual(459); + expect(estimate.suggestedFeeMutez).toEqual(1361); expect(estimate.burnFeeMutez).toEqual(0); - expect(estimate.minimalFeeMutez).toEqual(359); - expect(estimate.totalCost).toEqual(359); - expect(estimate.usingBaseFeeMutez).toEqual(359); - expect(estimate.consumedMilligas).toEqual(1000000); + expect(estimate.minimalFeeMutez).toEqual(1261); + expect(estimate.totalCost).toEqual(1261); + expect(estimate.usingBaseFeeMutez).toEqual(1261); + expect(estimate.consumedMilligas).toEqual(10000000); done(); }) - florencenet('Estimate internal transfer to allocated implicit', async (done) => { + delphinet('Estimate internal transfer to allocated implicit', async (done) => { const tx = contract.methods.do(MANAGER_LAMBDA.transferImplicit(knownBaker, 50)).toTransferParams(); const estimate = await LowAmountTez.estimate.transfer(tx) - expect(estimate.gasLimit).toEqual(4936); + expect(estimate.gasLimit).toEqual(4963); expect(estimate.storageLimit).toEqual(0); - expect(estimate.suggestedFeeMutez).toEqual(920); + expect(estimate.suggestedFeeMutez).toEqual(923); expect(estimate.burnFeeMutez).toEqual(0); - expect(estimate.minimalFeeMutez).toEqual(820); - expect(estimate.totalCost).toEqual(820); - expect(estimate.usingBaseFeeMutez).toEqual(820); - expect(estimate.consumedMilligas).toEqual(4835751); + expect(estimate.minimalFeeMutez).toEqual(823); + expect(estimate.totalCost).toEqual(823); + expect(estimate.usingBaseFeeMutez).toEqual(823); + expect(estimate.consumedMilligas).toEqual(4862546); done(); }) - edonet('Estimate internal transfer to allocated implicit', async (done) => { + carthagenet('Estimate internal transfer to allocated implicit', async (done) => { const tx = contract.methods.do(MANAGER_LAMBDA.transferImplicit(knownBaker, 50)).toTransferParams(); const estimate = await LowAmountTez.estimate.transfer(tx) - expect(estimate.gasLimit).toEqual(4939); + expect(estimate.gasLimit).toEqual(26260); expect(estimate.storageLimit).toEqual(0); - expect(estimate.suggestedFeeMutez).toEqual(920); + expect(estimate.suggestedFeeMutez).toEqual(3054); expect(estimate.burnFeeMutez).toEqual(0); - expect(estimate.minimalFeeMutez).toEqual(820); - expect(estimate.totalCost).toEqual(820); - expect(estimate.usingBaseFeeMutez).toEqual(820); - expect(estimate.consumedMilligas).toEqual(4838226); + expect(estimate.minimalFeeMutez).toEqual(2954); + expect(estimate.totalCost).toEqual(2954); + expect(estimate.usingBaseFeeMutez).toEqual(2954); + expect(estimate.consumedMilligas).toEqual(26160000); done(); }) - florencenet('Estimate to multiple internal transfer to unallocated account', async (done) => { + delphinet('Estimate to multiple internal transfer to unallocated account', async (done) => { const tx = contract.methods.do(transferImplicit2( await (await createAddress()).signer.publicKeyHash(), await (await createAddress()).signer.publicKeyHash(), 50) ).toTransferParams(); const estimate = await LowAmountTez.estimate.transfer(tx) - expect(estimate.gasLimit).toEqual(6522); + expect(estimate.gasLimit).toEqual(6549); expect(estimate.storageLimit).toEqual(514); - expect(estimate.suggestedFeeMutez).toEqual(1138); + expect(estimate.suggestedFeeMutez).toEqual(1140); expect(estimate.burnFeeMutez).toEqual(128500); - expect(estimate.minimalFeeMutez).toEqual(1038); - expect(estimate.totalCost).toEqual(129538); - expect(estimate.usingBaseFeeMutez).toEqual(1038); - expect(estimate.consumedMilligas).toEqual(6421121); + expect(estimate.minimalFeeMutez).toEqual(1040); + expect(estimate.totalCost).toEqual(129540); + expect(estimate.usingBaseFeeMutez).toEqual(1040); + expect(estimate.consumedMilligas).toEqual(6448336); done(); }) - edonet('Estimate to multiple internal transfer to unallocated account', async (done) => { + carthagenet('Estimate to multiple internal transfer to unallocated account', async (done) => { const tx = contract.methods.do(transferImplicit2( await (await createAddress()).signer.publicKeyHash(), await (await createAddress()).signer.publicKeyHash(), 50) ).toTransferParams(); const estimate = await LowAmountTez.estimate.transfer(tx) - expect(estimate.gasLimit).toEqual(6525); + expect(estimate.gasLimit).toEqual(36875); expect(estimate.storageLimit).toEqual(514); - expect(estimate.suggestedFeeMutez).toEqual(1138); - expect(estimate.burnFeeMutez).toEqual(128500); - expect(estimate.minimalFeeMutez).toEqual(1038); - expect(estimate.totalCost).toEqual(129538); - expect(estimate.usingBaseFeeMutez).toEqual(1038); - expect(estimate.consumedMilligas).toEqual(6424016); + expect(estimate.suggestedFeeMutez).toEqual(4175); + expect(estimate.burnFeeMutez).toEqual(514000); + expect(estimate.minimalFeeMutez).toEqual(4075); + expect(estimate.totalCost).toEqual(518075); + expect(estimate.usingBaseFeeMutez).toEqual(4075); + expect(estimate.consumedMilligas).toEqual(36775000); done(); }) - florencenet('Estimate internal origination', async (done) => { + delphinet('Estimate internal origination', async (done) => { const tx = contract.methods.do(originate()).toTransferParams(); const estimate = await LowAmountTez.estimate.transfer(tx) - expect(estimate.gasLimit).toEqual(5489); + expect(estimate.gasLimit).toEqual(5568); expect(estimate.storageLimit).toEqual(317); - expect(estimate.suggestedFeeMutez).toEqual(981); + expect(estimate.suggestedFeeMutez).toEqual(989); expect(estimate.burnFeeMutez).toEqual(79250); - expect(estimate.minimalFeeMutez).toEqual(881); - expect(estimate.totalCost).toEqual(80131); - expect(estimate.usingBaseFeeMutez).toEqual(881); - expect(estimate.consumedMilligas).toEqual(5388151); + expect(estimate.minimalFeeMutez).toEqual(889); + expect(estimate.totalCost).toEqual(80139); + expect(estimate.usingBaseFeeMutez).toEqual(889); + expect(estimate.consumedMilligas).toEqual(5467006); done(); }) - edonet('Estimate internal origination', async (done) => { + carthagenet('Estimate internal origination', async (done) => { const tx = contract.methods.do(originate()).toTransferParams(); const estimate = await LowAmountTez.estimate.transfer(tx) - expect(estimate.gasLimit).toEqual(5491); + expect(estimate.gasLimit).toEqual(28286); expect(estimate.storageLimit).toEqual(317); - expect(estimate.suggestedFeeMutez).toEqual(982); - expect(estimate.burnFeeMutez).toEqual(79250); - expect(estimate.minimalFeeMutez).toEqual(882); - expect(estimate.totalCost).toEqual(80132); - expect(estimate.usingBaseFeeMutez).toEqual(882); - expect(estimate.consumedMilligas).toEqual(5390686); + expect(estimate.suggestedFeeMutez).toEqual(3263); + expect(estimate.burnFeeMutez).toEqual(317000); + expect(estimate.minimalFeeMutez).toEqual(3163); + expect(estimate.totalCost).toEqual(320163); + expect(estimate.usingBaseFeeMutez).toEqual(3163); + expect(estimate.consumedMilligas).toEqual(28186000); done(); }) - florencenet('Estimate multiple internal origination', async (done) => { + delphinet('Estimate multiple internal origination', async (done) => { const tx = contract.methods.do(originate2()).toTransferParams(); const estimate = await LowAmountTez.estimate.transfer(tx) - expect(estimate.gasLimit).toEqual(7626); + expect(estimate.gasLimit).toEqual(7758); expect(estimate.storageLimit).toEqual(634); - expect(estimate.suggestedFeeMutez).toEqual(1260); + expect(estimate.suggestedFeeMutez).toEqual(1273); expect(estimate.burnFeeMutez).toEqual(158500); - expect(estimate.minimalFeeMutez).toEqual(1160); - expect(estimate.totalCost).toEqual(159660); - expect(estimate.usingBaseFeeMutez).toEqual(1160); - expect(estimate.consumedMilligas).toEqual(7525921); + expect(estimate.minimalFeeMutez).toEqual(1173); + expect(estimate.totalCost).toEqual(159673); + expect(estimate.usingBaseFeeMutez).toEqual(1173); + expect(estimate.consumedMilligas).toEqual(7657256); // Do the actual operation const op2 = await contract.methods.do(originate2()).send(); await op2.confirmation(); done(); }) - edonet('Estimate multiple internal origination', async (done) => { + carthagenet('Estimate multiple internal origination', async (done) => { const tx = contract.methods.do(originate2()).toTransferParams(); const estimate = await LowAmountTez.estimate.transfer(tx) - expect(estimate.gasLimit).toEqual(7629); + expect(estimate.gasLimit).toEqual(40928); expect(estimate.storageLimit).toEqual(634); - expect(estimate.suggestedFeeMutez).toEqual(1260); - expect(estimate.burnFeeMutez).toEqual(158500); - expect(estimate.minimalFeeMutez).toEqual(1160); - expect(estimate.totalCost).toEqual(159660); - expect(estimate.usingBaseFeeMutez).toEqual(1160); - expect(estimate.consumedMilligas).toEqual(7528936); + expect(estimate.suggestedFeeMutez).toEqual(4592); + expect(estimate.burnFeeMutez).toEqual(634000); + expect(estimate.minimalFeeMutez).toEqual(4492); + expect(estimate.totalCost).toEqual(638492); + expect(estimate.usingBaseFeeMutez).toEqual(4492); + expect(estimate.consumedMilligas).toEqual(40828000); // Do the actual operation const op2 = await contract.methods.do(originate2()).send(); await op2.confirmation(); @@ -284,7 +284,7 @@ CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => }) }) - describe(`Estimate with very low balance using: ${rpc}`, () => { + describe('Estimate with very low balance', () => { let LowAmountTez: TezosToolkit; const amt = 2000 + DEFAULT_FEE.REVEAL; @@ -297,7 +297,7 @@ CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => done() }) - florencenet('Estimate transfer to regular address', async (done) => { + delphinet('Estimate transfer to regular address', async (done) => { let estimate = await LowAmountTez.estimate.transfer({ to: await Tezos.signer.publicKeyHash(), mutez: true, amount: amt - (1382 + DEFAULT_FEE.REVEAL) }); expect(estimate.gasLimit).toEqual(1527); expect(estimate.storageLimit).toEqual(0); @@ -310,16 +310,16 @@ CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => done(); }); - edonet('Estimate transfer to regular address', async (done) => { + carthagenet('Estimate transfer to regular address', async (done) => { let estimate = await LowAmountTez.estimate.transfer({ to: await Tezos.signer.publicKeyHash(), mutez: true, amount: amt - (1382 + DEFAULT_FEE.REVEAL) }); - expect(estimate.gasLimit).toEqual(1527); + expect(estimate.gasLimit).toEqual(10307); expect(estimate.storageLimit).toEqual(0); - expect(estimate.suggestedFeeMutez).toEqual(504); + expect(estimate.suggestedFeeMutez).toEqual(1384); expect(estimate.burnFeeMutez).toEqual(0); - expect(estimate.minimalFeeMutez).toEqual(404); - expect(estimate.totalCost).toEqual(404); - expect(estimate.usingBaseFeeMutez).toEqual(404); - expect(estimate.consumedMilligas).toEqual(1427000); + expect(estimate.minimalFeeMutez).toEqual(1284); + expect(estimate.totalCost).toEqual(1284); + expect(estimate.usingBaseFeeMutez).toEqual(1284); + expect(estimate.consumedMilligas).toEqual(10207000); done(); }); @@ -335,7 +335,7 @@ CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => done(); }); - it('Estimate transfer to regular address with insufficient balance', async (done) => { + it('Estimate transfer to regular address with unsufficient balance', async (done) => { await expect( LowAmountTez.estimate.transfer({ to: await Tezos.signer.publicKeyHash(), mutez: true, amount: amt }) ).rejects.toEqual( @@ -345,7 +345,7 @@ CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => done(); }); - it('Estimate transfer to regular address with insufficient balance to pay storage for allocation', async (done) => { + it('Estimate transfer to regular address with unsufficient balance to pay storage for allocation', async (done) => { await expect( LowAmountTez.estimate.transfer({ to: await (await createAddress()).signer.publicKeyHash(), mutez: true, amount: amt - (1382 + DEFAULT_FEE.REVEAL) }) ).rejects.toEqual( @@ -355,7 +355,7 @@ CONFIGS().forEach(({ lib, setup, knownBaker, createAddress, protocol, rpc }) => done(); }); - it('Estimate origination with insufficient balance to pay storage', async (done) => { + it('Estimate origination with unsufficient balance to pay storage', async (done) => { await expect(LowAmountTez.estimate.originate({ balance: "0", code: ligoSample, diff --git a/integration-tests/contract-fetch-multiple-big-map-keys.spec.ts b/integration-tests/contract-fetch-multiple-big-map-keys.spec.ts deleted file mode 100644 index ee98408b61..0000000000 --- a/integration-tests/contract-fetch-multiple-big-map-keys.spec.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { CONFIGS } from './config'; -import { tokenCode } from './data/tokens'; -import { MichelsonMap, BigMapAbstraction } from '@taquito/taquito'; -import BigNumber from 'bignumber.js'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - const test = require('jest-retries'); - - describe(`Test accessing big map abstraction by index using: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - test('originates a contract with empty bigmap and fetches the storage/bigmap', 2, async (done: () => void) => { - const signer = await Tezos.signer.publicKeyHash(); - - const bigMapInit = new MichelsonMap(); - bigMapInit.set(signer, { 0: '1', 1: new MichelsonMap() }); - bigMapInit.set('tz3PNdfg3Fc8hH4m9iSs7bHgDgugsufJnBZ1', { 0: '2', 1: new MichelsonMap() }); - bigMapInit.set('tz2Ch1abG7FNiibmV26Uzgdsnfni9XGrk5wD', { 0: '3', 1: new MichelsonMap() }); - bigMapInit.set('tz3YjfexGakCDeCseXFUpcXPSAN9xHxE9TH2', { 0: '4', 1: new MichelsonMap() }); - // Deploy a contract with a big map - const op = await Tezos.contract.originate({ - code: tokenCode, - storage: { - 0: bigMapInit, - 1: signer, - 2: true, - 3: '3' - } - }); - const contract = await op.contract(); - - interface StorageType { - 0: BigMapAbstraction, - 1: string, - 2: boolean, - 3: BigNumber - } - interface BigMapVal { - 0: BigNumber, - 1: MichelsonMap<string, BigNumber> - } - - // Fetch the storage of the newly deployed contract - const storage = await contract.storage<StorageType>(); - - // First property is the big map abstraction (This contract does not have annotations so we access by index) - const bigMap = storage['0']; - - // Fetch multiples keys - const bigMapValues = await bigMap.getMultipleValues<BigMapVal>(['tz3PNdfg3Fc8hH4m9iSs7bHgDgugsufJnBZ1', 'tz2Ch1abG7FNiibmV26Uzgdsnfni9XGrk5wD', 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', 'tz3YjfexGakCDeCseXFUpcXPSAN9xHxE9TH2']); - expect(bigMapValues.get('tz3PNdfg3Fc8hH4m9iSs7bHgDgugsufJnBZ1')!['0'].toString()).toEqual('2'); - expect(bigMapValues.get('tz3PNdfg3Fc8hH4m9iSs7bHgDgugsufJnBZ1')!['1']).toEqual(expect.objectContaining(new MichelsonMap())); - - expect(bigMapValues.get('tz2Ch1abG7FNiibmV26Uzgdsnfni9XGrk5wD')!['0'].toString()).toEqual('3'); - expect(bigMapValues.get('tz2Ch1abG7FNiibmV26Uzgdsnfni9XGrk5wD')!['1']).toEqual(expect.objectContaining(new MichelsonMap())); - - expect(bigMapValues.has('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn')).toBeTruthy(); - expect(bigMapValues.get('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn')).toBeUndefined(); - - expect(bigMapValues.get('tz3YjfexGakCDeCseXFUpcXPSAN9xHxE9TH2')!['0'].toString()).toEqual('4'); - expect(bigMapValues.get('tz3YjfexGakCDeCseXFUpcXPSAN9xHxE9TH2')!['1']).toEqual(expect.objectContaining(new MichelsonMap())); - - - // Specify a level - const { header } = await Tezos.rpc.getBlock(); - - // Fetch multiples keys - const bigMapValuesWithLevel = await bigMap.getMultipleValues<BigMapVal>(['tz3PNdfg3Fc8hH4m9iSs7bHgDgugsufJnBZ1', 'tz2Ch1abG7FNiibmV26Uzgdsnfni9XGrk5wD'], header.level); - expect(bigMapValuesWithLevel.get('tz3PNdfg3Fc8hH4m9iSs7bHgDgugsufJnBZ1')!['0'].toString()).toEqual('2'); - expect(bigMapValuesWithLevel.get('tz3PNdfg3Fc8hH4m9iSs7bHgDgugsufJnBZ1')!['1']).toEqual(expect.objectContaining(new MichelsonMap())); - - expect(bigMapValuesWithLevel.get('tz2Ch1abG7FNiibmV26Uzgdsnfni9XGrk5wD')!['0'].toString()).toEqual('3'); - expect(bigMapValuesWithLevel.get('tz2Ch1abG7FNiibmV26Uzgdsnfni9XGrk5wD')!['1']).toEqual(expect.objectContaining(new MichelsonMap())); - - done(); - }); - }); -}); diff --git a/integration-tests/contract-manager-that-calls-failwith-contract.spec.ts b/integration-tests/contract-manager-that-calls-failwith-contract.spec.ts index ee1ce5a645..44a25b0204 100644 --- a/integration-tests/contract-manager-that-calls-failwith-contract.spec.ts +++ b/integration-tests/contract-manager-that-calls-failwith-contract.spec.ts @@ -5,16 +5,13 @@ import { MANAGER_LAMBDA } from "@taquito/taquito"; CONFIGS().forEach(({ lib, rpc, setup }) => { const Tezos = lib; - - const test = require('jest-retries'); - describe(`Test contract that calls 2nd contract that FAILs: ${rpc}`, () => { beforeEach(async (done) => { await setup() done() }) - test('Catches a Failwith from a contract called via a manager contract', 2, async (done: () => void) => { + it('Catches a Failwith from a contract called via a manager contract', async (done) => { const op = await Tezos.contract.originate({ balance: "1", code: failwithContractCode, diff --git a/integration-tests/contract-michelson-origination.spec.ts b/integration-tests/contract-michelson-origination.spec.ts index f29bb34f22..fe21479059 100644 --- a/integration-tests/contract-michelson-origination.spec.ts +++ b/integration-tests/contract-michelson-origination.spec.ts @@ -18,6 +18,7 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { await op.confirmation() expect(op.hash).toBeDefined(); expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) + console.log(op.contractAddress) done(); }); }); diff --git a/integration-tests/contract-originate-contract-unpair.spec.ts b/integration-tests/contract-originate-contract-unpair.spec.ts deleted file mode 100644 index 72f760039e..0000000000 --- a/integration-tests/contract-originate-contract-unpair.spec.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { CONFIGS } from './config'; -import { miStr, miObject } from './data/contractWithUnpair'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - const test = require('jest-retries'); - - describe(`Test origination of contract with UNPAIR using: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - - test('Originates a contract having UNPAIR with code and init in Michelson', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: miStr, - init: '(Pair 0 "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn")' - }); - - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - - expect(instUnpair).toBeDefined(); - done(); - }); - - test('Originates a contract having UNPAIR with code in Michelson and init in JSON Michelson', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: miStr, - init: { prim: 'Pair', args: [{ int: '0' }, { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }] } - }); - - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - }); - - test('Originates a contract having UNPAIR with code in Michelson and storage', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: miStr, - storage: { - 0: '0', - 1: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' - } - }); - - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - }); - - test('Originates a contract having UNPAIR with code in JSON Michelson and init in Michelson', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: miObject, - init: '(Pair 0 "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn")' - }); - - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - }); - - test('Originates a contract having UNPAIR with code and init in JSON Michelson', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: miObject, - init: { prim: 'Pair', args: [{ int: '0' }, { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }] } - }); - - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - }); - - test('Originates a contract having UNPAIR with code in JSON Michelson and storage', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: miObject, - storage: { - 0: '0', - 1: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' - } - }); - - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - - done(); - }); - }); -}); diff --git a/integration-tests/contract-originate-contract-with-sapling.spec.ts b/integration-tests/contract-originate-contract-with-sapling.spec.ts deleted file mode 100644 index af17782803..0000000000 --- a/integration-tests/contract-originate-contract-with-sapling.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { CONFIGS } from "./config"; -import { rpcContractResponse, rpcContractResponse2, rpcContractResponse4 } from '../packages/taquito-michelson-encoder/data/sample19_sapling'; -import { Protocols } from "@taquito/taquito"; - -CONFIGS().forEach(({ lib, rpc, protocol, setup, }) => { - const Tezos = lib; - const edonet = (protocol === Protocols.PtEdo2Zk) ? require('jest-retries') : test.skip; - - describe(`Test origination of contracts with sapling using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup(); - done() - }) - edonet('Originates a contract having an empty sapling state in its storage', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: rpcContractResponse.script.code, - init: `{}` // empty sapling state - }); - - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - - done(); - }); - - edonet('Originates a contract with sapling states in its storage', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: rpcContractResponse2.script.code, - init: `(Pair 0 {} {})` - }); - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - edonet('Originates a contract with sapling states in its storage and init in JSON', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: rpcContractResponse4.script.code, - init: { prim: 'Pair', args: [ [], [] ] } - }); - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - }); -}) diff --git a/integration-tests/contract-originate-invalid-string.spec.ts b/integration-tests/contract-originate-invalid-string.spec.ts index 706fae3045..0d371a039a 100644 --- a/integration-tests/contract-originate-invalid-string.spec.ts +++ b/integration-tests/contract-originate-invalid-string.spec.ts @@ -3,15 +3,13 @@ import { CONFIGS } from "./config"; CONFIGS().forEach(({ lib, rpc, setup, protocol }) => { const Tezos = lib; - const test = require('jest-retries'); - describe(`Test invalid data for origination using: ${rpc}`, () => { beforeEach(async (done) => { await setup() done() }) - test('fails because there is non-ascii in the init data', 2, async (done: () => void) => { + it('fails because non-ascii in init data', async (done) => { expect.assertions(1); try { await Tezos.contract.originate({ @@ -26,10 +24,8 @@ CONFIGS().forEach(({ lib, rpc, setup, protocol }) => { init: `"Copyright ©"` }) } catch (ex) { - if (protocol === Protocols.PtEdo2Zk) { - expect(ex).toEqual(expect.objectContaining({ message: expect.stringContaining('michelson_v1.invalid_syntactic_constant') })) - } else if (protocol === Protocols.PsFLorena) { - expect(ex).toEqual(expect.objectContaining({ message: expect.stringContaining('invalid_syntactic_constant') })) + if( protocol === Protocols.PsCARTHA) { + expect(ex).toEqual(expect.objectContaining({ message: expect.stringContaining('invalidSyntacticConstantError') })) } else { expect(ex).toEqual(expect.objectContaining({ message: expect.stringContaining('invalid_constant') })) } diff --git a/integration-tests/contract-pair-as-key.spec.ts b/integration-tests/contract-pair-as-key.spec.ts index 1617b3eaaf..474fe37d42 100644 --- a/integration-tests/contract-pair-as-key.spec.ts +++ b/integration-tests/contract-pair-as-key.spec.ts @@ -1,5 +1,5 @@ import { CONFIGS } from "./config"; -import { BigMapAbstraction, MichelsonMap } from "@taquito/taquito"; +import { MichelsonMap } from "@taquito/taquito"; import { storageContractWithPairAsKey } from "./data/storage-contract-with-pair-as-key"; import { mapWithPairAsKeyCode, mapWithPairAsKeyStorage } from "./data/bigmap_with_pair_as_key"; @@ -84,7 +84,7 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { init: mapWithPairAsKeyStorage }) const contract = await op.contract() - const storage2: BigMapAbstraction = await contract.storage(); + const storage2 = await contract.storage<any>(); const value = await storage2.get({ 'test': 'test2', 'test2': 'test3' }) expect(value).toEqual('test') done(); diff --git a/integration-tests/contract-register-delegate.spec.ts b/integration-tests/contract-register-delegate.spec.ts deleted file mode 100644 index 8d9c91053a..0000000000 --- a/integration-tests/contract-register-delegate.spec.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { CONFIGS } from "./config"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Test register delegate: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup(true) - done() - }) - it('registers the current address as delegate', async (done) => { - try { - const pkh = await Tezos.signer.publicKeyHash(); - const op = await Tezos.contract.registerDelegate({}); - await op.confirmation() - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) - - const account = await Tezos.rpc.getDelegate(pkh) - expect(account).toEqual(pkh) - } catch (ex) { - //When running tests more than one time with the same faucet key, the account is already delegated to the given delegate - expect(ex.message).toMatch('delegate.unchanged') - } - done(); - }); - }); -}) diff --git a/integration-tests/contract-simple-origination.spec.ts b/integration-tests/contract-simple-origination.spec.ts index 2f9fcc064a..a07128222f 100644 --- a/integration-tests/contract-simple-origination.spec.ts +++ b/integration-tests/contract-simple-origination.spec.ts @@ -2,15 +2,13 @@ import { CONFIGS } from "./config"; CONFIGS().forEach(({ lib, rpc, setup }) => { const Tezos = lib; - const test = require('jest-retries'); - describe(`Originating a contract api using: ${rpc}`, () => { beforeEach(async (done) => { await setup() done() }) - test('Simple origination scenario', 2, async (done: () => void) => { + it('Simple origination scenario', async (done) => { const op = await Tezos.contract.originate({ balance: "1", code: `parameter string; diff --git a/integration-tests/contract-tx-wait-2-confirmations.spec.ts b/integration-tests/contract-tx-wait-2-confirmations.spec.ts index b9583c7f9a..5f4d45827e 100644 --- a/integration-tests/contract-tx-wait-2-confirmations.spec.ts +++ b/integration-tests/contract-tx-wait-2-confirmations.spec.ts @@ -2,14 +2,13 @@ import { CONFIGS } from "./config"; CONFIGS().forEach(({ lib, rpc, setup }) => { const Tezos = lib; - const test = require('jest-retries'); describe(`Test tx and waiting for 2 confirmations using: ${rpc}`, () => { beforeEach(async (done) => { await setup() done() }) - test('transfers 2 tez and waits for 2 confirmations', 2, async (done: () => void) => { + it('transfers 2 tez and waits for 2 confirmations', async (done) => { const op = await Tezos.contract.transfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) await op.confirmation() expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) diff --git a/integration-tests/contract-unit-as-param.spec.ts b/integration-tests/contract-unit-as-param.spec.ts index e63c2c813b..c403531e33 100644 --- a/integration-tests/contract-unit-as-param.spec.ts +++ b/integration-tests/contract-unit-as-param.spec.ts @@ -3,15 +3,13 @@ import { depositContractCode, depositContractStorage } from "./data/deposit_cont CONFIGS().forEach(({ lib, rpc, setup }) => { const Tezos = lib; - const test = require('jest-retries'); - describe(`Test contract with unit as params using: ${rpc}`, () => { beforeEach(async (done) => { await setup() done() }) - test('Originates contract and calls deposit method with unit param', 2 , async (done: () => void) => { + it('originates contract and calls deposit method with unit param', async (done) => { const op = await Tezos.contract.originate({ balance: "1", code: depositContractCode, diff --git a/integration-tests/contract-with-bigmap-init.spec.ts b/integration-tests/contract-with-bigmap-init.spec.ts index afa9eb73ae..11353ce50a 100644 --- a/integration-tests/contract-with-bigmap-init.spec.ts +++ b/integration-tests/contract-with-bigmap-init.spec.ts @@ -4,15 +4,13 @@ import { tokenBigmapCode } from "./data/token_bigmap"; CONFIGS().forEach(({ lib, rpc, setup }) => { const Tezos = lib; - const test = require('jest-retries'); - describe(`Token with big map and with initial data using: ${rpc}`, () => { beforeEach(async (done) => { await setup() done() }) - test('Originate token contract with big map and with initialize storage/bigmaps',2, async (done: () => void) => { + it('Originage token contract with big map and with initialize storage/bigmaps', async (done) => { const addr = await Tezos.signer.publicKeyHash(); const initialStorage = { owner: addr, diff --git a/integration-tests/data/contract-with-never-in-param.ts b/integration-tests/data/contract-with-never-in-param.ts deleted file mode 100644 index 7748fb91a1..0000000000 --- a/integration-tests/data/contract-with-never-in-param.ts +++ /dev/null @@ -1,1148 +0,0 @@ -export const contractWithNever = `{ parameter - (or (or %adminAndInteract (or (never %admin) (nat %bid)) (or (nat %cancel) (nat %resolve))) - (pair %configure - (mutez %opening_price) - (pair (nat %min_raise_percent) - (pair (mutez %min_raise) - (pair (nat %round_time) - (pair (nat %extend_time) - (pair (list %asset - (pair (address %fa2_address) (list %fa2_batch (pair (nat %token_id) (nat %amount))))) - (pair (timestamp %start_time) (timestamp %end_time))))))))) ; - storage - (pair (unit %admin) - (pair (nat %current_id) - (pair (nat %max_auction_time) - (pair (nat %max_config_to_start_time) - (big_map %auctions - nat - (pair (address %seller) - (pair (mutez %current_bid) - (pair (timestamp %start_time) - (pair (timestamp %last_bid_time) - (pair (int %round_time) - (pair (int %extend_time) - (pair (list %asset - (pair (address %fa2_address) (list %fa2_batch (pair (nat %token_id) (nat %amount))))) - (pair (nat %min_raise_percent) - (pair (mutez %min_raise) (pair (timestamp %end_time) (address %highest_bidder)))))))))))))))) ; - code { LAMBDA - (pair bool string) - unit - { UNPAIR ; NOT ; IF { FAILWITH } { DROP ; UNIT } } ; - LAMBDA - (pair (pair (list (pair address (list (pair nat nat)))) address) address) - (list operation) - { UNPAIR ; - UNPAIR ; - MAP { DUP ; - CDR ; - MAP { DUP 4 ; PAIR } ; - SWAP ; - CAR ; - CONTRACT %transfer - (list (pair (address %from_) - (list %txs (pair (address %to_) (pair (nat %token_id) (nat %amount)))))) ; - IF_NONE { PUSH string "Invalid FA2 Address" ; FAILWITH } {} ; - PUSH mutez 0 ; - NIL (pair address (list (pair address (pair nat nat)))) ; - DIG 3 ; - DUP 5 ; - PAIR ; - CONS ; - TRANSFER_TOKENS } ; - SWAP ; - DROP ; - SWAP ; - DROP } ; - LAMBDA - (pair nat - (pair unit - (pair nat - (pair nat - (pair nat - (big_map - nat - (pair address - (pair mutez - (pair timestamp - (pair timestamp - (pair int - (pair int - (pair (list (pair address (list (pair nat nat)))) - (pair nat (pair mutez (pair timestamp address)))))))))))))))) - (pair address - (pair mutez - (pair timestamp - (pair timestamp - (pair int - (pair int - (pair (list (pair address (list (pair nat nat)))) - (pair nat (pair mutez (pair timestamp address)))))))))) - { UNPAIR ; - SWAP ; - CDR ; - CDR ; - CDR ; - CDR ; - SWAP ; - GET ; - IF_NONE - { PUSH string "Auction does not exist for given asset_id" ; FAILWITH } - {} } ; - LAMBDA - address - (contract unit) - { CONTRACT unit ; - IF_NONE - { PUSH string "Return address does not resolve to contract" ; FAILWITH } - {} } ; - LAMBDA - (pair address - (pair mutez - (pair timestamp - (pair timestamp - (pair int - (pair int - (pair (list (pair address (list (pair nat nat)))) - (pair nat (pair mutez (pair timestamp address)))))))))) - bool - { DUP ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CAR ; - ADD ; - NOW ; - COMPARE ; - GT ; - SWAP ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - NOW ; - COMPARE ; - GE ; - OR } ; - DIG 5 ; - UNPAIR ; - IF_LEFT - { IF_LEFT - { DIG 5 ; - DROP ; - IF_LEFT - { DIG 2 ; - DROP ; - DIG 2 ; - DROP ; - DIG 2 ; - DROP ; - PUSH string "Amount must be 0mutez" ; - PUSH mutez 0 ; - AMOUNT ; - COMPARE ; - EQ ; - PAIR ; - DIG 3 ; - SWAP ; - EXEC ; - DROP ; - SWAP ; - DUP ; - DUG 2 ; - CAR ; - SWAP ; - DROP ; - NIL operation ; - DIG 2 ; - CDR ; - DIG 2 ; - PAIR ; - SWAP ; - PAIR } - { SWAP ; - DUP ; - DUG 2 ; - SWAP ; - DUP ; - DUG 2 ; - PAIR ; - DIG 5 ; - SWAP ; - EXEC ; - PUSH string "Bidder must be an implicit account" ; - SOURCE ; - SENDER ; - COMPARE ; - EQ ; - PAIR ; - DUP 7 ; - SWAP ; - EXEC ; - DROP ; - PUSH string "Auction must be in progress" ; - SWAP ; - DUP ; - DUG 2 ; - DIG 5 ; - SWAP ; - EXEC ; - NOT ; - DUP 3 ; - CDR ; - CDR ; - CAR ; - NOW ; - COMPARE ; - GE ; - AND ; - PAIR ; - DUP 6 ; - SWAP ; - EXEC ; - DROP ; - PUSH string "Seller cannot place a bid" ; - SWAP ; - DUP ; - DUG 2 ; - CAR ; - SENDER ; - COMPARE ; - NEQ ; - PAIR ; - DIG 5 ; - SWAP ; - EXEC ; - DROP ; - DUP ; - CAR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - COMPARE ; - EQ ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CAR ; - AMOUNT ; - COMPARE ; - GE ; - AND ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - DUP 3 ; - CDR ; - CAR ; - ADD ; - AMOUNT ; - COMPARE ; - GE ; - PUSH nat 100 ; - DUP 4 ; - CDR ; - CAR ; - DUP 5 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - MUL ; - EDIV ; - IF_NONE - { PUSH string "DIVISION_BY_ZERO" ; FAILWITH } - { UNPAIR ; - PUSH mutez 0 ; - DIG 2 ; - COMPARE ; - GT ; - IF { PUSH mutez 1 ; ADD } {} } ; - DUP 4 ; - CDR ; - CAR ; - ADD ; - AMOUNT ; - COMPARE ; - GE ; - OR ; - OR ; - NOT ; - IF { NOW ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CAR ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - PAIR ; - AMOUNT ; - DUP 4 ; - CDR ; - CAR ; - PAIR ; - PAIR ; - PAIR ; - PUSH string "Invalid Bid amount" ; - PAIR ; - FAILWITH } - {} ; - DUP ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - DIG 4 ; - SWAP ; - EXEC ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CAR ; - UNIT ; - TRANSFER_TOKENS ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - NOW ; - DUP 4 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - SUB ; - COMPARE ; - LE ; - IF { SWAP ; DUP ; DUG 2 ; CDR ; CDR ; CDR ; CDR ; CDR ; CAR ; NOW ; ADD } - { SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR } ; - DUP 3 ; - CDR ; - CDR ; - AMOUNT ; - PAIR ; - DIG 3 ; - CAR ; - PAIR ; - SENDER ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CAR ; - PAIR ; - SWAP ; - CAR ; - PAIR ; - DUP ; - CDR ; - CDR ; - CDR ; - CDR ; - NOW ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CAR ; - PAIR ; - SWAP ; - CAR ; - PAIR ; - DUP ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - DIG 2 ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CAR ; - PAIR ; - SWAP ; - CAR ; - PAIR ; - DUP 4 ; - CDR ; - CDR ; - CDR ; - CDR ; - SWAP ; - SOME ; - DIG 3 ; - UPDATE ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - DUP 3 ; - CDR ; - CDR ; - CAR ; - PAIR ; - DUP 3 ; - CDR ; - CAR ; - PAIR ; - DIG 2 ; - CAR ; - PAIR ; - NIL operation ; - DIG 2 ; - CONS ; - PAIR } } - { IF_LEFT - { SWAP ; - DUP ; - DUG 2 ; - SWAP ; - DUP ; - DUG 2 ; - PAIR ; - DIG 5 ; - SWAP ; - EXEC ; - PUSH string "Only seller can cancel auction" ; - SWAP ; - DUP ; - DUG 2 ; - CAR ; - SENDER ; - COMPARE ; - EQ ; - PAIR ; - DUP 8 ; - SWAP ; - EXEC ; - DROP ; - PUSH string "Auction must not have ended" ; - SWAP ; - DUP ; - DUG 2 ; - DIG 5 ; - SWAP ; - EXEC ; - NOT ; - PAIR ; - DUP 7 ; - SWAP ; - EXEC ; - DROP ; - PUSH string "Amount must be 0mutez" ; - PUSH mutez 0 ; - AMOUNT ; - COMPARE ; - EQ ; - PAIR ; - DIG 6 ; - SWAP ; - EXEC ; - DROP ; - DUP ; - CAR ; - SELF_ADDRESS ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - PAIR ; - DIG 5 ; - SWAP ; - EXEC ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - DIG 5 ; - SWAP ; - EXEC ; - DIG 2 ; - CDR ; - CAR ; - UNIT ; - TRANSFER_TOKENS ; - DUP 4 ; - CDR ; - CDR ; - CDR ; - CDR ; - DIG 3 ; - NONE (pair address - (pair mutez - (pair timestamp - (pair timestamp - (pair int - (pair int - (pair (list (pair address (list (pair nat nat)))) - (pair nat (pair mutez (pair timestamp address)))))))))) ; - SWAP ; - UPDATE ; - DUP 4 ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - DUP 4 ; - CDR ; - CDR ; - CAR ; - PAIR ; - DUP 4 ; - CDR ; - CAR ; - PAIR ; - DIG 3 ; - CAR ; - PAIR ; - DUG 2 ; - CONS ; - PAIR } - { SWAP ; - DUP ; - DUG 2 ; - SWAP ; - DUP ; - DUG 2 ; - PAIR ; - DIG 5 ; - SWAP ; - EXEC ; - PUSH string "Auction must have ended" ; - SWAP ; - DUP ; - DUG 2 ; - DIG 5 ; - SWAP ; - EXEC ; - PAIR ; - DUP 7 ; - SWAP ; - EXEC ; - DROP ; - PUSH string "Amount must be 0mutez" ; - PUSH mutez 0 ; - AMOUNT ; - COMPARE ; - EQ ; - PAIR ; - DIG 6 ; - SWAP ; - EXEC ; - DROP ; - DUP ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - SELF_ADDRESS ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - PAIR ; - DIG 5 ; - SWAP ; - EXEC ; - SWAP ; - DUP ; - DUG 2 ; - CAR ; - DIG 5 ; - SWAP ; - EXEC ; - DIG 2 ; - CDR ; - CAR ; - UNIT ; - TRANSFER_TOKENS ; - DUP 4 ; - CDR ; - CDR ; - CDR ; - CDR ; - DIG 3 ; - NONE (pair address - (pair mutez - (pair timestamp - (pair timestamp - (pair int - (pair int - (pair (list (pair address (list (pair nat nat)))) - (pair nat (pair mutez (pair timestamp address)))))))))) ; - SWAP ; - UPDATE ; - DUP 4 ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - DUP 4 ; - CDR ; - CDR ; - CAR ; - PAIR ; - DUP 4 ; - CDR ; - CAR ; - PAIR ; - DIG 3 ; - CAR ; - PAIR ; - DUG 2 ; - CONS ; - PAIR } } } - { DIG 2 ; - DROP ; - DIG 2 ; - DROP ; - DIG 2 ; - DROP ; - SWAP ; - SENDER ; - DUP 3 ; - PUSH string "end_time must be after start_time" ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - COMPARE ; - GT ; - PAIR ; - DUP 7 ; - SWAP ; - EXEC ; - DROP ; - PUSH string "Auction time must be less than max_auction_time" ; - DUP 4 ; - CDR ; - CDR ; - CAR ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - DUP 4 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - SUB ; - ABS ; - COMPARE ; - LE ; - PAIR ; - DUP 7 ; - SWAP ; - EXEC ; - DROP ; - PUSH string "Start_time must not have already passed" ; - NOW ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - COMPARE ; - GE ; - PAIR ; - DUP 7 ; - SWAP ; - EXEC ; - DROP ; - PUSH string - "start_time must not be greater than the sum of current time and max_config_to_start_time" ; - DUP 4 ; - CDR ; - CDR ; - CDR ; - CAR ; - NOW ; - DUP 4 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - SUB ; - ABS ; - COMPARE ; - LE ; - PAIR ; - DUP 7 ; - SWAP ; - EXEC ; - DROP ; - PUSH string "Opening price must be greater than 0mutez" ; - PUSH mutez 0 ; - DUP 3 ; - CAR ; - COMPARE ; - GT ; - PAIR ; - DUP 7 ; - SWAP ; - EXEC ; - DROP ; - PUSH string "Amount must be equal to opening_price" ; - SWAP ; - DUP ; - DUG 2 ; - CAR ; - AMOUNT ; - COMPARE ; - EQ ; - PAIR ; - DUP 7 ; - SWAP ; - EXEC ; - DROP ; - PUSH string "Round_time must be greater than 0 seconds" ; - PUSH nat 0 ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CAR ; - COMPARE ; - GT ; - PAIR ; - DIG 6 ; - SWAP ; - EXEC ; - DROP ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - DUP 3 ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - PAIR ; - DUP 3 ; - CDR ; - CDR ; - CAR ; - PAIR ; - DUP 3 ; - CDR ; - CAR ; - PAIR ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - INT ; - PAIR ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CAR ; - INT ; - PAIR ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - DUP 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - DIG 2 ; - CAR ; - PAIR ; - DIG 2 ; - PAIR ; - SOME ; - DUP 3 ; - CDR ; - CAR ; - UPDATE ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CDR ; - CAR ; - PAIR ; - SWAP ; - DUP ; - DUG 2 ; - CAR ; - PAIR ; - DUP ; - CDR ; - CDR ; - PUSH nat 1 ; - DIG 3 ; - CDR ; - CAR ; - ADD ; - PAIR ; - SWAP ; - CAR ; - PAIR ; - SELF_ADDRESS ; - SENDER ; - DIG 3 ; - CDR ; - CDR ; - CDR ; - CDR ; - CDR ; - CAR ; - PAIR ; - PAIR ; - DIG 2 ; - SWAP ; - EXEC ; - PAIR } } }` - diff --git a/integration-tests/data/contractWithUnpair.ts b/integration-tests/data/contractWithUnpair.ts deleted file mode 100644 index 81a6637ad7..0000000000 --- a/integration-tests/data/contractWithUnpair.ts +++ /dev/null @@ -1,142 +0,0 @@ -export const miStr = `parameter int; # the participant's guess -storage (pair - int # the number of guesses made by participants - address # the address to send the winning pot to if the participants fail - ); -code { - # (pair parameter storage) : [] - - # make sure that the participant has contributed at least 1 tez - PUSH mutez 1000000; - AMOUNT; - IFCMPGE {} { PUSH string "You did not provide enough tez."; FAILWITH; }; - - # check that the number of guesses has not been exceeded - UNPAIR; SWAP; # storage : parameter : [] - DUP; # storage : storage : parameter : [] - CAR; # int : storage : parameter : [] - DIP { PUSH int 15; }; - IFCMPLT { # check if guess is correct - SWAP; # parameter : storage : [] - PUSH int 34; - IFCMPEQ { # the participant guessed correctly, give them the tokens. - SENDER; - CONTRACT unit; - IF_SOME {} { FAILWITH; }; - BALANCE; - UNIT; - TRANSFER_TOKENS; - NIL operation; SWAP; CONS; PAIR; - } - { # the participant guessed incorrectly, increment the number of guesses performed. - UNPAIR; - PUSH int 1; - ADD; - PAIR; - NIL operation; PAIR; - }; - } - { # attempts exceeded, give winnings to the specified address - DIP { DROP; }; # storage : [] - DUP; CDR; - CONTRACT unit; - IF_SOME {} { FAILWITH; }; - BALANCE; - UNIT; - TRANSFER_TOKENS; - NIL operation; SWAP; CONS; PAIR; - }; - }; -`; - -export const miObject = [ - { prim: 'parameter', args: [ { prim: 'int' } ] }, - { prim: 'storage', args: [ { prim: 'pair', args: [ { prim: 'int' }, { prim: 'address' } ] } ] }, - { - prim: 'code', - args: [ - [ - { prim: 'PUSH', args: [ { prim: 'mutez' }, { int: '1000000' } ] }, - { prim: 'AMOUNT' }, - [ - { prim: 'COMPARE' }, - { prim: 'GE' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ { prim: 'string' }, { string: 'You did not provide enough tez.' } ] - }, - { prim: 'FAILWITH' } - ] - ] - } - ], - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DIP', args: [ [ { prim: 'PUSH', args: [ { prim: 'int' }, { int: '15' } ] } ] ] }, - [ - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'PUSH', args: [ { prim: 'int' }, { int: '34' } ] }, - [ - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'SENDER' }, - { prim: 'CONTRACT', args: [ { prim: 'unit' } ] }, - [ { prim: 'IF_NONE', args: [ [ { prim: 'FAILWITH' } ], [] ] } ], - { prim: 'BALANCE' }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'SWAP' }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ], - [ - { prim: 'UNPAIR' }, - { prim: 'PUSH', args: [ { prim: 'int' }, { int: '1' } ] }, - { prim: 'ADD' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'PAIR' } - ] - ] - } - ] - ], - [ - { prim: 'DIP', args: [ [ { prim: 'DROP' } ] ] }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CONTRACT', args: [ { prim: 'unit' } ] }, - [ { prim: 'IF_NONE', args: [ [ { prim: 'FAILWITH' } ], [] ] } ], - { prim: 'BALANCE' }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'SWAP' }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - ] - } -]; diff --git a/integration-tests/data/fa2-for-token-metadata-view.ts b/integration-tests/data/fa2-for-token-metadata-view.ts deleted file mode 100644 index f0d0ad0555..0000000000 --- a/integration-tests/data/fa2-for-token-metadata-view.ts +++ /dev/null @@ -1,1917 +0,0 @@ -export const fa2ForTokenMetadataView = [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%owner'] }, - { prim: 'nat', annots: ['%token_id'] } - ] - } - ], - annots: ['%requests'] - }, - { - prim: 'contract', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%owner'] }, - { prim: 'nat', annots: ['%token_id'] } - ], - annots: ['%request'] - }, - { prim: 'nat', annots: ['%balance'] } - ] - } - ] - } - ], - annots: ['%callback'] - } - ], - annots: ['%balance_of'] - }, - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%address'] }, - { prim: 'nat', annots: ['%amount'] } - ] - }, - { - prim: 'pair', - args: [ - { - prim: 'map', - args: [{ prim: 'string' }, { prim: 'bytes' }], - annots: ['%metadata'] - }, - { prim: 'nat', annots: ['%token_id'] } - ] - } - ], - annots: ['%mint'] - } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'mutez', annots: ['%amount'] }, - { prim: 'address', annots: ['%destination'] } - ], - annots: ['%mutez_transfer'] - }, - { prim: 'address', annots: ['%set_administrator'] } - ] - } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'string', annots: ['%k'] }, - { prim: 'bytes', annots: ['%v'] } - ], - annots: ['%set_metdata'] - }, - { prim: 'bool', annots: ['%set_pause'] } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%from_'] }, - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%to_'] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%token_id'] }, - { prim: 'nat', annots: ['%amount'] } - ] - } - ] - } - ], - annots: ['%txs'] - } - ] - } - ], - annots: ['%transfer'] - }, - { - prim: 'list', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%owner'] }, - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%operator'] }, - { prim: 'nat', annots: ['%token_id'] } - ] - } - ], - annots: ['%add_operator'] - }, - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%owner'] }, - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%operator'] }, - { prim: 'nat', annots: ['%token_id'] } - ] - } - ], - annots: ['%remove_operator'] - } - ] - } - ], - annots: ['%update_operators'] - } - ] - } - ] - } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%administrator'] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%all_tokens'] }, - { - prim: 'big_map', - args: [ - { prim: 'pair', args: [{ prim: 'address' }, { prim: 'nat' }] }, - { prim: 'nat' } - ], - annots: ['%ledger'] - } - ] - } - ] - }, - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'big_map', - args: [{ prim: 'string' }, { prim: 'bytes' }], - annots: ['%metadata'] - }, - { - prim: 'big_map', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%owner'] }, - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%operator'] }, - { prim: 'nat', annots: ['%token_id'] } - ] - } - ] - }, - { prim: 'unit' } - ], - annots: ['%operators'] - } - ] - }, - { - prim: 'pair', - args: [ - { prim: 'bool', annots: ['%paused'] }, - { - prim: 'big_map', - args: [ - { prim: 'nat' }, - { - prim: 'pair', - args: [ - { - prim: 'map', - args: [{ prim: 'string' }, { prim: 'bytes' }], - annots: ['%metadata_map'] - }, - { prim: 'nat', annots: ['%total_supply'] } - ] - } - ], - annots: ['%tokens'] - } - ] - } - ] - } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CDR' }, { prim: 'CDR' }, { prim: 'CAR' }], - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [{ prim: 'int' }, { int: '438' }] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { - prim: 'MAP', - args: [ - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - [{ prim: 'CDR' }, { prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'MEM' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'FA2_TOKEN_UNDEFINED' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - [{ prim: 'CAR' }, { prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'MEM' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - [ - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - [ - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'int' }, - { int: '445' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - } - ], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { - prim: 'PAIR', - annots: ['%owner', '%token_id'] - }, - { - prim: 'PAIR', - annots: ['%request', '%balance'] - } - ], - [ - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '0' }] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { - prim: 'PAIR', - annots: ['%owner', '%token_id'] - }, - { - prim: 'PAIR', - annots: ['%request', '%balance'] - } - ] - ] - } - ] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CAR' }, { prim: 'CAR' }], - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [{ prim: 'int' }, { int: '539' }] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DUP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - [{ prim: 'CAR' }, { prim: 'CDR' }, { prim: 'CAR' }], - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'Token-IDs should be consecutive' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'DIG', args: [{ int: '4' }] }, - [{ prim: 'CAR' }, { prim: 'CDR' }, { prim: 'CAR' }], - { prim: 'DUP' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '6' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '7' }] }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'ADD' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'LE' }, - { - prim: 'IF', - args: [ - [{ prim: 'DROP' }], - [{ prim: 'SWAP' }, { prim: 'DROP' }] - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CAR' }, { prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - [{ prim: 'CAR' }, { prim: 'CAR' }], - { prim: 'PAIR' }, - { prim: 'MEM' }, - { - prim: 'IF', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'DIG', args: [{ int: '5' }] }, - { prim: 'DUP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '7' }] }, - [{ prim: 'CAR' }, { prim: 'CAR' }], - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'GET' }, - [ - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'int' }, - { int: '551' } - ] - }, - { prim: 'FAILWITH' } - ], - [{ prim: 'DROP' }] - ] - } - ], - { prim: 'DIG', args: [{ int: '5' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '6' }] }, - [{ prim: 'CAR' }, { prim: 'CDR' }], - { prim: 'DIG', args: [{ int: '7' }] }, - [{ prim: 'CAR' }, { prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'DIG', args: [{ int: '7' }] }, - { prim: 'DUP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '9' }] }, - [{ prim: 'CAR' }, { prim: 'CAR' }], - { prim: 'PAIR' }, - { prim: 'GET' }, - [ - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'int' }, - { int: '551' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - } - ], - { prim: 'ADD' }, - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '6' }] }, - [{ prim: 'CAR' }, { prim: 'CAR' }], - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '5' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '6' }] }, - [{ prim: 'CAR' }, { prim: 'CDR' }], - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CDR' }, { prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'MEM' }, - { - prim: 'IF', - args: [ - [{ prim: 'DROP' }], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - [{ prim: 'CAR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - [{ prim: 'CDR' }, { prim: 'CAR' }], - { - prim: 'PAIR', - annots: ['%metadata_map', '%total_supply'] - }, - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CAR' }, { prim: 'CAR' }], - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [{ prim: 'int' }, { int: '346' }] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CONTRACT', args: [{ prim: 'unit' }] }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'SWAP' }, - [ - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [{ prim: 'int' }, { int: '349' }] - }, - { prim: 'FAILWITH' } - ], - [] - ] - } - ], - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CAR' }, { prim: 'CAR' }], - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [{ prim: 'int' }, { int: '518' }] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - [{ prim: 'CAR' }, { prim: 'CDR' }], - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] } - ] - ] - } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CAR' }, { prim: 'CAR' }], - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [{ prim: 'int' }, { int: '533' }] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CAR' }, { prim: 'CAR' }], - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [{ prim: 'int' }, { int: '527' }] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CDR' }, { prim: 'CDR' }, { prim: 'CAR' }], - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [{ prim: 'int' }, { int: '395' }] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DUP' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - [{ prim: 'CAR' }, { prim: 'CAR' }], - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'bool' }, - { prim: 'True' } - ] - } - ], - [ - { prim: 'SENDER' }, - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '3' }] - }, - { prim: 'CAR' }, - { prim: 'COMPARE' }, - { prim: 'EQ' } - ] - ] - }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'bool' }, - { prim: 'True' } - ] - } - ], - [ - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '4' }] - }, - [ - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' } - ], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - [ - { prim: 'CDR' }, - { prim: 'CAR' } - ], - { prim: 'SENDER' }, - { - prim: 'PAIR', - annots: [ - '%operator', - '%token_id' - ] - }, - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '4' }] - }, - { prim: 'CAR' }, - { - prim: 'PAIR', - annots: ['%owner'] - }, - { prim: 'MEM' } - ] - ] - }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'FA2_NOT_OPERATOR' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - [ - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - [{ prim: 'CDR' }, { prim: 'CAR' }], - { prim: 'MEM' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'FA2_TOKEN_UNDEFINED' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DUP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '0' }] - }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DUP' }, - [ - { prim: 'CDR' }, - { prim: 'CDR' } - ], - { - prim: 'DIG', - args: [{ int: '4' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '5' }] - }, - [ - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ], - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '3' }] - }, - [ - { prim: 'CDR' }, - { prim: 'CAR' } - ], - { - prim: 'DIG', - args: [{ int: '4' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '5' }] - }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - [ - { - prim: 'IF_NONE', - args: [ - [ - { - prim: - 'PUSH', - args: [ - { - prim: - 'int' - }, - { - int: - '423' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [] - ] - } - ], - { prim: 'COMPARE' }, - { prim: 'GE' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'FA2_INSUFFICIENT_BALANCE' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '4' }] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { - prim: 'DIG', - args: [{ int: '5' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '6' }] - }, - [ - { prim: 'CDR' }, - { prim: 'CAR' } - ], - { - prim: 'DIG', - args: [{ int: '7' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '8' }] - }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'GET' }, - [ - { - prim: 'IF_NONE', - args: [ - [ - { - prim: - 'PUSH', - args: [ - { - prim: - 'int' - }, - { - int: - '427' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [{ prim: 'DROP' }] - ] - } - ], - { - prim: 'DIG', - args: [{ int: '5' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '6' }] - }, - [ - { prim: 'CDR' }, - { prim: 'CDR' } - ], - { - prim: 'DIG', - args: [{ int: '9' }] - }, - [ - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ], - { - prim: 'DIG', - args: [{ int: '7' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '8' }] - }, - [ - { prim: 'CDR' }, - { prim: 'CAR' } - ], - { - prim: 'DIG', - args: [{ int: '9' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '10' }] - }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - [ - { - prim: 'IF_NONE', - args: [ - [ - { - prim: - 'PUSH', - args: [ - { - prim: - 'int' - }, - { - int: - '427' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [] - ] - } - ], - { prim: 'SUB' }, - { prim: 'ISNAT' }, - [ - { - prim: 'IF_NONE', - args: [ - [ - { - prim: - 'PUSH', - args: [ - { - prim: - 'int' - }, - { - int: - '427' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [] - ] - } - ], - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '4' }] - }, - [ - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ], - { prim: 'SWAP' }, - { prim: 'DUP' }, - [ - { prim: 'CDR' }, - { prim: 'CAR' } - ], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '3' }] - }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'MEM' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DIG', - args: [ - { int: '3' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '4' } - ] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { - prim: 'DIG', - args: [ - { int: '5' } - ] - }, - { prim: 'DUP' }, - [ - { prim: 'CDR' }, - { prim: 'CAR' } - ], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '7' } - ] - }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'GET' }, - [ - { - prim: - 'IF_NONE', - args: [ - [ - { - prim: - 'PUSH', - args: [ - { - prim: - 'int' - }, - { - int: - '429' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [ - { - prim: - 'DROP' - } - ] - ] - } - ], - { - prim: 'DIG', - args: [ - { int: '5' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '6' } - ] - }, - [ - { prim: 'CDR' }, - { prim: 'CDR' } - ], - { - prim: 'DIG', - args: [ - { int: '9' } - ] - }, - [ - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ], - { - prim: 'DIG', - args: [ - { int: '7' } - ] - }, - { prim: 'DUP' }, - [ - { prim: 'CDR' }, - { prim: 'CAR' } - ], - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - [ - { - prim: - 'IF_NONE', - args: [ - [ - { - prim: - 'PUSH', - args: [ - { - prim: - 'int' - }, - { - int: - '429' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [] - ] - } - ], - { prim: 'ADD' }, - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - } - ], - [ - { - prim: 'DIG', - args: [ - { int: '3' } - ] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [ - { int: '4' } - ] - }, - { prim: 'DUP' }, - [ - { prim: 'CDR' }, - { prim: 'CAR' } - ], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '6' } - ] - }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { - prim: 'DIG', - args: [ - { int: '5' } - ] - }, - [ - { prim: 'CDR' }, - { prim: 'CDR' } - ], - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - } - ] - ] - } - ], - [{ prim: 'DROP' }] - ] - } - ] - ] - }, - { prim: 'DROP' } - ] - ] - }, - { prim: 'DROP' } - ], - [ - { prim: 'DUP' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'DUP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'bool' }, - { prim: 'True' } - ] - } - ], - [ - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '4' }] - }, - [ - { prim: 'CAR' }, - { prim: 'CAR' } - ], - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' } - ] - ] - }, - { - prim: 'IF', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DROP' } - ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'int' }, - { int: '489' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '6' }] }, - [{ prim: 'CDR' }, { prim: 'CAR' }], - { - prim: 'PAIR', - annots: ['%operator', '%token_id'] - }, - { prim: 'DIG', args: [{ int: '5' }] }, - { prim: 'CAR' }, - { prim: 'PAIR', annots: ['%owner'] }, - { - prim: 'PUSH', - args: [ - { - prim: 'option', - args: [{ prim: 'unit' }] - }, - { - prim: 'Some', - args: [{ prim: 'Unit' }] - } - ] - }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' } - ], - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'bool' }, - { prim: 'True' } - ] - } - ], - [ - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '4' }] - }, - [ - { prim: 'CAR' }, - { prim: 'CAR' } - ], - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' } - ] - ] - }, - { - prim: 'IF', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DROP' } - ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'int' }, - { int: '496' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { - prim: 'NONE', - args: [{ prim: 'unit' }] - }, - { prim: 'DIG', args: [{ int: '5' }] }, - { prim: 'DUP' }, - [{ prim: 'CDR' }, { prim: 'CDR' }], - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '7' }] }, - [{ prim: 'CDR' }, { prim: 'CAR' }], - { - prim: 'PAIR', - annots: ['%operator', '%token_id'] - }, - { prim: 'DIG', args: [{ int: '6' }] }, - { prim: 'CAR' }, - { prim: 'PAIR', annots: ['%owner'] }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' } - ] - ] - } - ] - ] - }, - { prim: 'DROP' } - ] - ] - } - ] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] } - ] - ] - }, - { prim: 'PAIR' } - ] - ] - } -]; diff --git a/integration-tests/data/fa2-token-factory.ts b/integration-tests/data/fa2-token-factory.ts deleted file mode 100644 index 24d5621799..0000000000 --- a/integration-tests/data/fa2-token-factory.ts +++ /dev/null @@ -1,4738 +0,0 @@ -export const fa2TokenFactory = [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%owner'] }, - { prim: 'nat', annots: ['%token_id'] } - ] - } - ], - annots: ['%requests'] - }, - { - prim: 'contract', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'address', - annots: ['%owner'] - }, - { - prim: 'nat', - annots: ['%token_id'] - } - ], - annots: ['%request'] - }, - { prim: 'nat', annots: ['%balance'] } - ] - } - ] - } - ], - annots: ['%callback'] - } - ], - annots: ['%balance_of'] - }, - { - prim: 'pair', - args: [{ prim: 'nat' }, { prim: 'nat' }], - annots: ['%burn_tokens'] - } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%order_id'] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%token_to_buy'] }, - { prim: 'nat', annots: ['%amount'] } - ] - } - ], - annots: ['%buy_from_exchange'] - }, - { prim: 'unit', annots: ['%buy_xtz_wrapper'] } - ] - } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%order_id'] }, - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [{ prim: 'nat' }, { prim: 'nat' }], - annots: ['%token_ids'] - }, - { - prim: 'pair', - args: [ - { prim: 'bool', annots: ['%status'] }, - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'address', - annots: ['%owner'] - }, - { - prim: 'nat', - annots: ['%token_id'] - } - ], - annots: ['%from_'] - }, - { - prim: 'pair', - args: [ - { - prim: 'address', - annots: ['%owner'] - }, - { - prim: 'nat', - annots: ['%token_id'] - } - ], - annots: ['%to_'] - } - ] - } - ] - } - ] - } - ], - annots: ['%confirm_buy_from_exchange'] - }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%token_id'] }, - { prim: 'nat', annots: ['%tokens_to_mint'] } - ], - annots: ['%mint_more_tokens'] - } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'bytes', annots: ['%metadata'] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%total_supply'] }, - { prim: 'bool', annots: ['%can_mint_more'] } - ] - } - ], - annots: ['%mint_tokens'] - }, - { - prim: 'pair', - args: [ - { - prim: 'or', - args: [ - { prim: 'unit', annots: ['%buy'] }, - { prim: 'unit', annots: ['%sell'] } - ], - annots: ['%order_type'] - }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%token_id_to_sell'] }, - { - prim: 'pair', - args: [ - { - prim: 'nat', - annots: ['%token_amount_to_sell'] - }, - { - prim: 'pair', - args: [ - { - prim: 'nat', - annots: ['%token_id_to_buy'] - }, - { - prim: 'pair', - args: [ - { - prim: 'nat', - annots: [ - '%token_amount_to_buy' - ] - }, - { - prim: 'pair', - args: [ - { - prim: 'nat', - annots: [ - '%total_token_amount' - ] - }, - { - prim: 'address', - annots: ['%seller'] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ], - annots: ['%new_exchange_order'] - } - ] - } - ] - } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { prim: 'nat', annots: ['%redeem_xtz_wrapper'] }, - { - prim: 'contract', - args: [{ prim: 'address' }], - annots: ['%token_metadata_registry'] - } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%from_'] }, - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%to_'] }, - { - prim: 'pair', - args: [ - { - prim: 'nat', - annots: ['%token_id'] - }, - { - prim: 'nat', - annots: ['%amount'] - } - ] - } - ] - } - ], - annots: ['%txs'] - } - ] - } - ], - annots: ['%transfer'] - }, - { prim: 'address', annots: ['%update_exchange_address'] } - ] - } - ] - }, - { - prim: 'list', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%owner'] }, - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%operator'] }, - { prim: 'nat', annots: ['%token_id'] } - ] - } - ], - annots: ['%add_operator'] - }, - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%owner'] }, - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%operator'] }, - { prim: 'nat', annots: ['%token_id'] } - ] - } - ], - annots: ['%remove_operator'] - } - ] - } - ], - annots: ['%update_operators'] - } - ] - } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%admin'] }, - { prim: 'address', annots: ['%exchange_address'] } - ] - }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%last_token_id'] }, - { - prim: 'big_map', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%owner'] }, - { prim: 'nat', annots: ['%token_id'] } - ] - }, - { prim: 'nat' } - ], - annots: ['%ledger'] - } - ] - } - ] - }, - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'big_map', - args: [{ prim: 'string' }, { prim: 'bytes' }], - annots: ['%metadata'] - }, - { - prim: 'big_map', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%owner'] }, - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%operator'] }, - { prim: 'nat', annots: ['%token_id'] } - ] - } - ] - }, - { prim: 'unit' } - ], - annots: ['%operators'] - } - ] - }, - { - prim: 'pair', - args: [ - { - prim: 'big_map', - args: [ - { prim: 'nat' }, - { prim: 'pair', args: [{ prim: 'address' }, { prim: 'bool' }] } - ], - annots: ['%token_admins'] - }, - { - prim: 'big_map', - args: [ - { prim: 'nat' }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%token_id'] }, - { - prim: 'map', - args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%token_info'] - } - ] - } - ], - annots: ['%token_metadata'] - } - ] - } - ] - } - ] - }, - { prim: 'big_map', args: [{ prim: 'nat' }, { prim: 'nat' }], annots: ['%token_total_supply'] } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'FA2_TOKEN_UNDEFINED' }] }, - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'FA2_INSUFFICIENT_BALANCE' }] }, - { - prim: 'LAMBDA', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address' }, - { prim: 'pair', args: [{ prim: 'address' }, { prim: 'nat' }] } - ] - }, - { - prim: 'pair', - args: [ - { prim: 'pair', args: [{ prim: 'address' }, { prim: 'address' }] }, - { prim: 'nat' } - ] - }, - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' } - ] - ] - }, - { - prim: 'LAMBDA', - args: [ - { - prim: 'pair', - args: [ - { prim: 'pair', args: [{ prim: 'address' }, { prim: 'nat' }] }, - { - prim: 'big_map', - args: [ - { prim: 'pair', args: [{ prim: 'address' }, { prim: 'nat' }] }, - { prim: 'nat' } - ] - } - ] - }, - { prim: 'nat' }, - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [[{ prim: 'PUSH', args: [{ prim: 'nat' }, { int: '0' }] }], []] - } - ] - ] - }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '5' }] }, - { prim: 'CAR' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DROP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DROP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'MAP', args: [[]] }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { - prim: 'MAP', - args: [ - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'MEM' }, - { prim: 'NOT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP' }, - { - prim: 'DIG', - args: [{ int: '4' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '5' }] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '3' }] - }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'PAIR' }, - { - prim: 'DIG', - args: [{ int: '5' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '6' }] - }, - { prim: 'SWAP' }, - { prim: 'EXEC' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: '0' }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'SWAP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_TOKEN_FOUND' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SENDER' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP' }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'UNAUTHORIZED_ACTION' - } - ] - }, - { prim: 'FAILWITH' } - ], - [{ prim: 'CAR' }] - ] - } - ] - ] - }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_BALANCE_FOUND' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [{ int: '4' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'INSUFFICIENT_BALANCE' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'SWAP' }, - { prim: 'SUB' }, - { prim: 'ABS' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'UPDATE' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'NO_TOTAL_SUPPLY_FOUND' - } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DROP', - args: [{ int: '5' }] - }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'INSUFFICIENT_TOTAL_SUPPLY' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'SUB' }, - { prim: 'DROP' }, - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '4' }] - }, - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'SOME' }, - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_BALANCE' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP' }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'INSUFFICIENT_BALANCE' - } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'CONTRACT', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'nat', - annots: ['%order_id'] - }, - { - prim: 'pair', - args: [ - { - prim: 'nat', - annots: ['%amount_to_buy'] - }, - { - prim: 'pair', - args: [ - { - prim: 'address', - annots: ['%buyer'] - }, - { - prim: 'nat', - annots: [ - '%buyer_balance' - ] - } - ] - } - ] - } - ] - } - ], - annots: ['%fulfill_order'] - }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'UNKNOWN_CONTRACT' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'SWAP' }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: '0' }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'SWAP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ], - [ - { prim: 'DROP' }, - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '1' }] - }, - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: '0' }] - }, - { prim: 'AMOUNT' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [{ int: '2' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_AMOUNT_PROVIDED' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'mutez' }, - { int: '1' } - ] - }, - { prim: 'AMOUNT' }, - { prim: 'EDIV' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'DIV by 0' - } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'CAR' } - ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'mutez' }, - { int: '1' } - ] - }, - { prim: 'AMOUNT' }, - { prim: 'EDIV' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'DIV by 0' - } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'CAR' }, - { prim: 'ADD' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_WTOKEN' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'mutez' }, - { int: '1' } - ] - }, - { prim: 'AMOUNT' }, - { prim: 'EDIV' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'DIV by 0' - } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'CAR' }, - { prim: 'ADD' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'SOME' }, - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '1' }] - }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'UPDATE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DROP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [{ int: '3' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'FA2_TX_DENIED' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'bool' }, - { prim: 'False' } - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DROP', - args: [{ int: '3' }] - }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'UNCONFIRMED_EXCHANGE' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '3' }] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '3' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DROP', - args: [ - { int: '4' } - ] - }, - { - prim: 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'BUYER_INSUFFICIENT_BALANCE' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '3' } - ] - }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '3' } - ] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { - prim: 'DIG', - args: [ - { int: '3' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '4' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: - 'DIG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [ - { - prim: - 'DIG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'DROP' - } - ] - ] - }, - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '3' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { - prim: - 'DROP', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'SELLER_INSUFFICIENT_BALANCE' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [ - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '5' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '5' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '6' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '7' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '8' - } - ] - }, - { - prim: - 'CAR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '7' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '8' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'PAIR' - }, - { - prim: - 'GET' - }, - { - prim: - 'IF_NONE', - args: [ - [ - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '3' - } - ] - } - ], - [ - { - prim: - 'DIG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'ADD' - } - ] - ] - }, - { - prim: - 'SWAP' - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DIG', - args: [ - { - int: - '7' - } - ] - }, - { - prim: - 'SUB' - }, - { - prim: - 'ABS' - }, - { - prim: - 'DIG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'DIG', - args: [ - { - int: - '6' - } - ] - }, - { - prim: - 'SUB' - }, - { - prim: - 'ABS' - }, - { - prim: - 'DIG', - args: [ - { - int: - '7' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '8' - } - ] - }, - { - prim: - 'CAR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '7' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '8' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '7' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '8' - } - ] - }, - { - prim: - 'PAIR' - }, - { - prim: - 'GET' - }, - { - prim: - 'IF_NONE', - args: [ - [ - { - prim: - 'DIG', - args: [ - { - int: - '3' - } - ] - } - ], - [ - { - prim: - 'DIG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'ADD' - } - ] - ] - }, - { - prim: - 'DIG', - args: [ - { - int: - '7' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '5' - } - ] - }, - { - prim: - 'SOME' - }, - { - prim: - 'DIG', - args: [ - { - int: - '8' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '9' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '7' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '8' - } - ] - }, - { - prim: - 'PAIR' - }, - { - prim: - 'UPDATE' - }, - { - prim: - 'DIG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'SOME' - }, - { - prim: - 'DIG', - args: [ - { - int: - '7' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '8' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '6' - } - ] - }, - { - prim: - 'PAIR' - }, - { - prim: - 'UPDATE' - }, - { - prim: - 'DIG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'SOME' - }, - { - prim: - 'DIG', - args: [ - { - int: - '5' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '6' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '5' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '6' - } - ] - }, - { - prim: - 'PAIR' - }, - { - prim: - 'UPDATE' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'SOME' - }, - { - prim: - 'DIG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'PAIR' - }, - { - prim: - 'UPDATE' - }, - { - prim: - 'DIP', - args: [ - [ - { - prim: - 'DUP' - }, - { - prim: - 'CDR' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'CAR' - }, - { - prim: - 'DUP' - }, - { - prim: - 'CDR' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'CAR' - }, - { - prim: - 'DUP' - }, - { - prim: - 'CAR' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - } - ] - ] - }, - { - prim: - 'SWAP' - }, - { - prim: - 'PAIR' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'PAIR' - }, - { - prim: - 'PAIR' - }, - { - prim: - 'PAIR' - } - ] - ] - } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_TOKEN_FOUND' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SENDER' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP' }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'UNAUTHORIZED_ACTION' - } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - } - ] - ] - }, - { - prim: 'PUSH', - args: [{ prim: 'bool' }, { prim: 'False' }] - }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [{ int: '2' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'FIXED_TOTAL_SUPPLY' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'NO_TOKEN_FOUND' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'CDR' }, - { prim: 'ADD' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'NO_TOKEN_FOUND' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '3' }] - }, - { prim: 'CDR' }, - { prim: 'ADD' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CAR' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'UPDATE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '1' }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'ADD' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'EMPTY_MAP', - args: [{ prim: 'string' }, { prim: 'bytes' }] - }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CAR' }, - { prim: 'SOME' }, - { - prim: 'PUSH', - args: [{ prim: 'string' }, { string: '' }] - }, - { prim: 'UPDATE' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CDR' } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_ACCOUNT' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [{ int: '2' }] }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'CONTRACT', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'or', - args: [ - { - prim: 'unit', - annots: [ - '%buy' - ] - }, - { - prim: 'unit', - annots: [ - '%sell' - ] - } - ], - annots: [ - '%order_type' - ] - }, - { - prim: 'pair', - args: [ - { - prim: 'nat', - annots: [ - '%token_id_to_sell' - ] - }, - { - prim: 'pair', - args: [ - { - prim: - 'nat', - annots: [ - '%token_amount_to_sell' - ] - }, - { - prim: - 'pair', - args: [ - { - prim: - 'nat', - annots: [ - '%token_id_to_buy' - ] - }, - { - prim: - 'pair', - args: [ - { - prim: - 'nat', - annots: [ - '%token_amount_to_buy' - ] - }, - { - prim: - 'pair', - args: [ - { - prim: - 'nat', - annots: [ - '%total_token_amount' - ] - }, - { - prim: - 'address', - annots: [ - '%seller' - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ], - annots: ['%create_new_order'] - }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'UNKNOWN_CONTRACT' - } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { - prim: 'PUSH', - args: [ - { prim: 'mutez' }, - { int: '0' } - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DROP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '1' }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '1' }] - }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_ACCOUNT' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '0' }] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP' }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_BALANCE' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '3' }] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP' }, - { - prim: 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'INSUFFICIENT_BALANCE' - } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'SENDER' }, - { prim: 'CONTRACT', args: [{ prim: 'unit' }] }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'CONTRACT_ERROR' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: '1' }] - }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'MUL' }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'SUB' }, - { prim: 'ABS' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'SENDER' }, - { prim: 'PAIR' }, - { prim: 'UPDATE' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DROP' }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_WTOKEN' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'SWAP' }, - { prim: 'SUB' }, - { prim: 'ABS' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ], - [ - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: '0' }] - }, - { prim: 'SELF' }, - { prim: 'ADDRESS' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'SWAP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'MAP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { - prim: 'MAP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'CAR' }, - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { - prim: 'LAMBDA', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address' }, - { prim: 'address' } - ] - }, - { - prim: 'pair', - args: [ - { prim: 'nat' }, - { - prim: 'big_map', - args: [ - { - prim: 'pair', - args: [ - { - prim: - 'address' - }, - { - prim: - 'pair', - args: [ - { - prim: - 'address' - }, - { - prim: - 'nat' - } - ] - } - ] - }, - { prim: 'unit' } - ] - } - ] - } - ] - }, - { prim: 'unit' }, - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DROP', - args: [{ int: '3' }] - }, - { prim: 'UNIT' } - ], - [ - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '3' }] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'PAIR' }, - { - prim: 'DIG', - args: [{ int: '2' }] - }, - { prim: 'PAIR' }, - { prim: 'MEM' }, - { - prim: 'IF', - args: [ - [{ prim: 'UNIT' }], - [ - { - prim: 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'FA2_NOT_OPERATOR' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [{ int: '3' }] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '4' }] - }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [{ int: '2' }] - }, - { prim: 'CDR' }, - { prim: 'MEM' }, - { prim: 'NOT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DROP', - args: [ - { int: '2' } - ] - }, - { - prim: 'DIG', - args: [ - { int: '6' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '7' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'DIG', - args: [ - { int: '3' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '4' } - ] - }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'PAIR' }, - { prim: 'SENDER' }, - { - prim: 'DIG', - args: [ - { int: '4' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '5' } - ] - }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { - prim: 'DIG', - args: [ - { int: '5' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '6' } - ] - }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'EXEC' }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [ - { int: '3' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '4' } - ] - }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '3' } - ] - }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIG', - args: [ - { int: '9' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { - int: - '10' - } - ] - }, - { prim: 'SWAP' }, - { prim: 'EXEC' }, - { - prim: 'DIG', - args: [ - { int: '3' } - ] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'SUB' }, - { prim: 'ISNAT' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: - 'DROP', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DIG', - args: [ - { - int: - '6' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '7' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [ - { - prim: - 'PUSH', - args: [ - { - prim: - 'nat' - }, - { - int: - '0' - } - ] - }, - { - prim: - 'SWAP' - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'COMPARE' - }, - { - prim: - 'EQ' - }, - { - prim: - 'IF', - args: [ - [ - { - prim: - 'DROP' - }, - { - prim: - 'NONE', - args: [ - { - prim: - 'nat' - } - ] - }, - { - prim: - 'SWAP' - }, - { - prim: - 'UPDATE' - } - ], - [ - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'SWAP' - }, - { - prim: - 'SOME' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'UPDATE' - } - ] - ] - } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '3' } - ] - }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'PAIR' }, - { - prim: 'DIG', - args: [ - { int: '8' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '9' } - ] - }, - { prim: 'SWAP' }, - { prim: 'EXEC' }, - { - prim: 'DIG', - args: [ - { int: '3' } - ] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'ADD' }, - { - prim: 'PUSH', - args: [ - { - prim: - 'nat' - }, - { int: '0' } - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: - 'DROP' - }, - { - prim: - 'NONE', - args: [ - { - prim: - 'nat' - } - ] - }, - { - prim: - 'SWAP' - }, - { - prim: - 'UPDATE' - } - ], - [ - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'SWAP' - }, - { - prim: - 'SOME' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'UPDATE' - } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DROP' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'CAR' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' } - ], - [ - { prim: 'DROP', args: [{ int: '2' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'UNAUTHORIZED_ACTION' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { - prim: 'MAP', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'LEFT', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address' }, - { - prim: 'pair', - args: [ - { prim: 'address' }, - { prim: 'nat' } - ] - } - ] - } - ] - } - ], - [ - { - prim: 'RIGHT', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address' }, - { - prim: 'pair', - args: [ - { prim: 'address' }, - { prim: 'nat' } - ] - } - ] - } - ] - } - ] - ] - }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'SWAP' }, - { prim: 'EXEC' }, - { - prim: 'LEFT', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address' }, - { prim: 'address' } - ] - }, - { prim: 'nat' } - ] - } - ] - } - ], - [ - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'SWAP' }, - { prim: 'EXEC' }, - { - prim: 'RIGHT', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address' }, - { prim: 'address' } - ] - }, - { prim: 'nat' } - ] - } - ] - } - ] - ] - } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DROP' }, - { prim: 'SENDER' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { - prim: 'ITER', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'IF_LEFT', args: [[], []] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [{ prim: 'UNIT' }], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'FA2_NOT_OWNER' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'UNIT' }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'PAIR' }, - { prim: 'UPDATE' } - ], - [ - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'PAIR' }, - { prim: 'NONE', args: [{ prim: 'unit' }] }, - { prim: 'SWAP' }, - { prim: 'UPDATE' } - ] - ] - } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'CAR' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ] - ] - } -]; diff --git a/integration-tests/data/fa2_contract_with_metadata.ts b/integration-tests/data/fa2_contract_with_metadata.ts deleted file mode 100644 index b8ca0ecc28..0000000000 --- a/integration-tests/data/fa2_contract_with_metadata.ts +++ /dev/null @@ -1,3738 +0,0 @@ -// Code obtains from https://github.com/tqtezos/stablecoin/#tezos-stablecoin -export const fa2ContractTzip16 = `{ - parameter - (or - (or - (or - (or - (unit %accept_ownership) - (list %burn nat)) - (or - (or %call_FA2 - (or - (pair %balance_of - (list %requests - (pair - (address %owner) - (nat %token_id))) - (contract %callback - (list - (pair - (pair %request - (address %owner) - (nat %token_id)) - (nat %balance))))) - (contract %token_metadata_registry address)) - (or - (list %transfer - (pair - (address %from_) - (list %txs - (pair - (address %to_) - (pair - (nat %token_id) - (nat %amount)))))) - (list %update_operators - (or - (pair %add_operator - (address %owner) - (pair - (address %operator) - (nat %token_id))) - (pair %remove_operator - (address %owner) - (pair - (address %operator) - (nat %token_id))))))) - (address %change_master_minter))) - (or - (or - (address %change_pauser) - (pair %configure_minter - (address %minter) - (pair - (option %current_minting_allowance nat) - (nat %new_minting_allowance)))) - (or - (list %mint - (pair - (address %to_) - (nat %amount))) - (unit %pause)))) - (or - (or - (or - (pair %permit - key - (pair signature bytes)) - (address %remove_minter)) - (or - (pair %set_expiry - address - (pair - nat - (option bytes))) - (option %set_transferlist address))) - (or - (address %transfer_ownership) - (unit %unpause)))); - storage - (pair - (pair - (pair - (pair - (nat %default_expiry) - (big_map %ledger address nat)) - (pair - (big_map %metadata string bytes) - (map %minting_allowances address nat))) - (pair - (pair - (big_map %operators - (pair address address) - unit) - (bool %paused)) - (pair - (nat %permit_counter) - (big_map %permits - address - (pair - (option %expiry nat) - (map %permits - bytes - (pair - (timestamp %created_at) - (option %expiry nat)))))))) - (pair - (pair - (pair %roles - (pair - (address %master_minter) - (address %owner)) - (pair - (address %pauser) - (option %pending_owner address))) - (address %token_metadata_registry)) - (option %transferlist_contract address))); - code - { - LAMBDA - nat - unit - { - PUSH nat 0; - SWAP; - COMPARE; - NEQ; - IF - { - PUSH string "FA2_TOKEN_UNDEFINED"; - FAILWITH - } - { - UNIT - } - }; - LAMBDA - (pair - (pair - nat - (option nat)) - (pair - timestamp - (option nat))) - bool - { - DUP; - CDR; - NOW; - SWAP; - DUP; - DUG 2; - CDR; - IF_NONE - { - DIG 2; - DUP; - DUG 3; - CAR; - CDR; - IF_NONE - { - DIG 2; - CAR; - CAR - } - { - DIG 3; - DROP - } - } - { - DIG 3; - DROP - }; - INT; - DIG 2; - CAR; - ADD; - COMPARE; - LT - }; - DUP; - LAMBDA - (pair - (lambda - (pair - (pair - nat - (option nat)) - (pair - timestamp - (option nat))) - bool) - (pair - (pair - address - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address)))) - (pair - (or - (or - (or - (or - unit - (list nat)) - (or - (or - (or - (pair - (list - (pair address nat)) - (contract - (list - (pair - (pair address nat) - nat)))) - (contract address)) - (or - (list - (pair - address - (list - (pair - address - (pair nat nat))))) - (list - (or - (pair - address - (pair address nat)) - (pair - address - (pair address nat)))))) - address)) - (or - (or - address - (pair - address - (pair - (option nat) - nat))) - (or - (list - (pair address nat)) - unit))) - (or - (or - (or - (pair - key - (pair signature bytes)) - address) - (or - (pair - address - (pair - nat - (option bytes))) - (option address))) - (or address unit))) - string))) - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address))) - { - DUP; - CDR; - SWAP; - CAR; - SWAP; - DUP; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - DIG 2; - DUP; - DUG 3; - CDR; - CDR; - DIG 2; - DUP; - DUG 3; - SENDER; - COMPARE; - EQ; - IF - { - DROP; - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP - } - { - DIG 3; - CDR; - CAR; - PACK; - BLAKE2B; - DIG 2; - DUP; - DUG 3; - CAR; - CDR; - CDR; - CDR; - DIG 4; - DUP; - DUG 5; - GET; - IF_NONE - { - SWAP; - DUP; - DUG 2; - FAILWITH - } - { - }; - DUP; - CDR; - DIG 2; - DUP; - DUG 3; - GET; - IF_NONE - { - DROP 2; - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP; - FAILWITH - } - { - DIG 3; - DROP; - SWAP; - DUP; - DUG 2; - CAR; - DIG 4; - DUP; - DUG 5; - CAR; - CAR; - CAR; - CAR; - PAIR; - PAIR; - DIG 5; - SWAP; - EXEC; - IF - { - DROP 4; - PUSH string "EXPIRED_PERMIT"; - FAILWITH - } - { - DIG 2; - DUP; - CAR; - CDR; - CDR; - CDR; - DIG 2; - DUP; - CDR; - DIG 4; - NONE - (pair - timestamp - (option nat)); - SWAP; - UPDATE; - SWAP; - CAR; - PAIR; - SOME; - DIG 3; - UPDATE; - DIP - { - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - DUP; - CAR; - SWAP; - CDR; - CAR - }; - SWAP; - PAIR; - SWAP; - PAIR; - SWAP; - PAIR; - PAIR - } - } - } - }; - SWAP; - APPLY; - EMPTY_MAP - bytes - (pair - timestamp - (option nat)); - NONE nat; - PAIR; - LAMBDA - (pair bool string) - unit - { - DUP; - CAR; - IF - { - CDR; - FAILWITH - } - { - DROP; - UNIT - } - }; - DIG 2; - DUP; - DUG 3; - LAMBDA - (pair - (lambda - (pair - (pair - address - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address)))) - (pair - (or - (or - (or - (or - unit - (list nat)) - (or - (or - (or - (pair - (list - (pair address nat)) - (contract - (list - (pair - (pair address nat) - nat)))) - (contract address)) - (or - (list - (pair - address - (list - (pair - address - (pair nat nat))))) - (list - (or - (pair - address - (pair address nat)) - (pair - address - (pair address nat)))))) - address)) - (or - (or - address - (pair - address - (pair - (option nat) - nat))) - (or - (list - (pair address nat)) - unit))) - (or - (or - (or - (pair - key - (pair signature bytes)) - address) - (or - (pair - address - (pair - nat - (option bytes))) - (option address))) - (or address unit))) - string)) - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address)))) - (pair - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address))) - (or - (or - (or - (or - unit - (list nat)) - (or - (or - (or - (pair - (list - (pair address nat)) - (contract - (list - (pair - (pair address nat) - nat)))) - (contract address)) - (or - (list - (pair - address - (list - (pair - address - (pair nat nat))))) - (list - (or - (pair - address - (pair address nat)) - (pair - address - (pair address nat)))))) - address)) - (or - (or - address - (pair - address - (pair - (option nat) - nat))) - (or - (list - (pair address nat)) - unit))) - (or - (or - (or - (pair - key - (pair signature bytes)) - address) - (or - (pair - address - (pair - nat - (option bytes))) - (option address))) - (or address unit))))) - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address))) - { - DUP; - CDR; - SWAP; - CAR; - SWAP; - DUP; - CAR; - PUSH string "NOT_CONTRACT_OWNER"; - DIG 2; - CDR; - PAIR; - SWAP; - DUP; - CDR; - CAR; - CAR; - CAR; - CDR; - PAIR; - PAIR; - EXEC - }; - SWAP; - APPLY; - DIG 3; - DUP; - DUG 4; - LAMBDA - (pair - (lambda - (pair - (pair - address - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address)))) - (pair - (or - (or - (or - (or - unit - (list nat)) - (or - (or - (or - (pair - (list - (pair address nat)) - (contract - (list - (pair - (pair address nat) - nat)))) - (contract address)) - (or - (list - (pair - address - (list - (pair - address - (pair nat nat))))) - (list - (or - (pair - address - (pair address nat)) - (pair - address - (pair address nat)))))) - address)) - (or - (or - address - (pair - address - (pair - (option nat) - nat))) - (or - (list - (pair address nat)) - unit))) - (or - (or - (or - (pair - key - (pair signature bytes)) - address) - (or - (pair - address - (pair - nat - (option bytes))) - (option address))) - (or address unit))) - string)) - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address)))) - (pair - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address))) - (or - (or - (or - (or - unit - (list nat)) - (or - (or - (or - (pair - (list - (pair address nat)) - (contract - (list - (pair - (pair address nat) - nat)))) - (contract address)) - (or - (list - (pair - address - (list - (pair - address - (pair nat nat))))) - (list - (or - (pair - address - (pair address nat)) - (pair - address - (pair address nat)))))) - address)) - (or - (or - address - (pair - address - (pair - (option nat) - nat))) - (or - (list - (pair address nat)) - unit))) - (or - (or - (or - (pair - key - (pair signature bytes)) - address) - (or - (pair - address - (pair - nat - (option bytes))) - (option address))) - (or address unit))))) - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address))) - { - DUP; - CDR; - SWAP; - CAR; - SWAP; - DUP; - CAR; - PUSH string "NOT_MASTER_MINTER"; - DIG 2; - CDR; - PAIR; - SWAP; - DUP; - CDR; - CAR; - CAR; - CAR; - CAR; - PAIR; - PAIR; - EXEC - }; - SWAP; - APPLY; - LAMBDA - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address))) - unit - { - CAR; - CAR; - CDR; - CDR; - SENDER; - GET; - IF_NONE - { - PUSH string "NOT_MINTER"; - FAILWITH - } - { - DROP; - UNIT - } - }; - DIG 3; - DUP; - DUG 4; - LAMBDA - (pair - (lambda - (pair bool string) - unit) - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address)))) - unit - { - DUP; - CDR; - SWAP; - CAR; - SWAP; - PUSH string "CONTRACT_PAUSED"; - SWAP; - CAR; - CDR; - CAR; - CDR; - PAIR; - EXEC - }; - SWAP; - APPLY; - LAMBDA - (pair - (pair nat address) - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address)))) - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address))) - { - DUP; - CAR; - SWAP; - CDR; - PUSH nat 0; - DIG 2; - DUP; - DUG 3; - CAR; - DIG 2; - DUP; - DUG 3; - CAR; - CAR; - CAR; - CDR; - DIG 4; - DUP; - DUG 5; - CDR; - GET; - IF_NONE - { - SWAP - } - { - DIG 2; - SWAP; - DIP - { - DROP - } - }; - ADD; - SWAP; - DUP; - CAR; - CAR; - CAR; - CDR; - DIG 2; - SOME; - DIG 3; - CDR; - UPDATE; - DIP - { - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - CAR - }; - SWAP; - PAIR; - PAIR; - PAIR; - PAIR - }; - LAMBDA - (pair - (pair nat address) - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address)))) - (pair - (pair - (pair - (pair - nat - (big_map address nat)) - (pair - (big_map string bytes) - (map address nat))) - (pair - (pair - (big_map - (pair address address) - unit) - bool) - (pair - nat - (big_map - address - (pair - (option nat) - (map - bytes - (pair - timestamp - (option nat)))))))) - (pair - (pair - (pair - (pair address address) - (pair - address - (option address))) - address) - (option address))) - { - DUP; - CAR; - SWAP; - CDR; - SWAP; - DUP; - DUG 2; - CAR; - SWAP; - DUP; - DUG 2; - CAR; - CAR; - CAR; - CDR; - DIG 3; - DUP; - DUG 4; - CDR; - GET; - IF_NONE - { - PUSH nat 0 - } - { - }; - SUB; - ISNAT; - IF_NONE - { - PUSH string "FA2_INSUFFICIENT_BALANCE"; - FAILWITH - } - { - PUSH nat 0; - SWAP; - DUP; - DUG 2; - COMPARE; - EQ; - IF - { - DROP; - NONE nat - } - { - SOME - } - }; - SWAP; - DUP; - CAR; - CAR; - CAR; - CDR; - DIG 2; - DIG 3; - CDR; - UPDATE; - DIP - { - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - CAR - }; - SWAP; - PAIR; - PAIR; - PAIR; - PAIR - }; - LAMBDA - (pair - (option address) - (list address)) - (list operation) - { - NIL operation; - SWAP; - DUP; - DUG 2; - CAR; - IF_NONE - { - SWAP; - DROP - } - { - CONTRACT %assertReceivers - (list address); - IF_NONE - { - DROP 2; - PUSH string "BAD_TRANSFERLIST_CONTRACT"; - FAILWITH - } - { - PUSH mutez 0; - DIG 3; - CDR; - TRANSFER_TOKENS; - CONS - } - } - }; - DIG 12; - DUP; - DUG 13; - CAR; - DIG 13; - CDR; - PUSH string "XTZ_RECEIVED"; - PUSH mutez 0; - AMOUNT; - COMPARE; - NEQ; - PAIR; - DIG 10; - DUP; - DUG 11; - SWAP; - EXEC; - DROP; - SWAP; - DUP; - DUG 2; - IF_LEFT - { - DIG 10; - DROP; - DIG 10; - DROP; - DIG 11; - DROP; - IF_LEFT - { - DIG 8; - DROP; - IF_LEFT - { - DIG 5; - DROP; - DIG 7; - DROP; - DIG 8; - DROP; - IF_LEFT - { - DIG 3; - DROP; - DIG 3; - DROP; - DIG 3; - DROP; - DIG 3; - DROP; - PAIR; - CDR; - PAIR; - DUP; - CAR; - DUP; - CDR; - CAR; - CAR; - CDR; - CDR; - IF_NONE - { - DROP 3; - PUSH string "NO_PENDING_OWNER_SET"; - FAILWITH - } - { - DUP; - PUSH string "NOT_PENDING_OWNER"; - DIG 4; - CDR; - PAIR; - DIG 3; - DIG 3; - PAIR; - PAIR; - DIG 2; - SWAP; - EXEC; - PAIR - }; - DUP; - CAR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - CAR; - CAR; - DUP; - CAR; - SWAP; - CDR; - CAR; - NONE address; - SWAP; - PAIR; - SWAP; - PAIR; - DIP - { - DUP; - CAR; - SWAP; - CDR; - DUP; - CDR; - SWAP; - CAR; - CDR - }; - PAIR; - PAIR; - SWAP; - PAIR; - SWAP; - DUP; - DUG 2; - CAR; - DIG 2; - DUP; - DUG 3; - CAR; - CDR; - CAR; - CAR; - DUP; - CAR; - SWAP; - CDR; - CAR; - NONE address; - SWAP; - PAIR; - SWAP; - PAIR; - DIP - { - DUP; - CAR; - SWAP; - CDR; - DUP; - CDR; - SWAP; - CAR; - CDR - }; - PAIR; - PAIR; - SWAP; - PAIR; - CDR; - CAR; - CAR; - DIG 2; - CDR; - DIP - { - DUP; - CDR; - SWAP; - CAR; - CAR - }; - SWAP; - PAIR; - PAIR; - DIP - { - DUP; - CAR; - SWAP; - CDR; - DUP; - CDR; - SWAP; - CAR; - CDR - }; - PAIR; - PAIR; - SWAP; - PAIR; - NIL operation; - PAIR - } - { - DIG 2; - DROP; - DIG 6; - DROP; - PAIR; - DUP; - CDR; - DUP; - DIG 5; - SWAP; - EXEC; - DROP; - DUP; - DIG 5; - SWAP; - EXEC; - DROP; - SENDER; - NIL address; - SENDER; - CONS; - DIG 2; - DUP; - DUG 3; - CDR; - CDR; - PAIR; - DIG 4; - SWAP; - EXEC; - DIG 2; - DIG 3; - CAR; - ITER - { - SWAP; - PAIR; - DUP; - CAR; - DIG 3; - DUP; - DUG 4; - DIG 2; - CDR; - PAIR; - PAIR; - DIG 3; - DUP; - DUG 4; - SWAP; - EXEC - }; - DIG 2; - DROP; - DIG 2; - DROP; - SWAP; - PAIR - } - } - { - DIG 3; - DROP; - DIG 6; - DROP; - IF_LEFT - { - DIG 6; - DROP; - PAIR; - PAIR; - DUP; - CAR; - CDR; - SWAP; - DUP; - DUG 2; - CDR; - DIG 2; - CAR; - CAR; - IF_LEFT - { - SWAP; - DROP; - DIG 2; - DROP; - DIG 2; - DROP; - DIG 2; - DROP; - DIG 2; - DROP; - IF_LEFT - { - DUP; - DUG 2; - CAR; - MAP - { - DUP; - CDR; - DIG 4; - DUP; - DUG 5; - SWAP; - EXEC; - DROP; - PUSH nat 0; - DIG 2; - DUP; - DUG 3; - CAR; - CAR; - CAR; - CDR; - DIG 2; - DUP; - DUG 3; - CAR; - GET; - IF_NONE - { - } - { - DIP - { - DROP - } - }; - SWAP; - PAIR - }; - DIG 3; - DROP; - DIG 2; - CDR; - PUSH mutez 0; - DIG 2; - TRANSFER_TOKENS; - SWAP; - NIL operation; - DIG 2; - CONS; - PAIR - } - { - DIG 2; - DROP; - PAIR; - DUP; - CDR; - DUP; - NIL operation; - DIG 3; - CAR; - PUSH mutez 0; - DIG 4; - CDR; - CAR; - CDR; - TRANSFER_TOKENS; - CONS; - PAIR - } - } - { - IF_LEFT - { - SWAP; - DUG 2; - PAIR; - PAIR; - DUP; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - DUP; - DIG 6; - SWAP; - EXEC; - DROP; - DIG 2; - CDR; - SWAP; - DIG 2; - DUP; - DUG 3; - PAIR; - PAIR; - DUP; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - SWAP; - DUP; - DUG 2; - MAP - { - SWAP; - DUP; - DUG 2; - CAR; - CDR; - CAR; - CAR; - SWAP; - PAIR; - SENDER; - SWAP; - DUP; - DUG 2; - CAR; - CAR; - DIG 2; - CDR; - DIG 2; - DUP; - DUG 3; - DIG 2; - DUP; - DUG 3; - PAIR; - MEM; - DUG 2; - COMPARE; - EQ; - OR; - IF - { - PUSH bool True - } - { - PUSH bool False - } - }; - PUSH bool True; - SWAP; - ITER - { - AND - }; - IF - { - SWAP; - DROP; - SWAP; - DROP; - DIG 4; - DROP - } - { - SWAP; - IF_CONS - { - CAR; - PUSH string "FA2_NOT_OPERATOR"; - DIG 4; - CDR; - PAIR; - DIG 3; - DIG 2; - DUP; - DUG 3; - PAIR; - PAIR; - DIG 6; - SWAP; - EXEC; - DIG 2; - ITER - { - DIG 2; - DUP; - DUG 3; - SWAP; - CAR; - COMPARE; - NEQ; - IF - { - PUSH string "FA2_NOT_OPERATOR"; - FAILWITH - } - { - UNIT - }; - DROP - }; - SWAP; - DROP - } - { - SWAP; - DROP; - DIG 4; - DROP - } - }; - DUP; - NIL operation; - PAIR; - DIG 2; - DUP; - DUG 3; - ITER - { - DIG 3; - DUP; - DUG 4; - DIG 3; - DUP; - DUG 4; - CDR; - CDR; - PAIR; - DUP; - CAR; - IF_NONE - { - DROP; - NIL operation - } - { - CONTRACT %assertTransfers - (list - (pair - (address %from) - (list %tos address))); - IF_NONE - { - DROP; - PUSH string "BAD_TRANSFERLIST_CONTRACT"; - FAILWITH - } - { - NIL operation; - SWAP; - PUSH mutez 0; - DIG 3; - CDR; - MAP - { - DUP; - CDR; - MAP - { - CAR - }; - SWAP; - CAR; - PAIR - }; - TRANSFER_TOKENS; - CONS - } - }; - DIG 2; - DUP; - DUG 3; - CDR; - DIG 2; - DUP; - DUG 3; - CDR; - ITER - { - SWAP; - PAIR; - DUP; - CDR; - DUP; - CDR; - CAR; - DIG 10; - DUP; - DUG 11; - SWAP; - EXEC; - DROP; - SWAP; - CAR; - DIG 3; - DUP; - DUG 4; - CAR; - DIG 2; - DUP; - DUG 3; - CDR; - CDR; - PAIR; - PAIR; - DIG 7; - DUP; - DUG 8; - SWAP; - EXEC; - SWAP; - DUP; - DUG 2; - CAR; - DIG 2; - CDR; - CDR; - PAIR; - PAIR; - DIG 7; - DUP; - DUG 8; - SWAP; - EXEC - }; - DIG 2; - DROP; - DIG 2; - CAR; - DIG 2; - ITER - { - CONS - }; - PAIR - }; - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP - } - { - DIG 3; - DROP; - DIG 3; - DROP; - SWAP; - DUG 2; - PAIR; - PAIR; - DUP; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - DUP; - DIG 4; - SWAP; - EXEC; - DROP; - SWAP; - DUP; - DUG 2; - MAP - { - IF_LEFT - { - CAR - } - { - CAR - } - }; - PUSH string "NOT_TOKEN_OWNER"; - SWAP; - PAIR; - DUP; - CAR; - IF_CONS - { - SWAP; - ITER - { - SWAP; - DUP; - DUG 2; - SWAP; - COMPARE; - NEQ; - IF - { - SWAP; - DUP; - DUG 2; - CDR; - FAILWITH - } - { - UNIT - }; - DROP - }; - SWAP; - DROP; - SOME - } - { - DROP; - NONE address - }; - IF_NONE - { - DIG 2; - DROP; - DIG 2; - DROP - } - { - PUSH string "NOT_TOKEN_OWNER"; - DIG 4; - CDR; - PAIR; - DUG 2; - PAIR; - PAIR; - DIG 2; - SWAP; - EXEC - }; - DUP; - CAR; - CDR; - CAR; - CAR; - DIG 2; - ITER - { - IF_LEFT - { - PAIR; - DUP; - CAR; - DUP; - CDR; - CDR; - DIG 4; - DUP; - DUG 5; - SWAP; - EXEC; - DROP; - SWAP; - CDR; - UNIT; - SOME; - DIG 2; - DUP; - DUG 3; - CDR; - CAR; - DIG 3; - CAR; - PAIR; - UPDATE - } - { - PAIR; - DUP; - CAR; - DUP; - CDR; - CDR; - DIG 4; - DUP; - DUG 5; - SWAP; - EXEC; - DROP; - SWAP; - CDR; - SWAP; - DUP; - DUG 2; - CDR; - CAR; - DIG 2; - CAR; - PAIR; - NONE unit; - SWAP; - UPDATE - } - }; - DIG 2; - DROP; - DIP - { - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - DUP; - CDR; - SWAP; - CAR; - CDR - }; - PAIR; - PAIR; - SWAP; - PAIR; - PAIR; - NIL operation; - PAIR - } - } - } - { - DIG 3; - DROP; - DIG 3; - DROP; - DIG 3; - DROP; - DIG 4; - DROP; - DIG 4; - DROP; - PAIR; - PAIR; - DUP; - CDR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - PAIR; - DIG 2; - SWAP; - EXEC; - SWAP; - CAR; - CAR; - DIP - { - DUP; - CAR; - SWAP; - CDR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - CDR - }; - PAIR; - PAIR; - PAIR; - PAIR; - SWAP; - PAIR; - NIL operation; - PAIR - } - } - } - { - DIG 4; - DROP; - DIG 10; - DROP; - IF_LEFT - { - DIG 3; - DROP; - DIG 3; - DROP; - DIG 4; - DROP; - DIG 6; - DROP; - IF_LEFT - { - DIG 3; - DROP; - DIG 3; - DROP; - PAIR; - PAIR; - DUP; - CDR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - PAIR; - DIG 2; - SWAP; - EXEC; - SWAP; - CAR; - CAR; - DIP - { - DUP; - CAR; - SWAP; - CDR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - CDR - }; - PAIR; - SWAP; - PAIR; - PAIR; - PAIR; - SWAP; - PAIR; - NIL operation; - PAIR - } - { - DIG 5; - DROP; - PAIR; - PAIR; - DUP; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - DUP; - DIG 4; - SWAP; - EXEC; - DROP; - DIG 2; - CDR; - SWAP; - PAIR; - DIG 2; - SWAP; - EXEC; - DUP; - CAR; - CAR; - CDR; - CDR; - DIG 2; - DUP; - DUG 3; - CAR; - GET; - DIG 2; - DUP; - DUG 3; - CDR; - CAR; - IF_NONE - { - IF_NONE - { - PUSH nat 12; - SWAP; - DUP; - DUG 2; - CAR; - CAR; - CDR; - CDR; - SIZE; - COMPARE; - GE; - IF - { - PUSH string "MINTER_LIMIT_REACHED"; - FAILWITH - } - { - UNIT - } - } - { - DROP; - PUSH string "CURRENT_ALLOWANCE_REQUIRED"; - FAILWITH - } - } - { - SWAP; - IF_NONE - { - DROP; - PUSH string "ADDR_NOT_MINTER"; - FAILWITH - } - { - COMPARE; - NEQ; - IF - { - PUSH string "ALLOWANCE_MISMATCH"; - FAILWITH - } - { - UNIT - } - } - }; - DROP; - DUP; - CAR; - CAR; - CDR; - CDR; - DIG 2; - DUP; - DUG 3; - CDR; - CDR; - SOME; - DIG 3; - CAR; - UPDATE; - DIP - { - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - CAR - }; - SWAP; - PAIR; - SWAP; - PAIR; - PAIR; - PAIR; - NIL operation; - PAIR - } - } - { - DIG 7; - DROP; - DIG 7; - DROP; - IF_LEFT - { - DIG 2; - DROP; - DIG 6; - DROP; - SWAP; - DUP; - DIG 5; - SWAP; - EXEC; - DROP; - DUP; - DIG 5; - SWAP; - EXEC; - DROP; - SENDER; - DIG 2; - DUP; - DUG 3; - MAP - { - CAR - }; - SENDER; - CONS; - DIG 2; - DUP; - DUG 3; - CDR; - CDR; - PAIR; - DIG 4; - SWAP; - EXEC; - DIG 2; - DIG 3; - ITER - { - SWAP; - PAIR; - DUP; - CAR; - DUP; - CAR; - CAR; - CDR; - CDR; - DIG 4; - DUP; - DUG 5; - GET; - IF_NONE - { - DROP 2; - PUSH string "NOT_MINTER"; - FAILWITH - } - { - DIG 2; - CDR; - DIG 2; - PAIR; - PAIR; - DUP; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - DUP; - CAR; - SWAP; - CDR; - PAIR; - DUP; - CAR; - DIG 3; - CDR; - SUB; - ISNAT; - IF_NONE - { - PUSH string "ALLOWANCE_EXCEEDED"; - FAILWITH - } - { - }; - DIG 2; - DUP; - DUG 3; - CAR; - CAR; - CDR; - CDR; - SWAP; - SOME; - SENDER; - UPDATE; - DIG 2; - SWAP; - DIP - { - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - CAR - }; - SWAP; - PAIR; - SWAP; - PAIR; - PAIR; - PAIR; - SWAP; - PAIR; - DIG 3; - DUP; - DUG 4; - SWAP; - EXEC - } - }; - DIG 2; - DROP; - DIG 2; - DROP; - SWAP; - PAIR - } - { - DIG 3; - DROP; - DIG 3; - DROP; - DIG 4; - DROP; - PAIR; - PAIR; - DUP; - CAR; - CDR; - DUP; - DIG 3; - SWAP; - EXEC; - DROP; - PUSH string "NOT_PAUSER"; - DIG 2; - CDR; - PAIR; - SWAP; - DUP; - CDR; - CAR; - CAR; - CDR; - CAR; - PAIR; - PAIR; - EXEC; - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - DUP; - CDR; - SWAP; - CAR; - CAR; - PUSH bool True; - SWAP; - PAIR; - PAIR; - SWAP; - PAIR; - PAIR; - NIL operation; - PAIR - } - } - } - } - { - DIG 3; - DROP; - DIG 3; - DROP; - DIG 3; - DROP; - DIG 3; - DROP; - DIG 3; - DROP; - DIG 9; - DROP; - IF_LEFT - { - DIG 5; - DROP; - IF_LEFT - { - DIG 4; - DROP; - DIG 5; - DROP; - IF_LEFT - { - DIG 2; - DROP; - DIG 2; - DROP; - DUP; - DUG 2; - CAR; - DIG 2; - DUP; - DUG 3; - CDR; - CDR; - SWAP; - DUP; - DUG 2; - HASH_KEY; - IMPLICIT_ACCOUNT; - ADDRESS; - SWAP; - DUP; - DUG 2; - DIG 4; - DUP; - DUG 5; - CAR; - CDR; - CDR; - CAR; - PAIR; - CHAIN_ID; - SELF; - ADDRESS; - PAIR; - PAIR; - PACK; - DUP; - DIG 6; - CDR; - CAR; - DIG 5; - CHECK_SIGNATURE; - IF - { - DROP; - DIG 2; - DUP; - DUG 3; - PUSH nat 1; - DIG 4; - DUP; - DUG 5; - CAR; - CDR; - CDR; - CAR; - ADD; - DIP - { - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - DUP; - CAR; - SWAP; - CDR; - CDR - }; - PAIR; - SWAP; - PAIR; - SWAP; - PAIR; - PAIR; - DIG 3; - DUP; - DUG 4; - CAR; - CDR; - CDR; - CDR; - DIG 3; - PAIR; - DIG 2; - DUP; - DUG 3; - DIG 4; - DUP; - DUG 5; - CAR; - CAR; - CAR; - CAR; - PAIR; - PAIR; - DUP; - CAR; - CDR; - SWAP; - DUP; - DUG 2; - CDR; - CAR; - DIG 2; - DUP; - DUG 3; - CDR; - CDR; - DUP; - DIG 3; - DUP; - DUG 4; - GET; - IF_NONE - { - DIG 7 - } - { - DIG 8; - DROP - }; - DIG 2; - DUP; - DUG 3; - SWAP; - DUP; - DUG 2; - PAIR; - SWAP; - DUP; - DUG 2; - CAR; - DIG 6; - CAR; - CAR; - PAIR; - PAIR; - DUP; - CDR; - CAR; - CDR; - SWAP; - DUP; - DUG 2; - CDR; - CDR; - GET; - IF_NONE - { - DROP; - UNIT - } - { - SWAP; - DUP; - DUG 2; - CAR; - CDR; - DIG 2; - CAR; - CAR; - PAIR; - PAIR; - DIG 8; - DUP; - DUG 9; - SWAP; - EXEC; - IF - { - UNIT - } - { - PUSH string "DUP_PERMIT"; - FAILWITH - } - }; - DROP; - DUP; - CDR; - NONE nat; - NOW; - PAIR; - DIG 4; - SWAP; - SOME; - SWAP; - UPDATE; - SWAP; - CAR; - PAIR; - SOME; - DIG 2; - UPDATE; - DIG 2; - DIG 3; - CAR; - CAR; - CAR; - CAR; - PAIR; - PAIR; - DUP; - CAR; - CDR; - SWAP; - DUP; - DUG 2; - CDR; - DUP; - DIG 2; - DUP; - DUG 3; - GET; - IF_NONE - { - SWAP; - DROP; - SWAP; - DROP; - DIG 2; - DROP - } - { - DUP; - CDR; - SWAP; - DUP; - DUG 2; - CDR; - ITER - { - DUP; - CDR; - DIG 3; - DUP; - DUG 4; - CAR; - DIG 7; - DUP; - DUG 8; - CAR; - CAR; - PAIR; - PAIR; - DIG 8; - DUP; - DUG 9; - SWAP; - EXEC; - IF - { - CAR; - NONE - (pair - timestamp - (option nat)); - SWAP; - UPDATE - } - { - DROP - } - }; - DIG 4; - DROP; - DIG 5; - DROP; - SWAP; - CAR; - PAIR; - SOME; - DIG 2; - UPDATE - }; - DIP - { - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - DUP; - CAR; - SWAP; - CDR; - CAR - }; - SWAP; - PAIR; - SWAP; - PAIR; - SWAP; - PAIR; - PAIR - } - { - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP; - PUSH string "MISSIGNED"; - PAIR; - FAILWITH - }; - NIL operation; - PAIR - } - { - DIG 4; - DROP; - DIG 4; - DROP; - PAIR; - PAIR; - DUP; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CDR; - DIG 2; - CAR; - CDR; - PAIR; - DIG 2; - SWAP; - EXEC; - DUP; - CAR; - CAR; - CDR; - CDR; - DIG 2; - DUP; - DUG 3; - GET; - IF_NONE - { - PUSH string "ADDR_NOT_MINTER"; - FAILWITH - } - { - DROP; - UNIT - }; - DROP; - DUP; - CAR; - CAR; - CDR; - CDR; - DIG 2; - NONE nat; - SWAP; - UPDATE; - DIP - { - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - CAR - }; - SWAP; - PAIR; - SWAP; - PAIR; - PAIR; - PAIR; - NIL operation; - PAIR - } - } - { - DIG 3; - DROP; - IF_LEFT - { - DIG 3; - DROP; - PAIR; - PAIR; - DUP; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - SWAP; - DUP; - DUG 2; - CAR; - DIG 2; - DUP; - DUG 3; - CDR; - CAR; - PUSH string "NOT_PERMIT_ISSUER"; - DIG 5; - CDR; - PAIR; - DIG 3; - DUP; - DUG 4; - DIG 3; - DUP; - DUG 4; - PAIR; - PAIR; - DIG 6; - SWAP; - EXEC; - DIG 4; - CDR; - CDR; - IF_NONE - { - DIG 3; - DROP; - DIG 4; - DROP; - DUP; - CAR; - CDR; - CDR; - CDR; - DIG 2; - DIG 3; - PAIR; - PAIR; - DUP; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CDR; - DUP; - DIG 2; - DUP; - DUG 3; - GET; - IF_NONE - { - DIG 4 - } - { - DIG 5; - DROP - }; - DIG 3; - CAR; - CDR; - SOME; - SWAP; - CDR; - SWAP; - PAIR; - SOME; - DIG 2; - UPDATE - } - { - DIG 5; - DROP; - DIG 4; - CAR; - CAR; - CAR; - CAR; - DIG 2; - DUP; - DUG 3; - CAR; - CDR; - CDR; - CDR; - DIG 4; - PAIR; - DIG 2; - DIG 4; - PAIR; - PAIR; - PAIR; - DUP; - CAR; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CAR; - CAR; - CDR; - DIG 2; - DUP; - DUG 3; - CAR; - CDR; - CAR; - DIG 3; - DUP; - DUG 4; - CAR; - CDR; - CDR; - PUSH nat 31557600000; - DIG 2; - DUP; - DUG 3; - COMPARE; - LT; - IF - { - DUP; - DIG 4; - DUP; - DUG 5; - GET; - IF_NONE - { - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP; - DIG 2; - DROP - } - { - DUP; - CDR; - DIG 4; - DUP; - DUG 5; - GET; - IF_NONE - { - DROP; - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP; - SWAP; - DROP; - DIG 2; - DROP - } - { - DUP; - DIG 2; - DUP; - DUG 3; - CAR; - DIG 8; - CDR; - PAIR; - PAIR; - DIG 8; - SWAP; - EXEC; - IF - { - DROP; - DIG 2; - DROP; - DIG 2; - DROP - } - { - SWAP; - DUP; - CDR; - DIG 4; - DIG 3; - DUP; - DUG 2; - CAR; - NOW; - SUB; - SWAP; - DUP; - DUG 2; - INT; - SWAP; - COMPARE; - GE; - IF - { - DROP 2; - NONE - (pair - timestamp - (option nat)) - } - { - SOME; - SWAP; - CAR; - PAIR; - SOME - }; - DIG 4; - UPDATE; - SWAP; - CAR; - PAIR - }; - SOME; - DIG 2; - UPDATE - } - } - } - { - DROP 5; - SWAP; - DROP; - PUSH string "EXPIRY_TOO_BIG"; - FAILWITH - } - }; - DIP - { - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - DUP; - CAR; - SWAP; - CDR; - CAR - }; - SWAP; - PAIR; - SWAP; - PAIR; - SWAP; - PAIR; - PAIR; - NIL operation; - PAIR - } - { - DIG 4; - DROP; - DIG 4; - DROP; - DIG 4; - DROP; - PAIR; - PAIR; - DUP; - CAR; - CAR; - SWAP; - DUP; - DUG 2; - CDR; - DIG 2; - CAR; - CDR; - PAIR; - DIG 2; - SWAP; - EXEC; - SWAP; - DUP; - DUG 2; - IF_NONE - { - UNIT - } - { - DUP; - CONTRACT %assertTransfers - (list - (pair - (address %from) - (list %tos address))); - IF_NONE - { - DROP; - PUSH string "BAD_TRANSFERLIST"; - FAILWITH - } - { - DROP; - CONTRACT %assertReceivers - (list address); - IF_NONE - { - PUSH string "BAD_TRANSFERLIST"; - FAILWITH - } - { - DROP; - UNIT - } - } - }; - DROP; - SWAP; - DIP - { - DUP; - CAR; - SWAP; - CDR; - CAR - }; - SWAP; - PAIR; - SWAP; - PAIR; - NIL operation; - PAIR - } - } - } - { - DIG 3; - DROP; - DIG 5; - DROP; - DIG 6; - DROP; - IF_LEFT - { - DIG 4; - DROP; - DIG 4; - DROP; - PAIR; - PAIR; - DUP; - CDR; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - PAIR; - DIG 2; - SWAP; - EXEC; - SWAP; - CAR; - CAR; - SOME; - DIP - { - DUP; - CAR; - SWAP; - CDR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - CAR - }; - SWAP; - PAIR; - SWAP; - PAIR; - PAIR; - PAIR; - SWAP; - PAIR; - NIL operation; - PAIR - } - { - DIG 3; - DROP; - PAIR; - PAIR; - DUP; - CAR; - CDR; - PUSH string "CONTRACT_NOT_PAUSED"; - SWAP; - DUP; - DUG 2; - CAR; - CDR; - CAR; - CDR; - NOT; - PAIR; - DIG 3; - SWAP; - EXEC; - DROP; - PUSH string "NOT_PAUSER"; - DIG 2; - CDR; - PAIR; - SWAP; - DUP; - CDR; - CAR; - CAR; - CDR; - CAR; - PAIR; - PAIR; - EXEC; - DUP; - CDR; - SWAP; - CAR; - DUP; - CAR; - SWAP; - CDR; - DUP; - CDR; - SWAP; - CAR; - CAR; - PUSH bool False; - SWAP; - PAIR; - PAIR; - SWAP; - PAIR; - PAIR; - NIL operation; - PAIR - } - } - } - } -}` \ No newline at end of file diff --git a/integration-tests/data/ligo-simple-contract.ts b/integration-tests/data/ligo-simple-contract.ts index 7c090a777c..8e4713af2b 100644 --- a/integration-tests/data/ligo-simple-contract.ts +++ b/integration-tests/data/ligo-simple-contract.ts @@ -94,109 +94,4 @@ export const ligoSample = [{ "prim": "parameter", "args": [{ "prim": "int" }] }, [[[{ "prim": "DIP", "args": [[[]]] }, { "prim": "DROP" }]]] }]]] -}] - -export const ligoSampleMichelson = `parameter -int ; -storage -int ; -code -{ - {} ; - { - { - { - { - DUP - } ; - CAR - } ; - { - { - { - { - DIP { - DUP - } ; - SWAP - } - } ; - CDR - } ; - { - PUSH unit Unit ; - { - { - { - { - { - DIP { - { - DIP { - DUP - } ; - SWAP - } - } ; - SWAP - } ; - { - DIP { - { - DIP { - DUP - } ; - SWAP - } - } ; - SWAP - } - } ; - ADD - } ; - NIL operation - } ; - PAIR - } - } ; - {} ; - DIP { - { - DIP { - { - DIP { - DIP { - DIP { - {} - } - } - } ; - DROP - } - } ; - DROP - } - } - } ; - {} ; - DIP { - { - DIP { - DIP { - {} - } - } ; - DROP - } - } - } ; - DIP { - { - DIP { - {} - } ; - DROP - } - } - } -}` +}] \ No newline at end of file diff --git a/integration-tests/data/metadataViews.ts b/integration-tests/data/metadataViews.ts deleted file mode 100644 index c8a9c23e0c..0000000000 --- a/integration-tests/data/metadataViews.ts +++ /dev/null @@ -1,646 +0,0 @@ -export const metadataViewsExample1 = { - description: 'This contract has bytes-returning off-chain-views.', - license: { - name: 'MIT', - details: 'The MIT License' - }, - source: { - tools: [ 'TZComet' ], - location: 'https://github.com/tqtezos/TZComet' - }, - errors: [ - { - error: { - int: '42' - }, - expansion: { - string: "Hello I'm error 42" - } - }, - { - error: { - int: '42' - }, - expansion: { - bytes: '7175656c7175652063686f7365206e276120706173206d61726368c3a9' - }, - languages: [ 'fr' ] - }, - { - view: 'doesNotExist' - }, - { - view: 'multiplyTheNatInStorage', - languages: [] - } - ], - views: [ - { - name: 'emptyBytes', - implementations: [ - { - michelsonStorageView: { - returnType: { - prim: 'bytes', - args: [], - annots: [ '%returnedBytes' ] - }, - code: [ - { - prim: 'DROP', - args: [], - annots: [] - }, - { - prim: 'PUSH', - args: [ - { - prim: 'bytes', - args: [], - annots: [] - }, - { - bytes: '' - } - ], - annots: [] - } - ], - annotations: [ - { - name: '%returnedBytes', - description: 'A bytes constant.' - } - ] - } - } - ] - }, - { - name: 'someJson', - implementations: [ - { - michelsonStorageView: { - returnType: { - prim: 'bytes', - args: [], - annots: [ '%returnedBytes' ] - }, - code: [ - { - prim: 'DROP', - args: [], - annots: [] - }, - { - prim: 'PUSH', - args: [ - { - prim: 'bytes', - args: [], - annots: [] - }, - { - bytes: - '7b2268656c6c6f223a22776f726c64222c226d6f7265223a7b226c6f72656d223a34322c22697073756d223a5b22222c226f6e65222c2232225d7d7d' - } - ], - annots: [] - } - ], - annotations: [ - { - name: '%returnedBytes', - description: 'A bytes constant.' - } - ] - } - } - ] - }, - { - name: 'someText', - implementations: [ - { - michelsonStorageView: { - returnType: { - prim: 'bytes', - args: [], - annots: [ '%returnedBytes' ] - }, - code: [ - { - prim: 'DROP', - args: [], - annots: [] - }, - { - prim: 'PUSH', - args: [ - { - prim: 'bytes', - args: [], - annots: [] - }, - { - bytes: - '0a4865726520697320736f6d6520746578742e0ad09bd0bed180d0b5d0bc20d0b8d0bfd181d183d0bc20d0b4d0bed0bbd0bed18020d181d0b8d18220d0b0d0bcd0b5d1822c20d0b0d0bbd0b8d18fd183d0b8d0b420d0b8d0bdd186d0bed180d180d183d0bfd182d0b520d182d185d0b5d0bed0bfd185d180d0b0d181d182d183d18120d0b5d18320d181d0b5d0b02c20d0b8d0bd0ad0b5d183d0bc20d181d0bed0bbd183d182d0b020d0bed0bfd182d0b8d0bed0bd20d0b4d0b5d184d0b8d0bdd0b8d182d0b8d0bed0bdd0b5d0bc2e20d090d18220d0bcd0b5d0b020d181d0b8d0bcd183d0bb20d0bed184d184d0b8d186d0b8d0b8d18120d0bcd0bed0bbd0b5d181d182d0b8d0b0d0b52c20d0b5d0bed1810ad18fd183d0b0d0b5d18fd183d0b520d0b8d0bdd0b2d0b8d0b4d183d0bdd18220d186d0bed0bdd0b2d0b5d0bdd0b8d180d0b520d0b8d0b42e20d090d18220d181d0bed0bbd0b5d0b0d18220d0b2d0bed0bbd183d182d0bfd0b0d18220d0b2d0b5d0bb2e20d0a1d0b5d0b420d0b5d0b820d0b8d0bdd0b5d180d0bcd0b8d1810ad0b2d0b5d180d0b8d182d183d1810a0aeca781eca084eb8c80ed86b5eba0b9ec9db420ec9786ec9d8420eb958cec9790eb8a9420eb8c80ed86b5eba0b9ec9db420eca780ebaa85ed959ceb8ba42c20eab7b820eca095ecb998eca08120eca491eba6bdec84b1ec9d800aeca480ec8898eb909ceb8ba42e20eab5adeab080eb8a9420ebb295eba5a0ec9db420eca095ed9598eb8a9420ebb094ec979020ec9d98ed9598ec97ac20eca095eb8bb9ec9ab4ec9881ec979020ed9584ec9a94ed959c20ec9e90eab888ec9d840aebb3b4eca1b0ed95a020ec889820ec9e88eb8ba42c20eab5b0ec82acebb295ec9b90ec9d9820eca1b0eca781c2b7eab68ced959c20ebb08f20ec9eaced8c90eab480ec9d9820ec9e90eab2a9ec9d8020ebb295eba5a0eba19c20eca095ed959ceb8ba42e0a' - } - ], - annots: [] - } - ], - annotations: [ - { - name: '%returnedBytes', - description: 'A bytes constant.' - } - ] - } - } - ] - }, - { - name: '200RandomCharacters', - implementations: [ - { - michelsonStorageView: { - returnType: { - prim: 'bytes', - args: [], - annots: [ '%returnedBytes' ] - }, - code: [ - { - prim: 'DROP', - args: [], - annots: [] - }, - { - prim: 'PUSH', - args: [ - { - prim: 'bytes', - args: [], - annots: [] - }, - { - bytes: - '2816ce09c073f93c10cdc5ef498311acec06fb8183e9e84ecdcb6208783361f1751a1324c2fceebb745a61d1904161ec47db7e91286d6deed63f0b53a1542a85ded61f197fef65616151531034513522a9f59a97aae6e34049108a6b4f243f4b2790e6054de045b418b4956eb49a137e2ca1d7543d06da10dba28ac70eacc694da320f7b227fdcc395240c6a81f3c17cb364cc824018680a296edf578e0d48daddaaddd70cf53ec6c7d6bdbafe9a7f8e115c574abd338af29ef6bcc57a1fb363caf74ea5f206307d' - } - ], - annots: [] - } - ], - annotations: [ - { - name: '%returnedBytes', - description: 'A bytes constant.' - } - ] - } - } - ] - }, - { - name: '1000RandomCharacters', - implementations: [ - { - michelsonStorageView: { - returnType: { - prim: 'bytes', - args: [], - annots: [ '%returnedBytes' ] - }, - code: [ - { - prim: 'DROP', - args: [], - annots: [] - }, - { - prim: 'PUSH', - args: [ - { - prim: 'bytes', - args: [], - annots: [] - }, - { - bytes: - '3488f2807fd9c671d0924896a5848488e4edf26c29e0002316c42660ad4167246167072495adddc4ba742238d966204e72ec5ad3ef2037445313f12b032a9e23fc47b93a4a5f529a5a029f0c4a258191bf7b469d62b173cf820c5993de7ce39fc3f75f19da85ddbbf8efe32a51abd10c903acb7fdafcfb6e4f10cf37d23b261104f53622c17c47a65834b8be5534df1d4721169d63eb031e0d2a47afd6fcc4f6f02c5d152c17c2e15b8b2f192fcf8b912fdac43a10242e2b2573daac7106b34e6519c06f3c95f6b4b4349a90c3949d33ff21dddb12fb1d17af20b499167c2fb6afeb7b726c7846ddf862c2d1c9da5b3788ac947f04d05e2726870d3b092d72600e06fe47ffce19ea888b98dfc0703f32dc3b17054084e5d983789c8596bc36fb82c40dcba161271c311d5dc948965712bc282f4dc3483b847c8dd3908838e30f5698a068cc5c4ff85c72c99c2d45e6599dc7dd55e97383ff5de05035a70d2c88b1f64417dea21113a802f0f3991ae20960aaee71a46708b86b05b06c51786e057517a208ec106339dfc34f898873f7b5a833aa637f2c5111fbfc86231d8905192982077e23584e4d6a4cf42bf0076322425ad0dea0cf1676102c3f179d833afe5e600ab1d247f00e87a0a76034b93a324f5816ae6127794ac34696cbd09552c4a6f5d6c5485e4ad8fd7823e19159a16b9746cce3b8a22a0ebda3709dd932da3b9b7f387b0b87045cc0318f04920eb5619c69aa8f3e6fd4649644631b7536198bf66a70a8cfbdd2537255f63ab8e972561a1a2a13a495932cb391858fcf19cdb6a20ac36cc07ac2fdd1aad2e76247c2a861942014b996bda9fefb458fb9960c0554aa916e6f4146eeaf06f41cd050d20125adad989c9160b111230184f9ddf9194f554ee08a10961299293386d18fbe1ba1fd2740146ab760c790f3721e470bf06740ed65656a26c6dcea0d5c1a33c6bb2e45cc0b2eac6919d03a5ba34895f2ec75140231f2ddd188dc34b035a47021f5d2c68235fe70153d895221bbfd12af3bf819790d099d2a0b8e804ade159ffc95eed7df4c0d0328076d35ddf5df76bbba473231c71568025d40cb19f6121ab5793204f30314cb44533d4ef6e512e6c5dbb7769819f1ffe23690e13f1325e182a732c0e6e03ff9f9887122b32e4fc525034e9c00f9159a98b9f9302e44bbd2eb6317dac650e2d265119d333138c00a36e390290e468d236c1e031642e7cdd5f39117857241ac9d11ebbd3d23c599ce9c78523ea145ef4c851de0092ebd976ea4a7bba8716fab4fd05868390723f8148f6058fd35bb1674a6e794a4ff53efbb8c5cd6a9402e166bbcb662ac71df601767550656699de965a1434879ce99fb50bb54d35e500173451fbdaaa89169951b3fa10652f0e11e28901e' - } - ], - annots: [] - } - ], - annotations: [ - { - name: '%returnedBytes', - description: 'A bytes constant.' - } - ] - } - } - ] - } - ] -}; - -export const metadataViewsExample2 = { - description: 'This contract has a couple of off-chain-views.', - license: { name: 'MIT', details: 'The MIT License' }, - source: { - tools: [ 'TZComet' ], - location: 'https://github.com/tqtezos/TZComet' - }, - errors: [ - { error: { int: '42' }, expansion: { string: "Hello I'm error 42" } }, - { - error: { int: '42' }, - expansion: { bytes: '7175656c7175652063686f7365206e276120706173206d61726368c3a9' }, - languages: [ 'fr' ] - }, - { view: 'does-not-exist' }, - { view: 'multiply-the-nat-in-storage', languages: [] } - ], - views: [ - { - name: 'an-empty-useless-view', - description: 'This view has no implementations …\n\nWhich is indeed useless.', - implementations: [] - }, - { - name: 'multiply-negative-number-or-call-failwith', - implementations: [ - { - michelsonStorageView: { - parameter: { prim: 'int', args: [], annots: [ '%the_decisive_argument' ] }, - returnType: { prim: 'int', args: [], annots: [ '%negative_even_number' ] }, - code: [ - { prim: 'CAR', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'PUSH', args: [ { prim: 'int', args: [], annots: [] }, { int: '0' } ], annots: [] }, - { prim: 'COMPARE', args: [], annots: [] }, - { prim: 'LT', args: [], annots: [] }, - { - prim: 'IF', - args: [ - [ { prim: 'FAILWITH', args: [], annots: [] } ], - [ - { - prim: 'PUSH', - args: [ { prim: 'int', args: [], annots: [] }, { int: '2' } ], - annots: [] - }, - { prim: 'MUL', args: [], annots: [] } - ] - ], - annots: [] - } - ], - annotations: [ - { - name: '%the_decisive_argument', - description: 'The integer argument if >0 this will fail.' - }, - { - name: '%negative_even_number', - description: 'The result, if any, is twice the argument (%the_decisive_argument).' - } - ] - } - } - ] - }, - { - pure: true, - name: 'multiply-the-nat-in-storage', - description: - 'This one is pure, it multiplies the natural number given as argument with the one in storage.', - implementations: [ - { - michelsonStorageView: { - parameter: { prim: 'nat', args: [], annots: [] }, - returnType: { prim: 'nat', args: [], annots: [] }, - code: [ - { prim: 'DUP', args: [], annots: [] }, - { prim: 'CDR', args: [], annots: [] }, - { prim: 'CAR', args: [], annots: [] }, - { prim: 'SWAP', args: [], annots: [] }, - { prim: 'CAR', args: [], annots: [] }, - { prim: 'MUL', args: [], annots: [] } - ] - } - } - ] - }, - { - name: 'just-call-balance', - implementations: [ - { - michelsonStorageView: { - returnType: { prim: 'mutez', args: [], annots: [] }, - code: [ { prim: 'DROP', args: [], annots: [] }, { prim: 'BALANCE', args: [], annots: [] } ] - } - } - ] - }, - { - name: 'the-identity', - implementations: [ - { - michelsonStorageView: { - parameter: { - prim: 'pair', - args: [ - { prim: 'nat', args: [], annots: [ '%arg_zero' ] }, - { - prim: 'pair', - args: [ - { prim: 'string', args: [], annots: [ '%arg_one' ] }, - { prim: 'mutez', args: [], annots: [ '%arg_two' ] } - ], - annots: [] - } - ], - annots: [] - }, - returnType: { - prim: 'pair', - args: [ - { prim: 'nat', args: [], annots: [ '%arg_zero' ] }, - { - prim: 'pair', - args: [ - { prim: 'string', args: [], annots: [ '%arg_one_result' ] }, - { prim: 'mutez', args: [], annots: [ '%arg_two' ] } - ], - annots: [] - } - ], - annots: [] - }, - code: [ { prim: 'CAR', args: [], annots: [] } ], - annotations: [ - { name: '%arg_zero', description: 'This is obvioulsy ignored.' }, - { name: '%arg_one', description: 'This is also ignored, but different.' }, - { name: '%arg_one_result', description: 'This is %arg_one on the resulting side.' }, - { - name: '%arg_two', - description: 'This is also ignored, but with a lot of data\n\nLorem ipsuming and all.' - } - ] - } - } - ] - }, - { - name: 'an-empty-useless-view', - description: 'This view has a bunch of implementations …\n\nThey are all meaningless.', - implementations: [ - { - michelsonStorageView: { - returnType: { prim: 'nat', args: [], annots: [] }, - code: [ - { prim: 'DUP', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { - prim: 'DIP', - args: [ - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] } - ], - annots: [] - } - ] - } - }, - { - michelsonStorageView: { - returnType: { prim: 'nat', args: [], annots: [] }, - code: [ - { prim: 'DUP', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'DUP', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { - prim: 'DIP', - args: [ - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { - prim: 'DIP', - args: [ - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] }, - { prim: 'PAIR', args: [], annots: [] } - ], - annots: [] - } - ], - annots: [] - } - ] - } - } - ] - }, - { - name: 'get-contract-address', - implementations: [ - { - michelsonStorageView: { - returnType: { prim: 'address', args: [], annots: [ '%ret' ] }, - code: [ - { prim: 'DROP', args: [], annots: [] }, - { prim: 'SELF', args: [], annots: [] }, - { prim: 'ADDRESS', args: [], annots: [] } - ], - annotations: [ - { - name: '%ret', - description: 'The address of the (any) contract, re-obtained in Michelson.' - } - ] - } - } - ] - } - ] -}; - -export const contractCode = [ - { prim: 'parameter', args: [ { prim: 'unit' } ] }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'nat' }, - { - prim: 'big_map', - args: [ { prim: 'string' }, { prim: 'bytes' } ], - annots: [ '%metadata' ] - } - ] - } - ] - }, - { - prim: 'code', - args: [ [ { prim: 'PUSH', args: [ { prim: 'nat' }, { int: '42' } ] }, { prim: 'FAILWITH' } ] ] - } -]; diff --git a/integration-tests/data/modified-taco-contract.ts b/integration-tests/data/modified-taco-contract.ts deleted file mode 100644 index acdf4f453a..0000000000 --- a/integration-tests/data/modified-taco-contract.ts +++ /dev/null @@ -1,127 +0,0 @@ -export const tacoContractTzip16 = [ { "prim": "parameter", "args": [ { "prim": "nat" } ] }, -{ "prim": "storage", - "args": - [ { "prim": "pair", - "args": - [ { "prim": "big_map", - "args": [ { "prim": "string" }, { "prim": "bytes" } ], - "annots": [ "%metadata" ] }, - { "prim": "map", - "args": - [ { "prim": "nat" }, - { "prim": "pair", - "args": - [ { "prim": "nat", "annots": [ "%current_stock" ] }, - { "prim": "mutez", "annots": [ "%max_price" ] } ] } ], - "annots": [ "%taco_shop_storage" ] } ] } ] }, -{ "prim": "code", - "args": - [ [ { "prim": "DUP" }, { "prim": "CAR" }, { "prim": "SWAP" }, - { "prim": "CDR" }, { "prim": "DUP" }, { "prim": "CDR" }, - { "prim": "DIG", "args": [ { "int": "2" } ] }, { "prim": "DUP" }, - { "prim": "DUG", "args": [ { "int": "3" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", - "args": - [ [ { "prim": "PUSH", - "args": - [ { "prim": "string" }, - { "string": "Unknown kind of taco." } ] }, - { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP" }, - { "prim": "CAR" }, { "prim": "SWAP" }, { "prim": "DUP" }, - { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "CDR" }, - { "prim": "EDIV" }, - { "prim": "IF_NONE", - "args": - [ [ { "prim": "PUSH", - "args": - [ { "prim": "string" }, { "string": "DIV by 0" } ] }, - { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, - { "prim": "AMOUNT" }, { "prim": "COMPARE" }, { "prim": "NEQ" }, - { "prim": "IF", - "args": - [ [ { "prim": "PUSH", - "args": - [ { "prim": "string" }, - { "string": - "Sorry, the taco you are trying to purchase has a different price" } ] }, - { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP" }, - { "prim": "PUSH", "args": [ { "prim": "nat" }, { "int": "1" } ] }, - { "prim": "DIG", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, - { "prim": "SUB" }, { "prim": "ABS" }, { "prim": "SWAP" }, - { "prim": "CDR" }, { "prim": "SWAP" }, { "prim": "PAIR" }, - { "prim": "SWAP" }, { "prim": "DUP" }, { "prim": "CDR" }, - { "prim": "DIG", "args": [ { "int": "2" } ] }, - { "prim": "DIG", "args": [ { "int": "3" } ] }, { "prim": "SWAP" }, - { "prim": "SOME" }, { "prim": "SWAP" }, { "prim": "UPDATE" }, - { "prim": "SWAP" }, { "prim": "CAR" }, { "prim": "PAIR" }, - { "prim": "NIL", "args": [ { "prim": "operation" } ] }, - { "prim": "PAIR" } ] ] } ] - -export const tacoContractTzip12 = [ { "prim": "parameter", "args": [ { "prim": "nat" } ] }, -{ "prim": "storage", - "args": - [ { "prim": "pair", - "args": - [ { "prim": "map", - "args": - [ { "prim": "nat" }, - { "prim": "pair", - "args": - [ { "prim": "nat", "annots": [ "%current_stock" ] }, - { "prim": "mutez", "annots": [ "%max_price" ] } ] } ], - "annots": [ "%taco_shop_storage" ] }, - { "prim": "big_map", - "args": - [ { "prim": "nat" }, - { "prim": "pair", - "args": - [ { "prim": "nat" }, - { "prim": "map", - "args": - [ { "prim": "string" }, { "prim": "bytes" } ] } ] } ], - "annots": [ "%token_metadata" ] } ] } ] }, -{ "prim": "code", - "args": - [ [ { "prim": "DUP" }, { "prim": "CDR" }, { "prim": "SWAP" }, - { "prim": "CAR" }, { "prim": "SWAP" }, { "prim": "DUP" }, - { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, - { "prim": "SWAP" }, { "prim": "DUP" }, - { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "GET" }, - { "prim": "IF_NONE", - "args": - [ [ { "prim": "PUSH", - "args": - [ { "prim": "string" }, - { "string": "Unknown kind of taco." } ] }, - { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP" }, - { "prim": "CAR" }, { "prim": "SWAP" }, { "prim": "DUP" }, - { "prim": "DUG", "args": [ { "int": "2" } ] }, { "prim": "CDR" }, - { "prim": "EDIV" }, - { "prim": "IF_NONE", - "args": - [ [ { "prim": "PUSH", - "args": - [ { "prim": "string" }, { "string": "DIV by 0" } ] }, - { "prim": "FAILWITH" } ], [] ] }, { "prim": "CAR" }, - { "prim": "AMOUNT" }, { "prim": "COMPARE" }, { "prim": "NEQ" }, - { "prim": "IF", - "args": - [ [ { "prim": "PUSH", - "args": - [ { "prim": "string" }, - { "string": - "Sorry, the taco you are trying to purchase has a different price" } ] }, - { "prim": "FAILWITH" } ], [] ] }, { "prim": "DUP" }, - { "prim": "CDR" }, - { "prim": "PUSH", "args": [ { "prim": "nat" }, { "int": "1" } ] }, - { "prim": "DIG", "args": [ { "int": "2" } ] }, { "prim": "CAR" }, - { "prim": "SUB" }, { "prim": "ABS" }, { "prim": "PAIR" }, - { "prim": "DIG", "args": [ { "int": "2" } ] }, { "prim": "DUP" }, - { "prim": "DUG", "args": [ { "int": "3" } ] }, { "prim": "CDR" }, - { "prim": "DIG", "args": [ { "int": "3" } ] }, { "prim": "CAR" }, - { "prim": "DIG", "args": [ { "int": "2" } ] }, - { "prim": "DIG", "args": [ { "int": "3" } ] }, { "prim": "SWAP" }, - { "prim": "SOME" }, { "prim": "SWAP" }, { "prim": "UPDATE" }, - { "prim": "PAIR" }, - { "prim": "NIL", "args": [ { "prim": "operation" } ] }, - { "prim": "PAIR" } ] ] } ] diff --git a/integration-tests/data/nft_wallet_tq.ts b/integration-tests/data/nft_wallet_tq.ts deleted file mode 100644 index e45f6e3c61..0000000000 --- a/integration-tests/data/nft_wallet_tq.ts +++ /dev/null @@ -1 +0,0 @@ -export const nftWallet = [{"prim":"parameter","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"pair","args":[{"prim":"contract","args":[{"prim":"pair","args":[{"prim":"nat","annots":["%opening_price"]},{"prim":"pair","args":[{"prim":"nat","annots":["%set_reserve_price"]},{"prim":"pair","args":[{"prim":"timestamp","annots":["%set_start_time"]},{"prim":"pair","args":[{"prim":"int","annots":["%set_round_time"]},{"prim":"ticket","args":[{"prim":"nat"}],"annots":["%ticket"]}]}]}]}]}],"annots":["%destination"]},{"prim":"pair","args":[{"prim":"nat","annots":["%opening_price"]},{"prim":"pair","args":[{"prim":"nat","annots":["%reserve_price"]},{"prim":"pair","args":[{"prim":"timestamp","annots":["%start_time"]},{"prim":"pair","args":[{"prim":"int","annots":["%round_time"]},{"prim":"nat","annots":["%ticket_id"]}]}]}]}]}],"annots":["%auction"]},{"prim":"nat","annots":["%burn"]}]},{"prim":"or","args":[{"prim":"map","args":[{"prim":"string"},{"prim":"bytes"}],"annots":["%mint"]},{"prim":"ticket","args":[{"prim":"nat"}],"annots":["%receive"]}]}]},{"prim":"pair","args":[{"prim":"contract","args":[{"prim":"ticket","args":[{"prim":"nat"}]}],"annots":["%destination"]},{"prim":"nat","annots":["%ticket_id"]}],"annots":["%send"]}]}]},{"prim":"storage","args":[{"prim":"pair","args":[{"prim":"address","annots":["%admin"]},{"prim":"pair","args":[{"prim":"big_map","args":[{"prim":"nat"},{"prim":"ticket","args":[{"prim":"nat"}]}],"annots":["%tickets"]},{"prim":"pair","args":[{"prim":"nat","annots":["%current_id"]},{"prim":"big_map","args":[{"prim":"nat"},{"prim":"pair","args":[{"prim":"nat"},{"prim":"map","args":[{"prim":"string"},{"prim":"bytes"}]}]}],"annots":["%token_metadata"]}]}]}]}]},{"prim":"code","args":[[{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"AMOUNT"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"IF","args":[[],[{"prim":"PUSH","args":[{"prim":"string"},{"string":"failed assertion"}]},{"prim":"FAILWITH"}]]},{"prim":"UNPAIR"},{"prim":"SWAP"},{"prim":"UNPAIR"},{"prim":"SWAP"},{"prim":"UNPAIR"},{"prim":"SWAP"},{"prim":"UNPAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"IF_LEFT","args":[[{"prim":"IF_LEFT","args":[[{"prim":"IF_LEFT","args":[[{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"SENDER"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"IF","args":[[],[{"prim":"PUSH","args":[{"prim":"string"},{"string":"failed assertion"}]},{"prim":"FAILWITH"}]]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"NONE","args":[{"prim":"ticket","args":[{"prim":"nat"}]}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"GET_AND_UPDATE"},{"prim":"IF_NONE","args":[[{"prim":"DROP","args":[{"int":"5"}]},{"prim":"PUSH","args":[{"prim":"string"},{"string":"no tickets"}]},{"prim":"FAILWITH"}],[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"TRANSFER_TOKENS"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"CONS"},{"prim":"PAIR"}]]}],[{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"SENDER"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"IF","args":[[],[{"prim":"PUSH","args":[{"prim":"string"},{"string":"failed assertion"}]},{"prim":"FAILWITH"}]]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"PUSH","args":[{"prim":"nat"},{"int":"1"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"ADD"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"NONE","args":[{"prim":"ticket","args":[{"prim":"nat"}]}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"UPDATE"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"PAIR"},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"PAIR"}]]}],[{"prim":"IF_LEFT","args":[[{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"SENDER"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"IF","args":[[],[{"prim":"PUSH","args":[{"prim":"string"},{"string":"failed assertion"}]},{"prim":"FAILWITH"}]]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"PUSH","args":[{"prim":"nat"},{"int":"1"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"TICKET"},{"prim":"SOME"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"GET_AND_UPDATE"},{"prim":"DROP"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"PAIR"},{"prim":"SOME"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"UPDATE"},{"prim":"PUSH","args":[{"prim":"nat"},{"int":"1"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"ADD"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"PAIR"},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"PAIR"}],[{"prim":"READ_TICKET"},{"prim":"UNPAIR"},{"prim":"DROP"},{"prim":"UNPAIR"},{"prim":"DROP"},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"SOME"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"GET_AND_UPDATE"},{"prim":"DROP"},{"prim":"PUSH","args":[{"prim":"nat"},{"int":"1"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"IF","args":[[],[{"prim":"PUSH","args":[{"prim":"string"},{"string":"failed assertion"}]},{"prim":"FAILWITH"}]]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"PUSH","args":[{"prim":"nat"},{"int":"1"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"ADD"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"PAIR"},{"prim":"SWAP"},{"prim":"PAIR"},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"PAIR"}]]}]]}],[{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"SENDER"},{"prim":"COMPARE"},{"prim":"EQ"},{"prim":"IF","args":[[],[{"prim":"PUSH","args":[{"prim":"string"},{"string":"failed assertion"}]},{"prim":"FAILWITH"}]]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"NONE","args":[{"prim":"ticket","args":[{"prim":"nat"}]}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"GET_AND_UPDATE"},{"prim":"IF_NONE","args":[[{"prim":"DROP","args":[{"int":"5"}]},{"prim":"PUSH","args":[{"prim":"string"},{"string":"no tickets"}]},{"prim":"FAILWITH"}],[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"TRANSFER_TOKENS"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"CONS"},{"prim":"PAIR"}]]}]]}]]}] \ No newline at end of file diff --git a/integration-tests/edo-deploy-contract-having-ticket.spec.ts b/integration-tests/edo-deploy-contract-having-ticket.spec.ts deleted file mode 100644 index ad639bcc94..0000000000 --- a/integration-tests/edo-deploy-contract-having-ticket.spec.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { CONFIGS } from "./config"; -import { ticketCode, ticketStorage } from '../packages/taquito-local-forging/test/data/code_with_ticket'; -import { Protocols } from "@taquito/taquito"; - -CONFIGS().forEach(({ lib, rpc, protocol, setup }) => { - const Tezos = lib; - const edonet = (protocol === Protocols.PtEdo2Zk) ? require('jest-retries') : test.skip; - - describe(`Test origination of a token contract using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup(); - done() - }) - edonet('Originates a contract having ticket with init and the wallet api', 2, async (done: () => void) => { - const op = await Tezos.wallet.originate({ - code: ticketCode, - init: ticketStorage - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - - done(); - }); - - edonet('Originates a contract having ticket with init and the contract api', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: ticketCode, - init: `(Pair None None)` - }); - - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - - done(); - }); - - edonet('Originates a contract having ticket with init in JSON and the contract api', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: ticketCode, - init: { prim: 'Pair', args: [ { prim: 'None' }, { prim: 'None' } ] } - }); - - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - - done(); - }); - - edonet('Originates a contract having ticket with storage and the contract api', 2, async (done: () => void) => { - const op = await Tezos.contract.originate({ - code: ticketCode, - storage: { - '%x': null, - '%y': null - } - }); - - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - - done(); - }); - }); -}) diff --git a/integration-tests/edo-deploy-wallet-having-ticket.spec.ts b/integration-tests/edo-deploy-wallet-having-ticket.spec.ts deleted file mode 100644 index cbeb43ceb5..0000000000 --- a/integration-tests/edo-deploy-wallet-having-ticket.spec.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { CONFIGS } from "./config"; -import { ticketCode, ticketStorage } from '../packages/taquito-local-forging/test/data/code_with_ticket'; -import { Protocols } from "@taquito/taquito"; - -CONFIGS().forEach(({ lib, rpc, protocol, setup }) => { - const Tezos = lib; - - const edonet = (protocol === Protocols.PtEdo2Zk) ? test : test.skip; - - describe(`Test origination of a token contract made with wallet api using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup(); - done() - }) - - edonet('Originates a contract having ticket with init and the wallet api', async (done) => { - const op = await Tezos.wallet.originate({ - code: ticketCode, - init: ticketStorage - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - - done(); - }); - - edonet('Originates a contract having ticket with init in JSON and the wallet api', async (done) => { - const op = await Tezos.wallet.originate({ - code: ticketCode, - init: { prim: 'Pair', args: [ { prim: 'None' }, { prim: 'None' } ] } - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - done(); - }); - - edonet('Originates a contract having ticket with storage and the wallet api', async (done) => { - const op = await Tezos.wallet.originate({ - code: ticketCode, - storage: { - '%x': null, - '%y': null - } - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - - done(); - }); - }); -}) diff --git a/integration-tests/encode-long-numeral.spec.ts b/integration-tests/encode-long-numeral.spec.ts deleted file mode 100644 index 2bddf9c48f..0000000000 --- a/integration-tests/encode-long-numeral.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { CONFIGS } from './config'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - const test = require('jest-retries'); - - describe(`Test deploying contract having long numeral in storage and calling default entry point with long numeral using the contract API: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - test('Originates contract and calls default method with long nat param', 2, async (done: () => void) => { - const code = `parameter nat; storage nat; code { CAR ; NIL operation ; PAIR }`; - const op = await Tezos.contract.originate({ - code, - storage: 1000000000000000000000000000000000000000000000000000000 - }); - const contract = await op.contract(); - - const operation = await contract.methods - .default(2000000000000000000000000000000000000000000000000000000) - .send(); - await operation.confirmation(); - expect(operation.status).toEqual('applied'); - done(); - }); - }); - - describe(`Test deploying contract having long numeral in storage and calling default entry point with long numeral using the wallet API: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - - test('Originates contract and calls default method with long int param', 2, async (done: () => void) => { - const code = `parameter int; storage int; code { CAR ; NIL operation ; PAIR }`; - const op = await Tezos.wallet.originate({ - code, - storage: 1000000000000000000000000000000000000000000000000000000 - }).send(); - const contract = await op.contract(); - - const operation = await contract.methods - .default(2000000000000000000000000000000000000000000000000000000) - .send(); - await operation.confirmation(); - expect(operation.opHash).toBeDefined(); - done(); - }); - }); -}); diff --git a/integration-tests/lambda-view.spec.ts b/integration-tests/lambda-view.spec.ts index 39c35af8ce..1a4427f854 100644 --- a/integration-tests/lambda-view.spec.ts +++ b/integration-tests/lambda-view.spec.ts @@ -8,15 +8,13 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { const Tezos = lib; const toJSON = (x: any) => JSON.parse(JSON.stringify(x)); - const test = require('jest-retries'); - describe(`Lambda view using: ${rpc}`, () => { beforeEach(async done => { await setup(); done() }); - test('Originate FA1.2 contract and fetch data from view entrypoints', 2, async (done: () => void) => { + it('Originate FA1.2 contract and fetch data from view entrypoints', async done => { const mapAccount1 = new MichelsonMap(); mapAccount1.set('tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY', '25'); mapAccount1.set('tz1Nu949TjA4zzJ1iobz76fHPZbWUraRVrCE', '25'); @@ -47,6 +45,7 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { await op.confirmation() const contract = await op.contract(); + //const contract = await Tezos.contract.at('KT1A87ZZL8mBKcWGr34BVsERPCJjfX82iBto'); const getTotalSupply = await contract.views.getTotalSupply([['Unit']]).read(); expect(getTotalSupply.toString()).toEqual('100'); @@ -61,7 +60,7 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { }) - test('Originate a contract and fetch data from view entrypoints', 2, async (done: () => void) => { + it('Originate a contract and fetch data from view entrypoints', async done => { const mapAccount2 = new MichelsonMap(); mapAccount2.set('tz1gvF4cD2dDtqitL3ZTraggSR1Mju2BKFEM', '25'); @@ -92,6 +91,9 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { await op.confirmation() const contract = await op.contract(); + + //const contract = await Tezos.contract.at('KT1QXZMKbNYBf2wa9WJ3iXeBFEqd7HqmDh3H'); + const getBalance = await contract.views.getBalance('tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY').read(); expect(toJSON(getBalance)).toEqual({ balance: '50', @@ -102,7 +104,7 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { }); - test('Originate FA2 contract and fetch data from view entrypoints', 2, async (done: () => void) => { + it('Originate FA2 contract and fetch data from view entrypoints', async done => { const bigMapLedger = new MichelsonMap(); bigMapLedger.set('tz1c1X8vD4pKV9TgV1cyosR7qdnkc8FTEyM1', { @@ -143,6 +145,8 @@ CONFIGS().forEach(({ lib, rpc, setup }) => { await op.confirmation() const contract = await op.contract(); + //const contract = await Tezos.contract.at('KT1BkrcPjCXGPrQoYhVGFNwWMMyW2LrgBg9Q'); + const balance_of = await contract.views.balance_of([{ owner: 'tz1c1X8vD4pKV9TgV1cyosR7qdnkc8FTEyM1', token_id: '0' }]).read(); expect(toJSON(balance_of)).toEqual([{ "balance": "50", diff --git a/integration-tests/ledger-signer-failing-tests.spec.ts b/integration-tests/ledger-signer-failing-tests.spec.ts deleted file mode 100644 index 9607a47a9c..0000000000 --- a/integration-tests/ledger-signer-failing-tests.spec.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { CONFIGS } from './config'; -import { LedgerSigner, LedgerTransport, DerivationType } from '../packages/taquito-ledger-signer/src/taquito-ledger-signer'; -import TransportNodeHid from "@ledgerhq/hw-transport-node-hid"; -import { ligoSample } from "./data/ligo-simple-contract"; - -/** - * LedgerSigner failing test - * - */ - -CONFIGS().forEach(({ lib, setup }) => { - const tezos = lib; - - describe('LedgerSigner failing test', () => { - let transport: LedgerTransport; - - beforeEach(async (done) => { - transport = await TransportNodeHid.create(); - await setup(); - done(); - }); - - describe('Tests where user declines all prompts on the ledger device', () => { - it('Should throw error when user declines to provide public key', async (done) => { - const signer = new LedgerSigner( - transport, - "44'/1729'/0'/0'", - true, - DerivationType.ED25519 - ); - try { - await signer.publicKey(); - } - catch (error) { - expect(error.message).toBe(`Unable to retrieve public key`); - } - done(); - }); - - it('Should throw error when user declines to sign', async (done) => { - const signer = new LedgerSigner( - transport, - "44'/1729'/0'/0'", - false, - DerivationType.ED25519 - ); - try { - const signed = await signer.sign( - '030368110e29f26373bb4c14b65c026cd88c08a64db67ebb881e7edcc90430d3396c008097b09b3bfdd573ca638ca83ee62cc80a7f4adbe80aab9c60c3500ae8070000b24ac1e1759565d5c9b69af8450ce7ea3d1ee64c00' - ); - } - catch (error) { - expect(error.message).toBe("Ledger device: Condition of use not satisfied (denied by the user?) (0x6985)") - } - done(); - }); - - describe('Should be abble to used Ledger with wallet API', () => { - jest.setTimeout(60000) - it('Should throw error when user declines transaction with Ledger', async (done) => { - const signer = new LedgerSigner( - transport, - "44'/1729'/0'/0'", - false, - DerivationType.ED25519 - ); - tezos.setSignerProvider(signer); - try { - const op = await tezos.wallet.transfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 0.1 }).send() - await op.confirmation() - } - catch (error) { - expect(error.message).toBe("Ledger device: Condition of use not satisfied (denied by the user?) (0x6985)") - } - done(); - }); - }); - - describe('Should be abble to use Ledger with contract API', () => { - jest.setTimeout(60000) - it('Should throw error when user declines to originate contract with Ledger', async (done) => { - const signer = new LedgerSigner( - transport, - "44'/1729'/0'/0'", - false, - DerivationType.ED25519 - ); - tezos.setSignerProvider(signer); - try { - const op = await tezos.contract.originate({ - balance: "1", - code: ligoSample, - storage: 0, - }) - await op.confirmation() - } - catch (error) { - expect(error.message).toBe("Ledger device: Condition of use not satisfied (denied by the user?) (0x6985)") - } - done(); - }); - }) - }); - }); -}); diff --git a/integration-tests/ledger-signer-falling-tests.spec.ts b/integration-tests/ledger-signer-falling-tests.spec.ts new file mode 100644 index 0000000000..74dacb5aee --- /dev/null +++ b/integration-tests/ledger-signer-falling-tests.spec.ts @@ -0,0 +1,100 @@ +import { LedgerSigner, LedgerTransport, DerivationType } from '../packages/taquito-ledger-signer/src/taquito-ledger-signer'; +import TransportNodeHid from "@ledgerhq/hw-transport-node-hid"; +import { TezosToolkit } from '@taquito/taquito'; +import { ligoSample } from "./data/ligo-simple-contract"; + +/** + * LedgerSigner falling test + * + */ +describe('LedgerSigner falling test', () => { + let transport: LedgerTransport; + + beforeEach(async () => { + transport = await TransportNodeHid.create(); + }); + + describe('Tests where user declines all prompts on the ledger device', () => { + it('Should throw error when user declines to provide public key', async(done) => { + const signer = new LedgerSigner( + transport, + "44'/1729'/0'/0'", + true, + DerivationType.ED25519 + ); + try { + await signer.publicKey(); + } + catch (error) { + expect(error.message).toBe(`Unable to retrieve public key`); + } + done(); + }); + + it('Should throw error when user declines to sign', async (done) => { + const signer = new LedgerSigner( + transport, + "44'/1729'/0'/0'", + false, + DerivationType.ED25519 + ); + try { + const signed = await signer.sign( + '030368110e29f26373bb4c14b65c026cd88c08a64db67ebb881e7edcc90430d3396c008097b09b3bfdd573ca638ca83ee62cc80a7f4adbe80aab9c60c3500ae8070000b24ac1e1759565d5c9b69af8450ce7ea3d1ee64c00' + ); + } + catch (error) { + expect(error.message).toBe("Ledger device: Condition of use not satisfied (denied by the user?) (0x6985)") + } + done(); + }); + + describe('Should be abble to used Ledger with wallet API', () => { + jest.setTimeout(60000) + it('Should throw error when user declines transaction with Ledger', async (done) => { + const signer = new LedgerSigner( + transport, + "44'/1729'/0'/0'", + false, + DerivationType.ED25519 + ); + const tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + tezos.setSignerProvider( signer ); + try { + const op = await tezos.wallet.transfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 0.1 }).send() + await op.confirmation() + } + catch (error) { + expect(error.message).toBe("Ledger device: Condition of use not satisfied (denied by the user?) (0x6985)") + } + done(); + }); + }); + + describe('Should be abble to use Ledger with contract API', () => { + jest.setTimeout(60000) + it('Should throw error when user declines to originate contract with Ledger', async (done) => { + const signer = new LedgerSigner( + transport, + "44'/1729'/0'/0'", + false, + DerivationType.ED25519 + ); + const tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + tezos.setSignerProvider( signer ); + try { + const op = await tezos.contract.originate({ + balance: "1", + code: ligoSample, + storage: 0, + }) + await op.confirmation() + } + catch (error) { + expect(error.message).toBe("Ledger device: Condition of use not satisfied (denied by the user?) (0x6985)") + } + done(); + }); + }) + }); +}); diff --git a/integration-tests/ledger-signer.spec.ts b/integration-tests/ledger-signer.spec.ts index 4fbb8e98e4..26b86276a0 100644 --- a/integration-tests/ledger-signer.spec.ts +++ b/integration-tests/ledger-signer.spec.ts @@ -1,18 +1,14 @@ -import { CONFIGS } from './config'; import { LedgerSigner, LedgerTransport, DerivationType } from '../packages/taquito-ledger-signer/src/taquito-ledger-signer'; import TransportNodeHid from "@ledgerhq/hw-transport-node-hid"; -import { ligoSample } from "./data/ligo-simple-contract"; import { TezosToolkit } from '@taquito/taquito'; +import { ligoSample } from "./data/ligo-simple-contract"; /** * LedgerSigner test * - * remove "testPathIgnorePatterns": ["./ledger-signer.spec.ts"] from package.json. - * - * Set up your Ledger device with this mnemonic to run this test file and + * Set up your Ledger device with this mnemonic to run this test file and remove " "testPathIgnorePatterns": ["./ledger-signer.spec.ts"] " from package.json. * 1-prefer - * 2-wait - * 3-flock + * 2-wait 3-flock * 4-brown * 5-volume * 6-recycle @@ -23,44 +19,38 @@ import { TezosToolkit } from '@taquito/taquito'; * 11-twenty * 12-giant */ +describe('LedgerSigner test', () => { + let transport: LedgerTransport; -CONFIGS().forEach(({ lib, setup, rpc }) => { - const tezos = lib; - - describe('LedgerSigner test', () => { - let transport: LedgerTransport; - - beforeEach(async (done) => { - transport = await TransportNodeHid.create(); - await setup(true); - done(); - }); + beforeEach(async () => { + transport = await TransportNodeHid.create(); + }); - it('RemoteSigner is instantiable with default parameters', () => { - expect( - new LedgerSigner( - transport - ) - ).toBeInstanceOf(LedgerSigner); - }); + it('RemoteSigner is instantiable with default parameters', () => { + expect( + new LedgerSigner( + transport + ) + ).toBeInstanceOf(LedgerSigner); + }); - it('RemoteSigner is instantiable with parameters', () => { - expect( - new LedgerSigner( - transport, - "44'/1729'/0'/0'", - true, - DerivationType.SECP256K1 - ) - ).toBeInstanceOf(LedgerSigner); - }); + it('RemoteSigner is instantiable with parameters', () => { + expect( + new LedgerSigner( + transport, + "44'/1729'/0'/0'", + true, + DerivationType.SECP256K1 + ) + ).toBeInstanceOf(LedgerSigner); + }); - describe('Get the public key', () => { - it('Should get the correct public key and public key hash of the Ledger for tz1 curve and default path', async (done) => { + describe('Get the public key', () => { + it('Should get the right public key and public key hash of the Ledger for tz1 curve and default path', async (done) => { const signer = new LedgerSigner( transport, - "44'/1729'/0'/0'", - false, + "44'/1729'/0'/0'", + false, DerivationType.ED25519 ); const pk = await signer.publicKey(); @@ -74,11 +64,11 @@ CONFIGS().forEach(({ lib, setup, rpc }) => { done(); }); - it('Should get the correct public key and public key hash of the Ledger for tz2 curve and default path', async (done) => { + it('Should get the right public key and public key hash of the Ledger for tz2 curve and default path', async (done) => { const signer = new LedgerSigner( transport, - "44'/1729'/0'/0'", - false, + "44'/1729'/0'/0'", + false, DerivationType.SECP256K1 ); const pk = await signer.publicKey(); @@ -92,11 +82,11 @@ CONFIGS().forEach(({ lib, setup, rpc }) => { done(); }); - it('Should get the correct public key and public key hash of the Ledger for tz3 curve and path having 1 as account value', async (done) => { + it('Should get the right public key and public key hash of the Ledger for tz3 curve and path having 1 as account value', async (done) => { const signer = new LedgerSigner( transport, - "44'/1729'/1'/0'", - false, + "44'/1729'/1'/0'", + false, DerivationType.P256 ); const pk = await signer.publicKey(); @@ -110,77 +100,72 @@ CONFIGS().forEach(({ lib, setup, rpc }) => { done(); }); }); - - describe('Should sign operation with Ledger', () => { - jest.setTimeout(30000); - it('Should return the correct signature with the Ledger', async (done) => { - const signer = new LedgerSigner( - transport, - "44'/1729'/0'/0'", - false, - DerivationType.ED25519 - ); - const signed = await signer.sign( - '03281e35275248696304421740804c13f1434162474ee9449f70fb0f02cfd178f26c00c9fc72e8491bd2973e196f04ec6918ad5bcee22daa0abeb98d01c35000c09a0c0000eadc0855adb415fa69a76fc10397dc2fb37039a000' - ); - expect(signed).toEqual({ - bytes: - '03281e35275248696304421740804c13f1434162474ee9449f70fb0f02cfd178f26c00c9fc72e8491bd2973e196f04ec6918ad5bcee22daa0abeb98d01c35000c09a0c0000eadc0855adb415fa69a76fc10397dc2fb37039a000', - sig: - 'sigsKFbsguu6KmUyVbarrdZiqzF94zaaQh3GWu2gXE5sEdQQbq6RFbmfo8GeC4eFLtzzwEUidf1iSX6xYARMsF8d48HAxQv9', - prefixSig: - 'edsigu38iivupB2WoYAUtithpX28W1y9vZDHHQxGdm2XD6DFaiEYRbKAgrj33KEorjiXFSYQrQER1rLQHqkaN5WDDKg8E9QHvNZ', - sbytes: - '03281e35275248696304421740804c13f1434162474ee9449f70fb0f02cfd178f26c00c9fc72e8491bd2973e196f04ec6918ad5bcee22daa0abeb98d01c35000c09a0c0000eadc0855adb415fa69a76fc10397dc2fb37039a000e029a32d628fe101d9c07f82bfd34c86c0b04ee7e3bbe317420ea098944464f18d701857c42fae94ff81bfaf838b6c16df1188ca462bd78b5dd1a2b7371f3108' + + describe('Should sign operation with Ledger', () => { + jest.setTimeout(30000); + it('Should returned the right signature with the Ledger', async (done) => { + const signer = new LedgerSigner( + transport, + "44'/1729'/0'/0'", + false, + DerivationType.ED25519 + ); + const signed = await signer.sign( + '03281e35275248696304421740804c13f1434162474ee9449f70fb0f02cfd178f26c00c9fc72e8491bd2973e196f04ec6918ad5bcee22daa0abeb98d01c35000c09a0c0000eadc0855adb415fa69a76fc10397dc2fb37039a000' + ); + expect(signed).toEqual({ + bytes: + '03281e35275248696304421740804c13f1434162474ee9449f70fb0f02cfd178f26c00c9fc72e8491bd2973e196f04ec6918ad5bcee22daa0abeb98d01c35000c09a0c0000eadc0855adb415fa69a76fc10397dc2fb37039a000', + sig: + 'sigsKFbsguu6KmUyVbarrdZiqzF94zaaQh3GWu2gXE5sEdQQbq6RFbmfo8GeC4eFLtzzwEUidf1iSX6xYARMsF8d48HAxQv9', + prefixSig: + 'sigsKFbsguu6KmUyVbarrdZiqzF94zaaQh3GWu2gXE5sEdQQbq6RFbmfo8GeC4eFLtzzwEUidf1iSX6xYARMsF8d48HAxQv9', + sbytes: + '03281e35275248696304421740804c13f1434162474ee9449f70fb0f02cfd178f26c00c9fc72e8491bd2973e196f04ec6918ad5bcee22daa0abeb98d01c35000c09a0c0000eadc0855adb415fa69a76fc10397dc2fb37039a000e029a32d628fe101d9c07f82bfd34c86c0b04ee7e3bbe317420ea098944464f18d701857c42fae94ff81bfaf838b6c16df1188ca462bd78b5dd1a2b7371f3108' + }); + done(); }); - done(); - }); - }) - - describe('Should be able to use Ledger with contract API', () => { - jest.setTimeout(120000) - it('Should originate contract with Ledger', async (done) => { + }) - const fundAccountFirst = await tezos.contract.transfer({ to: 'tz1e42w8ZaGAbM3gucbBy8iRypdbnqUj7oWY', amount: 9 }); - await fundAccountFirst.confirmation(); - - const signer = new LedgerSigner( - transport, - "44'/1729'/0'/0'", - false, - DerivationType.ED25519 - ); - const Tezos = new TezosToolkit(rpc); - Tezos.setSignerProvider(signer); - const op = await Tezos.contract.originate({ - balance: "1", - code: ligoSample, - storage: 0, - }) - await op.confirmation() - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) - done(); - }); - }) + describe('Should be abble to use Ledger with contract API', () => { + jest.setTimeout(60000) + it('Should originate contract with Ledger', async (done) => { + const signer = new LedgerSigner( + transport, + "44'/1729'/0'/0'", + false, + DerivationType.ED25519 + ); + const tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + tezos.setSignerProvider( signer ); + const op = await tezos.contract.originate({ + balance: "1", + code: ligoSample, + storage: 0, + }) + await op.confirmation() + expect(op.hash).toBeDefined(); + expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY) + done(); + }); +}) - describe('Should be able to used Ledger with wallet API', () => { - jest.setTimeout(120000) +describe('Should be abble to used Ledger with wallet API', () => { + jest.setTimeout(60000) - it('Should sign and inject transaction with Ledger', async (done) => { + it('Should sign and inject transaction with Ledger', async (done) => { const signer = new LedgerSigner( transport, - "44'/1729'/0'/0'", - false, + "44'/1729'/0'/0'", + false, DerivationType.ED25519 ); - const Tezos = new TezosToolkit(rpc); - Tezos.setSignerProvider(signer); - const op = await Tezos.wallet.transfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 0.1 }).send() - await op.confirmation() - expect(op.opHash).toBeDefined(); - done(); + const tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); + tezos.setSignerProvider( signer ); + const op = await tezos.wallet.transfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 0.1 }).send() + await op.confirmation() + expect(op.opHash).toBeDefined(); + done(); }); - }) - }); +}) }); diff --git a/integration-tests/local-forging.spec.ts b/integration-tests/local-forging.spec.ts deleted file mode 100644 index 6ff82e59aa..0000000000 --- a/integration-tests/local-forging.spec.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { CONFIGS } from "./config"; -import { commonCases, edoCases } from '../packages/taquito-local-forging/test/allTestsCases'; -import { localForger } from '@taquito/local-forging' -import { Protocols, TezosToolkit } from "@taquito/taquito"; - -CONFIGS().forEach(({ rpc, protocol }) => { - const Tezos = new TezosToolkit(rpc); - const edonet = (protocol === Protocols.PtEdo2Zk) ? test : test.skip; - - describe(`Test local forger: ${rpc}`, () => { - - commonCases.forEach(({ name, operation, expected }) => { - - it(`Should give the same result as when forging with the rpc: ${name} (${rpc})`, async done => { - const result = await localForger.forge(operation); - const rpcResult = await Tezos.rpc.forgeOperations(operation); - expect(result).toEqual(rpcResult); - expect(await localForger.parse(result)).toEqual(expected || operation); - done(); - }); - }); - - edoCases.forEach(({ name, operation, expected }) => { - - edonet(`Should give the same result as when forging with the rpc: ${name} (${rpc})`, async done => { - const result = await localForger.forge(operation); - const rpcResult = await Tezos.rpc.forgeOperations(operation); - expect(result).toEqual(rpcResult); - expect(await localForger.parse(result)).toEqual(expected || operation); - done(); - }); - }); - }); -}) \ No newline at end of file diff --git a/integration-tests/manager-contract-scenario.spec.ts b/integration-tests/manager-contract-scenario.spec.ts index d4a7322a31..1444defd9d 100644 --- a/integration-tests/manager-contract-scenario.spec.ts +++ b/integration-tests/manager-contract-scenario.spec.ts @@ -10,7 +10,7 @@ CONFIGS().forEach(({ lib, rpc, setup, knownBaker, knownContract }) => { await setup() done() }) - it('test manager transfers scenarios', async (done) => { + it('test manager transfers scenarios for Babylon/005', async (done) => { const op = await Tezos.contract.originate({ balance: "1", code: managerCode, diff --git a/integration-tests/manager-wallet-scenario.spec.ts b/integration-tests/manager-wallet-scenario.spec.ts deleted file mode 100644 index daada9d714..0000000000 --- a/integration-tests/manager-wallet-scenario.spec.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { CONFIGS } from "./config"; -import { managerCode } from "./data/manager_code"; -import { MANAGER_LAMBDA } from "@taquito/taquito"; - -CONFIGS().forEach(({ lib, rpc, setup, knownBaker, knownContract }) => { - const Tezos = lib; - const test = require('jest-retries'); - - describe(`Manager TZ: ${rpc}`, () => { - beforeEach(async (done) => { - await setup() - done() - }) - test('tests manager transfer scenarioswith wallet APi contract', 2, async (done: () => void) => { - const op = await Tezos.wallet.originate({ - balance: "1", - code: managerCode, - init: { "string": await Tezos.signer.publicKeyHash() }, - }).send(); - const contract = await op.contract(); - expect(op.status).toBeTruthy - // Transfer from implicit account (tz1) to contract (kt1_alice) - // A regular transfer operation is made. No smart contract calls required for this scenario. - const opTransferToContract = await Tezos.wallet.transfer({ to: contract.address, amount: 1 }).send(); - await opTransferToContract.confirmation(); - expect(op.status).toBeTruthy - // Transfer from contract (kt1_alice) to implicit account (tz1) - // We pass a lambda function to the kt1_alice contracts `do` entrypoint. The lambda code causes the contract to transfer - // the specified number (50) of mutez to the target address. - const opTransfer = await contract.methods.do(MANAGER_LAMBDA.transferImplicit("tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh", 50)).send({ amount: 0 }) - await opTransfer.confirmation(); - expect(opTransfer.status).toBeTruthy - // Set delegate on contract kt1_alice by passing a lambda function to kt1_alice's `do` entrypoint - const opSetDelegate = await contract.methods.do(MANAGER_LAMBDA.setDelegate(knownBaker)).send({ amount: 0 }) - await opSetDelegate.confirmation(); - expect(opSetDelegate.status).toBeTruthy - // Remove delegate on contract kt1_alice by passing a lambda function to kt1_alice's `do` entrypoint - const removeDelegateOp = await contract.methods.do(MANAGER_LAMBDA.removeDelegate()).send({ amount: 0 }) - await removeDelegateOp.confirmation(); - expect(removeDelegateOp.status).toBeTruthy - // Transfer from contract (kt1_alice) to contract (kt1 bob) - // Notice that we are instructing the kt1_alice contract to send 1 token to kt1_bob. The transfer value is passed to the - // lambda helper function. The transfer amount in the actual transfer operation is 0. We are not transferring the token - // in the transfer operation, we are instructing the contract to transfer the token using the `do` entrypoint of the kt1_alice - // contract. - const transferToContractOp = await contract.methods.do(MANAGER_LAMBDA.transferToContract(knownContract, 1)).send({ amount: 0 }) - await transferToContractOp.confirmation(); - expect(transferToContractOp.status).toBeTruthy - - try { - await contract.methods.do(MANAGER_LAMBDA.transferImplicit("tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh", 50 * 1000000)).send({ amount: 0 }) - fail('Should throw during transfer with amount higher than balance') - } catch (ex) { - expect(ex.message).toMatch('balance_too_low') - } - done(); - }) - }) -}); diff --git a/integration-tests/multisig-contract-scenario.spec.ts b/integration-tests/multisig-contract-scenario.spec.ts index 87ed4574b5..3c545ce48f 100644 --- a/integration-tests/multisig-contract-scenario.spec.ts +++ b/integration-tests/multisig-contract-scenario.spec.ts @@ -4,14 +4,14 @@ import { genericMultisig } from "./data/multisig"; CONFIGS().forEach(({ lib, rpc, setup, createAddress }) => { const Tezos = lib; - const test = require('jest-retries') + describe(`Generic Multisig: ${rpc}`, () => { beforeEach(async (done) => { await setup() done() }) - test('test manager transfers scenarios', 2, async (done: () => void) => { + it('test manager transfers scenarios for Babylon/005', async (done) => { const account1 = await createAddress(); const account2 = await createAddress(); const account3 = await createAddress(); @@ -30,7 +30,6 @@ CONFIGS().forEach(({ lib, rpc, setup, createAddress }) => { expect(op.status).toEqual('applied') // Utility function that mimic the PAIR operation of michelson - // file deepcode ignore no-any: any is good enough const pair = ({ data, type }: any, value: any) => { return { data: { @@ -46,7 +45,6 @@ CONFIGS().forEach(({ lib, rpc, setup, createAddress }) => { // Packing the data that need to be sign by each party of the multi-sig // The data passed to this step is specific to this multi-sig implementation - // file deepcode ignore no-any: any is good enough const { packed } = await Tezos.rpc.packData(pair({ data: { prim: 'Pair', diff --git a/integration-tests/multisig-wallet-scenario.spec.ts b/integration-tests/multisig-wallet-scenario.spec.ts deleted file mode 100644 index f48b731db6..0000000000 --- a/integration-tests/multisig-wallet-scenario.spec.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { CONFIGS } from "./config"; -import { MANAGER_LAMBDA } from "@taquito/taquito"; -import { genericMultisig } from "./data/multisig"; - -CONFIGS().forEach(({ lib, rpc, setup, createAddress }) => { - const Tezos = lib; - const test = require('jest-retries'); - - describe(`Generic Multisig: ${rpc}`, () => { - beforeEach(async (done) => { - await setup() - done() - }) - test('test manager transfers scenarios for wallet api contract', 2, async (done: () => void) => { - const account1 = await createAddress(); - const account2 = await createAddress(); - const account3 = await createAddress(); - - // Originate the multisig contract - const op = await Tezos.wallet.originate({ - balance: "1", - code: genericMultisig, - storage: { - stored_counter: 0, - threshold: 2, - keys: [await account1.signer.publicKey(), await account2.signer.publicKey(), await account3.signer.publicKey()] - } - }).send(); - const contract = await op.contract(); - expect(op.status).toBeTruthy - - // Utility function that mimics the PAIR operation of michelson - // deepcode ignore no-any: any is good enough - const pair = ({ data, type }: any, value: any) => { - return { - data: { - prim: 'Pair', - args: [{ "string": value }, data] - }, - type: { - prim: 'pair', - args: [{ prim: "address" }, type] - } - } - } - - // Packing the data that needs to be signed by each party of the multi-sig - // The data passed to this step is specific to this multi-sig implementation - const { packed } = await Tezos.rpc.packData(pair({ - data: { - prim: 'Pair', - args: [ - { "int": "0" }, - { - prim: 'Left', - args: [MANAGER_LAMBDA.transferImplicit("tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh", 500)] - } - ] - // deepcode ignore no-any: any is good enough - } as any, - type: { - "prim": "pair", - "args": - [{ - "prim": "nat", - "annots": ["%counter"] - }, - { - "prim": "or", - "args": - [{ - "prim": "lambda", - "args": - [{ "prim": "unit" }, - { - "prim": "list", - "args": - [{ - "prim": - "operation" - }] - }], - "annots": - ["%operation"] - }, - { - "prim": "pair", - "args": - [{ - "prim": "nat", - "annots": - ["%threshold"] - }, - { - "prim": "list", - "args": - [{ "prim": "key" }], - "annots": - ["%keys"] - }], - "annots": - ["%change_keys"] - }], - "annots": [":action"] - }], - "annots": [":payload"] - } - }, contract.address)) - - // Signing the packed - const signature1 = await account1.signer.sign(packed, new Uint8Array()) - const signature2 = await account2.signer.sign(packed, new Uint8Array()) - - const op2 = await contract.methods.main( - // Counter - "0", - // Sub function - 'operation', - // Action - MANAGER_LAMBDA.transferImplicit("tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh", 500), - // Signature list - [signature1.prefixSig, signature2.prefixSig, null] - ).send() - - await op2.confirmation(); - done(); - }) - }) -}); diff --git a/integration-tests/pack.spec.ts b/integration-tests/pack.spec.ts deleted file mode 100644 index cb4ce105f0..0000000000 --- a/integration-tests/pack.spec.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { CONFIGS } from "./config"; -import { TezosToolkit } from "@taquito/taquito"; -import { MichelsonType, MichelsonData, ProtocolID, packDataBytes } from "@taquito/michel-codec"; -import { MichelsonV1Expression } from "@taquito/rpc"; -import fs from "fs"; -import path from "path"; - -interface TypedTestData { - type?: MichelsonType; - data: MichelsonData; - expect?: MichelsonData; - packed: string; - proto?: ProtocolID; -} - -CONFIGS().forEach(({ rpc, protocol }) => { - const Tezos = new TezosToolkit(rpc); - - describe(`Test binary encoding: ${rpc}`, () => { - const fn = path.resolve(__dirname, "../packages/taquito-michel-codec/pack-test-tool/data.json"); - const src: TypedTestData[] = JSON.parse(fs.readFileSync(fn).toString()); - - describe("pack", () => { - for (const s of src) { - const def = (s.proto === undefined || s.proto === protocol) ? test : test.skip; - def(`Should give the same result as when packing the rpc: ${JSON.stringify(s.data)} (${rpc})`, async done => { - const local = packDataBytes(s.data, s.type); - const rpcResult = await Tezos.rpc.packData({ data: s.data, type: s.type as MichelsonV1Expression }, { block: "head" }) - expect(local.bytes).toEqual(rpcResult.packed); - done(); - }); - } - }); - }); -}) \ No newline at end of file diff --git a/integration-tests/package-lock.json b/integration-tests/package-lock.json index 57523d0d4b..d3a0350cf7 100644 --- a/integration-tests/package-lock.json +++ b/integration-tests/package-lock.json @@ -1,6 +1,6 @@ { "name": "integration-tests", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -348,15 +348,6 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, "@babel/template": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", @@ -480,34 +471,34 @@ } }, "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.5.2.tgz", + "integrity": "sha512-LLTo1LQMg7eJjG/+P1NYqFof2B25EV1EqzD5FonklihG4UJKiK2JBIvWonunws6W7e+DhNLoFD+g05tCY03eyA==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^26.5.2", + "@jest/reporters": "^26.5.2", + "@jest/test-result": "^26.5.2", + "@jest/transform": "^26.5.2", + "@jest/types": "^26.5.2", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", + "jest-changed-files": "^26.5.2", + "jest-config": "^26.5.2", + "jest-haste-map": "^26.5.2", + "jest-message-util": "^26.5.2", "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", + "jest-resolve": "^26.5.2", + "jest-resolve-dependencies": "^26.5.2", + "jest-runner": "^26.5.2", + "jest-runtime": "^26.5.2", + "jest-snapshot": "^26.5.2", + "jest-util": "^26.5.2", + "jest-validate": "^26.5.2", + "jest-watcher": "^26.5.2", "micromatch": "^4.0.2", "p-each-series": "^2.1.0", "rimraf": "^3.0.0", @@ -515,485 +506,36 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - } - }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", - "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", - "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": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - } - }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - } - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - } - }, - "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "chalk": "^4.0.0" } }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "@types/istanbul-lib-report": "*" } }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } } } @@ -1138,16 +680,16 @@ } }, "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.5.2.tgz", + "integrity": "sha512-zvq6Wvy6MmJq/0QY0YfOPb49CXKSf42wkJbrBPkeypVa8I+XDxijvFuywo6TJBX/ILPrdrlE/FW9vJZh6Rf9vA==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^26.5.2", + "@jest/test-result": "^26.5.2", + "@jest/transform": "^26.5.2", + "@jest/types": "^26.5.2", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", @@ -1158,148 +700,48 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", + "jest-haste-map": "^26.5.2", + "jest-resolve": "^26.5.2", + "jest-util": "^26.5.2", + "jest-worker": "^26.5.0", "node-notifier": "^8.0.0", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" + "v8-to-istanbul": "^5.0.1" }, "dependencies": { - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "@types/istanbul-lib-report": "*" } }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } } } @@ -1432,85 +874,90 @@ } }, "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", + "@types/istanbul-reports": "^1.1.1", "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" + "chalk": "^3.0.0" } }, "@ledgerhq/devices": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.41.0.tgz", - "integrity": "sha512-3rZzjJ8JEX2dBU+Nq8+FygxFoMZJ/XucjwNBXRaZQfqIFfYGywUH2RueQTY8d0JpzeSS5XYALAXzwLCRZmYrAg==", - "requires": { - "@ledgerhq/errors": "^5.41.0", - "@ledgerhq/logs": "^5.41.0", - "rxjs": "^6.6.3", - "semver": "^7.3.4" + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.25.0.tgz", + "integrity": "sha512-3wsxVDkUYd5ERA5KVy99wEGbHAkfsuWbQ8b2ruzr8JX9wIxUS8mu1XkdoDt5M+H4jXP9C8ZGj9YT3VsiiIzfxg==", + "requires": { + "@ledgerhq/errors": "^5.25.0", + "@ledgerhq/logs": "^5.25.0", + "rxjs": "^6.6.3" }, "dependencies": { - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "requires": { - "lru-cache": "^6.0.0" + "tslib": "^1.9.0" } } } }, "@ledgerhq/errors": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.41.0.tgz", - "integrity": "sha512-Di6Uq9l9c/W9V1jZAQjsVPbvSOSRipF+zXd/Z6SVKB1QxIHwXZu7KYSUnDLV6jqKZ9fxXoLjTYWq2Gl/EW87Kw==" + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.25.0.tgz", + "integrity": "sha512-+FyyweA9odaWRwRkS35Wf0n2gC4tGsBlgW6VMhT7m1kcwVzUqNFyQzqMKqYvYEAga0P0X59wE+IAlqokkG7Usg==" }, "@ledgerhq/hw-transport": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.41.0.tgz", - "integrity": "sha512-4zmTW1XwxvO5Ei+LoV11qXPd97UI8XxwuCeb794g/r6dkqlAL8bh35aVCHpbiHRXnoCt51a74ZciQ1yYteR/8Q==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.25.0.tgz", + "integrity": "sha512-q6hhWWwbSZPmzdTaQMowY+uQYwCC4xRqRQFQFgF6BjZFn2n+AwGOEU9mDmHnjL6XxkQfj8CjWuPJSRRv5OLmlg==", "requires": { - "@ledgerhq/devices": "^5.41.0", - "@ledgerhq/errors": "^5.41.0", + "@ledgerhq/devices": "^5.25.0", + "@ledgerhq/errors": "^5.25.0", "events": "^3.2.0" } }, "@ledgerhq/hw-transport-node-hid": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.41.0.tgz", - "integrity": "sha512-PjWnV7ASDCzfDcp5td7CZTYt3/D8gSv3gsCFa/GVwwNoqec7PZ9GsnSFnpJOjxP/LHi1FsATbGJ5Sal9dyFlWA==", - "requires": { - "@ledgerhq/devices": "^5.41.0", - "@ledgerhq/errors": "^5.41.0", - "@ledgerhq/hw-transport": "^5.41.0", - "@ledgerhq/hw-transport-node-hid-noevents": "^5.41.0", - "@ledgerhq/logs": "^5.41.0", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.25.0.tgz", + "integrity": "sha512-px0i61nEAS61xJTFLB+s9Xg5V2cfFXFWyl9+apewazBnhEh7dWINJaIJ1XHmfJFySYMkriHXyaFQeb+9KCBZ1w==", + "requires": { + "@ledgerhq/devices": "^5.25.0", + "@ledgerhq/errors": "^5.25.0", + "@ledgerhq/hw-transport": "^5.25.0", + "@ledgerhq/hw-transport-node-hid-noevents": "^5.25.0", + "@ledgerhq/logs": "^5.25.0", "lodash": "^4.17.20", - "node-hid": "2.1.1", + "node-hid": "1.3.0", "usb": "^1.6.3" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + } } }, "@ledgerhq/hw-transport-node-hid-noevents": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.41.0.tgz", - "integrity": "sha512-XMFM10KAPLQMkNYqawcxy9uXGw6B/SRxNILx/gKXhsBvl20yYCMz6zIwgdlOTPTcgckS7IkAaghwoEN8U0Fk8A==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.25.0.tgz", + "integrity": "sha512-2vC/9xOl/B8cCejxNWZLdzOwd9JvbjHq7SMJdhM9UDAGPcfy1awRRpuPpLQWS1hhM0sck5ejXz63L4xPqWRcdg==", "requires": { - "@ledgerhq/devices": "^5.41.0", - "@ledgerhq/errors": "^5.41.0", - "@ledgerhq/hw-transport": "^5.41.0", - "@ledgerhq/logs": "^5.41.0", - "node-hid": "2.1.1" + "@ledgerhq/devices": "^5.25.0", + "@ledgerhq/errors": "^5.25.0", + "@ledgerhq/hw-transport": "^5.25.0", + "@ledgerhq/logs": "^5.25.0", + "node-hid": "1.3.0" } }, "@ledgerhq/logs": { - "version": "5.41.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.41.0.tgz", - "integrity": "sha512-pY3nIxOWISAreVTiKRDdKgjQvKWkzz3lov9LsJLyaTn0Q1PISHPjcuMpchueLI50BMA6v1M8ENzXgpqqw+KQDw==" + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.25.0.tgz", + "integrity": "sha512-OPlkvufjwJWQR+Jp7C6GaEeub+ZHzh3x0xyQMVLL62O7VGrhpzjwq2il/aLNt687k7mKJ+Vg6lFL1B6gO1ZiIg==" }, "@sinonjs/commons": { "version": "1.8.1", @@ -1602,28 +1049,29 @@ } }, "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "dev": true, "requires": { + "@types/istanbul-lib-coverage": "*", "@types/istanbul-lib-report": "*" } }, "@types/jest": { - "version": "26.0.16", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.16.tgz", - "integrity": "sha512-Gp12+7tmKCgv9JjtltxUXokohCAEZfpJaEW5tn871SGRp8I+bRWBonQO7vW5NHwnAHe5dd50+Q4zyKuN35i09g==", + "version": "26.0.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.14.tgz", + "integrity": "sha512-Hz5q8Vu0D288x3iWXePSn53W7hAjP0H7EQ6QvDO9c7t46mR0lNOLlfuwQ+JkVxuhygHzlzPX+0jKdA3ZgSh+Vg==", "dev": true, "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" + "jest-diff": "^25.2.1", + "pretty-format": "^25.2.1" } }, "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", + "version": "14.11.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.5.tgz", + "integrity": "sha512-jVFzDV6NTbrLMxm4xDSIW/gKnk8rQLF9wAzLWIOg+5nU6ACrIMndeBdXci0FGtqJbP9tQvm6V39eshc96TO2wQ==", "dev": true }, "@types/normalize-package-data": { @@ -1671,12 +1119,6 @@ "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -1744,12 +1186,6 @@ } } }, - "ansi-parser": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/ansi-parser/-/ansi-parser-3.2.10.tgz", - "integrity": "sha512-CGKGIbd678lm15IXJXI1cTyOVAnMQw0jES+klW/yIc+GzYccsYanLMhczPIIj2hE64B79g75QfiuWrEWd6nJdg==", - "dev": true - }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", @@ -1788,6 +1224,30 @@ "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" + } + }, + "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" + } + } } }, "arg": { @@ -2046,9 +1506,9 @@ } }, "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "bcrypt-pbkdf": { "version": "1.0.2", @@ -2059,11 +1519,6 @@ "tweetnacl": "^0.14.3" } }, - "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" - }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -2080,26 +1535,8 @@ "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, - "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", - "dev": true - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2144,12 +1581,12 @@ } }, "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-from": { @@ -2209,9 +1646,9 @@ "dev": true }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -2224,52 +1661,6 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, - "chart.js": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz", - "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==", - "dev": true, - "requires": { - "chartjs-color": "^2.1.0", - "moment": "^2.10.2" - } - }, - "chartjs-color": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", - "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", - "dev": true, - "requires": { - "chartjs-color-string": "^0.6.0", - "color-convert": "^1.9.3" - }, - "dependencies": { - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } - } - }, - "chartjs-color-string": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", - "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", - "dev": true, - "requires": { - "color-name": "^1.0.0" - } - }, "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", @@ -2281,12 +1672,6 @@ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -2453,12 +1838,6 @@ "yaml": "^1.10.0" } }, - "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 - }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -2643,22 +2022,11 @@ "dev": true }, "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", "dev": true }, - "diff2html": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.3.1.tgz", - "integrity": "sha512-rpk2H3pAvNXj6Hu43pHhsFdos/G/2QewyPyipsKl+vIVHRarWI5wlof4qvGnuhD+tpVkNicC+ZetkE4XkVEQjA==", - "dev": true, - "requires": { - "diff": "4.0.2", - "highlight.js": "10.4.1", - "hogan.js": "3.0.2" - } - }, "doctrine": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", @@ -2748,12 +2116,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -2879,19 +2241,51 @@ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" }, "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.5.2.tgz", + "integrity": "sha512-ccTGrXZd8DZCcvCz4htGXTkd/LOoy6OEtiDS38x3/VVf6E4AQL0QoeksBiw7BtGR5xDNiRYPB8GN6pfbuTOi7w==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^26.5.2", "ansi-styles": "^4.0.0", "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", + "jest-matcher-utils": "^26.5.2", + "jest-message-util": "^26.5.2", "jest-regex-util": "^26.0.0" }, "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "jest-get-type": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", @@ -3108,12 +2502,6 @@ "dev": true, "optional": true }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -3264,15 +2652,6 @@ "har-schema": "^2.0.0" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3336,37 +2715,6 @@ } } }, - "highlight.js": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz", - "integrity": "sha512-yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg==", - "dev": true, - "optional": true - }, - "hogan.js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=", - "dev": true, - "requires": { - "mkdirp": "0.3.0", - "nopt": "1.0.10" - }, - "dependencies": { - "mkdirp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", - "dev": true - } - } - }, - "holderjs": { - "version": "2.9.9", - "resolved": "https://registry.npmjs.org/holderjs/-/holderjs-2.9.9.tgz", - "integrity": "sha512-ceWPz1MrR3dxOoZXiom+G48+l1VPG3TcjBw9fq5iwCiZAMvYX8Aia13GOxT7DoV/AcSyTH7Vvr11ygjZP9qn4w==", - "dev": true - }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", @@ -3415,9 +2763,9 @@ } }, "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, "import-fresh": { "version": "3.2.1", @@ -3475,9 +2823,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "ip-regex": { "version": "2.1.0", @@ -3526,15 +2874,6 @@ "ci-info": "^2.0.0" } }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -3742,531 +3081,114 @@ } }, "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.5.2.tgz", + "integrity": "sha512-4HFabJVwsgDwul/7rhXJ3yFAF/aUkVIXiJWmgFxb+WMdZG39fVvOwYAs8/3r4AlFPc4m/n5sTMtuMbOL3kNtrQ==", "dev": true, "requires": { - "@jest/core": "^26.6.3", + "@jest/core": "^26.5.2", "import-local": "^3.0.2", - "jest-cli": "^26.6.3" + "jest-cli": "^26.5.2" }, "dependencies": { - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - } - }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, - "babel-preset-current-node-syntax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", - "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "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" + "@types/istanbul-lib-report": "*" } }, - "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.5.2.tgz", + "integrity": "sha512-usm48COuUvRp8YEG5OWOaxbSM0my7eHn3QeBWxiGUuFhvkGVBvl1fic4UjC02EAEQtDv8KrNQUXdQTV6ZZBsoA==", "dev": true, "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/core": "^26.5.2", + "@jest/test-result": "^26.5.2", + "@jest/types": "^26.5.2", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "import-local": "^3.0.2", "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", + "jest-config": "^26.5.2", + "jest-util": "^26.5.2", + "jest-validate": "^26.5.2", "prompts": "^2.0.1", "yargs": "^15.4.1" } - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - } - }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - } - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + } + } + }, + "jest-changed-files": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.5.2.tgz", + "integrity": "sha512-qSmssmiIdvM5BWVtyK/nqVpN3spR5YyvkvPqz1x3BR1bwIxsWmU/MGwLoCrPNLbkG2ASAKfvmJpOduEApBPh2w==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - } - }, - "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" + "chalk": "^4.0.0" } }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "@types/istanbul-lib-report": "*" } }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "dependencies": { "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -4279,9 +3201,9 @@ } }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", "dev": true, "requires": { "cross-spawn": "^7.0.0", @@ -4430,15 +3352,15 @@ } }, "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", "dev": true, "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" } }, "jest-docblock": { @@ -4613,9 +3535,9 @@ } }, "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", "dev": true }, "jest-haste-map": { @@ -4787,56 +3709,159 @@ "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.5.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", - "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", - "dev": true, - "requires": { - "@jest/types": "^26.5.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", + "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + } + } + }, + "jest-matcher-utils": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.5.2.tgz", + "integrity": "sha512-W9GO9KBIC4gIArsNqDUKsLnhivaqf8MSs6ujO/JDcPIQrmY+aasewweXVET8KdrJ6ADQaUne5UzysvF/RR7JYA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.5.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.5.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "diff-sequences": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.5.0.tgz", + "integrity": "sha512-ZXx86srb/iYy6jG71k++wBN9P9J05UNQ5hQHQd9MtMPvcqXPx/vKU69jfHV637D00Q2gSgPk2D+jSx3l1lDW/Q==", + "dev": true + }, + "jest-diff": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.5.2.tgz", + "integrity": "sha512-HCSWDUGwsov5oTlGzrRM+UPJI/Dpqi9jzeV0fdRNi3Ch5bnoXhnyJMmVg2juv9081zLIy3HGPI5mcuGgXM2xRA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.5.0", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.5.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", + "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + } + } + }, + "jest-message-util": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.5.2.tgz", + "integrity": "sha512-Ocp9UYZ5Jl15C5PNsoDiGEk14A4NG0zZKknpWdZGoMzJuGAkVt10e97tnEVMYpk7LnQHZOfuK2j/izLBMcuCZw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.5.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } } } }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - } - }, "jest-mock": { "version": "26.5.2", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.5.2.tgz", @@ -4944,140 +3969,50 @@ } }, "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.5.2.tgz", + "integrity": "sha512-LLkc8LuRtxqOx0AtX/Npa2C4I23WcIrwUgNtHYXg4owYF/ZDQShcwBAHjYZIFR06+HpQcZ43+kCTMlQ3aDCYTg==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^26.5.2", "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" + "jest-snapshot": "^26.5.2" }, "dependencies": { - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "@types/istanbul-lib-report": "*" } }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } } } }, - "jest-retries": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jest-retries/-/jest-retries-1.0.1.tgz", - "integrity": "sha512-tR9tCXs9+Vqw/2toQEOg+CpzOwUqReppcZH2550EnuEhw4F8TR+NbICPUJexegjN9xnuF4ABSGPgzCgAFZI0Ng==", - "dev": true - }, "jest-runner": { "version": "26.5.2", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.5.2.tgz", @@ -5318,81 +4253,6 @@ } } }, - "jest-stare": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jest-stare/-/jest-stare-2.2.1.tgz", - "integrity": "sha512-Ma+DjZeLVVPZnLUlgi/YFYMznsU36Tp06FjBU8lwf1t153+0vVltVqZoKrevklUxoItTjIMOyk/liPF/whqWvg==", - "dev": true, - "requires": { - "@jest/reporters": "^26.0.0", - "@jest/test-result": "^26.0.0", - "@jest/types": "^26.0.0", - "@types/jest": "^26.0.12", - "ansi-parser": "^3.2.10", - "bootstrap": "^4.5.2", - "chalk": "^4.1.0", - "chart.js": "^2.9.3", - "diff2html": "^3.1.18", - "holderjs": "^2.9.7", - "jquery": "^3.5.1", - "moment": "^2.27.0", - "mustache": "^4.0.0", - "pkg-up": "^3.0.0", - "popper.js": "^1.16.1", - "yargs": "^16.0.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.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" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", - "dev": true - } - } - }, "jest-util": { "version": "26.5.2", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.5.2.tgz", @@ -5514,58 +4374,50 @@ } }, "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.5.2.tgz", + "integrity": "sha512-i3m1NtWzF+FXfJ3ljLBB/WQEp4uaNhX7QcQUWMokcifFTUQBDFyUMEwk0JkJ1kopHbx7Een3KX0Q7+9koGM/Pw==", "dev": true, "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/test-result": "^26.5.2", + "@jest/types": "^26.5.2", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^26.6.2", + "jest-util": "^26.5.2", "string-length": "^4.0.1" }, "dependencies": { - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@types/istanbul-lib-report": "*" } }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } } } @@ -5581,12 +4433,6 @@ "supports-color": "^7.0.0" } }, - "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5883,9 +4729,10 @@ } }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true }, "lodash.memoize": { "version": "4.1.2", @@ -5945,14 +4792,6 @@ } } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -6088,28 +4927,16 @@ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, - "moment": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", - "dev": true - }, "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 }, - "mustache": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.1.0.tgz", - "integrity": "sha512-0FsgP/WVq4mKyjolIyX+Z9Bd+3WS8GOwoUTyKXT5cTYMGeauNTi2HPCwERqseC1IHAy0Z7MDZnJBfjabd4O8GQ==", - "dev": true - }, "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" }, "nanomatch": { "version": "1.2.13", @@ -6148,26 +4975,22 @@ "dev": true }, "node-abi": { - "version": "2.19.3", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", - "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz", + "integrity": "sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==", "requires": { "semver": "^5.4.1" } }, - "node-addon-api": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz", - "integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==" - }, "node-hid": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-2.1.1.tgz", - "integrity": "sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-1.3.0.tgz", + "integrity": "sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g==", "requires": { "bindings": "^1.5.0", - "node-addon-api": "^3.0.2", - "prebuild-install": "^6.0.0" + "nan": "^2.14.0", + "node-abi": "^2.18.0", + "prebuild-install": "^5.3.4" } }, "node-int64": { @@ -6198,14 +5021,11 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true }, "which": { "version": "2.0.2", @@ -6224,15 +5044,6 @@ "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -6374,9 +5185,9 @@ } }, "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", + "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==", "dev": true }, "p-finally": { @@ -6511,51 +5322,6 @@ "find-up": "^4.0.0" } }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -6565,12 +5331,6 @@ "semver-compare": "^1.0.0" } }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "dev": true - }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -6578,15 +5338,15 @@ "dev": true }, "prebuild-install": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.0.0.tgz", - "integrity": "sha512-h2ZJ1PXHKWZpp1caLw0oX9sagVpL2YTk+ZwInQbQ3QqNd4J03O6MpFNmMTJlkfgPENWqe5kP0WjQLqz5OjLfsw==", + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz", + "integrity": "sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==", "requires": { "detect-libc": "^1.0.3", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", + "mkdirp": "^0.5.1", "napi-build-utils": "^1.0.1", "node-abi": "^2.7.0", "noop-logger": "^0.1.1", @@ -6597,6 +5357,16 @@ "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0", "which-pm-runs": "^1.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } } }, "prelude-ls": { @@ -6606,23 +5376,15 @@ "dev": true }, "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^25.5.0", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", - "dev": true - } + "react-is": "^16.12.0" } }, "process-nextick-args": { @@ -6631,13 +5393,13 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", + "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", "dev": true, "requires": { "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "sisteransi": "^1.0.4" } }, "psl": { @@ -6716,17 +5478,13 @@ } }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "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" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "regex-not": { @@ -6909,9 +5667,10 @@ "dev": true }, "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, "requires": { "tslib": "^1.9.0" } @@ -7489,11 +6248,18 @@ } }, "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==", + "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.1.0" + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "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==" + } } }, "stringify-object": { @@ -7565,38 +6331,26 @@ "dev": true }, "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", + "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", "requires": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "tar-stream": "^2.0.0" } }, "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", + "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", "requires": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } } }, "terminal-link": { @@ -7706,9 +6460,9 @@ } }, "ts-jest": { - "version": "26.4.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", - "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", + "version": "26.4.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.1.tgz", + "integrity": "sha512-F4aFq01aS6mnAAa0DljNmKr/Kk9y4HVZ1m6/rtJ0ED56cuxINGq3Q9eVAh+z5vcYKe5qnTMvv90vE8vUMFxomg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -7725,30 +6479,26 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-yYsjuSkjbLMBp16eaOt7/siKTjNVjMm3SoJnIg3sEh/JsvqVVDyjRKmaJV4cl+lNIgq6QEco2i3gDebJl7/vLA==", "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -7945,9 +6695,9 @@ } }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz", + "integrity": "sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==", "dev": true }, "union-value": { @@ -8018,36 +6768,19 @@ "dev": true }, "usb": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/usb/-/usb-1.6.4.tgz", - "integrity": "sha512-/QYxyZEcj2iRnNT2HaHurCa/nVc54/d3vXxGH8Wz/shsGDgrf/7vg7N65VTGeR1MWQof7O4EQXfLpKd1k3VU7Q==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/usb/-/usb-1.6.3.tgz", + "integrity": "sha512-23KYMjaWydACd8wgGKMQ4MNwFspAT6Xeim4/9Onqe5Rz/nMb4TM/WHL+qPT0KNFxzNKzAs63n1xQWGEtgaQ2uw==", "requires": { "bindings": "^1.4.0", "nan": "2.13.2", "prebuild-install": "^5.3.3" }, "dependencies": { - "prebuild-install": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", - "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - } + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" } } }, @@ -8070,9 +6803,9 @@ "optional": true }, "v8-to-istanbul": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", - "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz", + "integrity": "sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -8283,11 +7016,6 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "yaml": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", diff --git a/integration-tests/package.json b/integration-tests/package.json index b3991747fc..d4a4a1cbe5 100644 --- a/integration-tests/package.json +++ b/integration-tests/package.json @@ -2,25 +2,22 @@ "name": "integration-tests", "scripts": { "test:faucet": "RUN_WITH_FAUCET=true jest --runInBand", - "test:edonet": "EDONET=true jest", - "test:edonet-faucet": "RUN_EDONET_WITH_FAUCET=true jest --runInBand", - "test:florencenet": "FLORENCENET=true jest", - "test:florencenet-faucet": "RUN_FLORENCENET_WITH_FAUCET=true jest --runInBand", + "test:carthagenet": "CARTHAGENET=true jest", + "test:carthagenet-faucet": "RUN_CARTHAGENET_WITH_FAUCET=true jest --runInBand", + "test:delphinet": "DELPHINET=true jest", + "test:delphinet-faucet": "RUN_DELPHINET_WITH_FAUCET=true jest --runInBand", "test": "jest" }, - "version": "9.0.0", + "version": "7.1.0-preview.1", "dependencies": { - "@ledgerhq/hw-transport": "^5.41.0", - "@ledgerhq/hw-transport-node-hid": "^5.41.0", - "@taquito/http-utils": "^9.0.0", - "@taquito/local-forging": "^9.0.0", - "@taquito/michel-codec": "^9.0.0", - "@taquito/remote-signer": "^9.0.0", - "@taquito/signer": "^9.0.0", - "@taquito/taquito": "^9.0.0", - "@taquito/tzip16": "^9.0.0", - "@taquito/utils": "^9.0.0", - "bignumber.js": "^9.0.1" + "@ledgerhq/hw-transport": "^5.25.0", + "@ledgerhq/hw-transport-node-hid": "^5.25.0", + "@taquito/http-utils": "^7.1.0-preview.1", + "@taquito/local-forging": "^7.1.0-preview.1", + "@taquito/remote-signer": "^7.1.0-preview.1", + "@taquito/signer": "^7.1.0-preview.1", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1" }, "private": true, "jest": { @@ -40,29 +37,22 @@ ], "testPathIgnorePatterns": [ "./ledger-signer.spec.ts", - "./ledger-signer-failing-tests.spec.ts", + "./ledger-signer-falling-tests.spec.ts", "./rpc-nodes.spec.ts" - ], - "reporters": [ - "default", - "jest-stare" - ], - "testResultsProcessor": "./node_modules/jest-stare" + ] }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", - "jest": "^26.6.3", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", + "jest": "^26.5.2", "jest-config": "^26.5.2", - "jest-retries": "^1.0.1", - "jest-stare": "2.2.1", "lint-staged": "^10.4.0", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "~4.1.5" + "typescript": "~4.0.3" }, "config": { "commitizen": { diff --git a/integration-tests/rpc-get-protocol-constants.spec.ts b/integration-tests/rpc-get-protocol-constants.spec.ts deleted file mode 100644 index 7e8fb9f2ec..0000000000 --- a/integration-tests/rpc-get-protocol-constants.spec.ts +++ /dev/null @@ -1,359 +0,0 @@ -import { TezosToolkit } from "@taquito/taquito"; -import { ConstantsResponse } from "@taquito/rpc"; - -const rpcUrl = 'https://api.tez.ie/rpc/mainnet'; -const delphinetUrl = 'https://api.tez.ie/rpc/delphinet'; -const Tezos = new TezosToolkit(rpcUrl); - -describe('Fetch constants for all protocols on Mainnet', () => { - // tests - it('succesfully fails at fetching constants for level 0', async (done) => { - try { - await Tezos.rpc.getConstants({ block: "0" }); - expect.assertions(1); - } catch (ex) { - expect(ex.message).toMatch('Http error response: (404) '); - } - done(); - }) - - it('successfully fetches Proto1 constants at level 1', async (done) => { - try { - // Get constants for protocol - const constants = await Tezos.rpc.getConstants({ block: "1" }); - expect(Object.keys(constants)).toHaveLength(24) - expect(constants).toHaveProperty("proof_of_work_nonce_size", 8); - expect(constants).toHaveProperty("nonce_length", 32); - expect(constants).toHaveProperty("max_revelations_per_block", 32); - expect(constants).toHaveProperty("max_operation_data_length", 16384); - expect(constants).toHaveProperty("preserved_cycles", 5); - expect(constants).toHaveProperty("blocks_per_cycle", 4096); - expect(constants).toHaveProperty("blocks_per_commitment", 32); - expect(constants).toHaveProperty("blocks_per_roll_snapshot", 256); - expect(constants).toHaveProperty("blocks_per_voting_period", 32768); - expect(constants.time_between_blocks.toString()).toEqual("60,75"); - expect(constants).toHaveProperty("endorsers_per_block", 32); - expect(constants.hard_gas_limit_per_operation.toString()).toEqual("400000"); - expect(constants.hard_gas_limit_per_block.toString()).toEqual("4000000"); - expect(constants.proof_of_work_threshold.toString()).toEqual("70368744177663"); - expect(constants.tokens_per_roll.toString()).toEqual("10000000000"); - expect(constants).toHaveProperty("michelson_maximum_type_size", 1000); - expect(constants.seed_nonce_revelation_tip.toString()).toEqual("125000"); - expect(constants.origination_burn?.toString()).toEqual("257000"); - expect(constants.block_security_deposit.toString()).toEqual("0"); - expect(constants.endorsement_security_deposit.toString()).toEqual("0"); - expect(constants.block_reward?.toString()).toEqual("0"); - expect(constants.endorsement_reward.toString()).toEqual("0"); - expect(constants.cost_per_byte.toString()).toEqual("1000"); - expect(constants.hard_storage_limit_per_operation.toString()).toEqual("60000"); - } catch (ex) { - fail(ex); - } - done(); - }) - - it('successfully fetches Proto1 constants at level 2', async (done) => { - try { - const constants = await Tezos.rpc.getConstants({ block: "2" }); - expect(Object.keys(constants)).toHaveLength(24) - expect(constants).toHaveProperty("proof_of_work_nonce_size", 8); - expect(constants).toHaveProperty("nonce_length", 32); - expect(constants).toHaveProperty("max_revelations_per_block", 32); - expect(constants).toHaveProperty("max_operation_data_length", 16384); - expect(constants).toHaveProperty("preserved_cycles", 5); - expect(constants).toHaveProperty("blocks_per_cycle", 4096); - expect(constants).toHaveProperty("blocks_per_commitment", 32); - expect(constants).toHaveProperty("blocks_per_roll_snapshot", 256); - expect(constants).toHaveProperty("blocks_per_voting_period", 32768); - expect(constants.time_between_blocks.toString()).toEqual("60,75"); - expect(constants).toHaveProperty("endorsers_per_block", 32); - expect(constants.hard_gas_limit_per_operation.toString()).toEqual("400000"); - expect(constants.hard_gas_limit_per_block.toString()).toEqual("4000000"); - expect(constants.proof_of_work_threshold.toString()).toEqual("70368744177663"); - expect(constants.tokens_per_roll.toString()).toEqual("10000000000"); - expect(constants).toHaveProperty("michelson_maximum_type_size", 1000); - expect(constants.seed_nonce_revelation_tip.toString()).toEqual("125000"); - expect(constants.origination_burn?.toString()).toEqual("257000"); - expect(constants.block_security_deposit.toString()).toEqual("0"); - expect(constants.endorsement_security_deposit.toString()).toEqual("0"); - expect(constants.block_reward?.toString()).toEqual("0"); - expect(constants.endorsement_reward.toString()).toEqual("0"); - expect(constants.cost_per_byte.toString()).toEqual("1000"); - expect(constants.hard_storage_limit_per_operation.toString()).toEqual("60000"); - } catch (ex) { - fail(ex); - } - done(); - }) - - - it('successfully fetches Proto2 constants at level 100000', async (done) => { - try { - const constants = await Tezos.rpc.getConstants({ block: "100000" }); - expect(Object.keys(constants)).toHaveLength(24) - expect(constants).toHaveProperty("proof_of_work_nonce_size", 8); - expect(constants).toHaveProperty("nonce_length", 32); - expect(constants).toHaveProperty("max_revelations_per_block", 32); - expect(constants).toHaveProperty("max_operation_data_length", 16384); - expect(constants).toHaveProperty("preserved_cycles", 5); - expect(constants).toHaveProperty("blocks_per_cycle", 4096); - expect(constants).toHaveProperty("blocks_per_commitment", 32); - expect(constants).toHaveProperty("blocks_per_roll_snapshot", 256); - expect(constants).toHaveProperty("blocks_per_voting_period", 32768); - expect(constants.time_between_blocks.toString()).toEqual("60,75"); - expect(constants).toHaveProperty("endorsers_per_block", 32); - expect(constants.hard_gas_limit_per_operation.toString()).toEqual("400000"); - expect(constants.hard_gas_limit_per_block.toString()).toEqual("4000000"); - expect(constants.proof_of_work_threshold.toString()).toEqual("70368744177663"); - expect(constants.tokens_per_roll.toString()).toEqual("10000000000"); - expect(constants).toHaveProperty("michelson_maximum_type_size", 1000); - expect(constants.seed_nonce_revelation_tip.toString()).toEqual("125000"); - expect(constants.origination_burn?.toString()).toEqual("257000"); - expect(constants.block_security_deposit.toString()).toEqual("192000000"); - expect(constants.endorsement_security_deposit.toString()).toEqual("24000000"); - expect(constants.block_reward?.toString()).toEqual("16000000"); - expect(constants.endorsement_reward.toString()).toEqual("2000000"); - expect(constants.cost_per_byte.toString()).toEqual("1000"); - expect(constants.hard_storage_limit_per_operation.toString()).toEqual("60000"); - } catch (ex) { - fail(ex); - } - done(); - }) - - it('successfully fetches Proto3 constants at level 300000', async (done) => { - try { - const constants = await Tezos.rpc.getConstants({ block: "300000" }); - expect(Object.keys(constants)).toHaveLength(25) - expect(constants).toHaveProperty("proof_of_work_nonce_size", 8); - expect(constants).toHaveProperty("nonce_length", 32); - expect(constants).toHaveProperty("max_revelations_per_block", 32); - expect(constants).toHaveProperty("max_operation_data_length", 16384); - expect(constants).toHaveProperty("max_proposals_per_delegate", 20); - expect(constants).toHaveProperty("preserved_cycles", 5); - expect(constants).toHaveProperty("blocks_per_cycle", 4096); - expect(constants).toHaveProperty("blocks_per_commitment", 32); - expect(constants).toHaveProperty("blocks_per_roll_snapshot", 256); - expect(constants).toHaveProperty("blocks_per_voting_period", 32768); - expect(constants.time_between_blocks.toString()).toEqual("60,75"); - expect(constants).toHaveProperty("endorsers_per_block", 32); - expect(constants.hard_gas_limit_per_operation.toString()).toEqual("400000"); - expect(constants.hard_gas_limit_per_block.toString()).toEqual("4000000"); - expect(constants.proof_of_work_threshold.toString()).toEqual("70368744177663"); - expect(constants.tokens_per_roll.toString()).toEqual("10000000000"); - expect(constants).toHaveProperty("michelson_maximum_type_size", 1000); - expect(constants.seed_nonce_revelation_tip.toString()).toEqual("125000"); - expect(constants).toHaveProperty("origination_size", 257); - expect(constants.block_security_deposit.toString()).toEqual("512000000"); - expect(constants.endorsement_security_deposit.toString()).toEqual("64000000"); - expect(constants.block_reward?.toString()).toEqual("16000000"); - expect(constants.endorsement_reward.toString()).toEqual("2000000"); - expect(constants.cost_per_byte.toString()).toEqual("1000"); - expect(constants.hard_storage_limit_per_operation.toString()).toEqual("60000"); - } catch (ex) { - fail(ex); - } - done(); - }) - - - it('successfully fetches Proto4 constants at level 600000', async (done) => { - try { - const constants = await Tezos.rpc.getConstants({ block: "600000" }); - expect(Object.keys(constants)).toHaveLength(26) - expect(constants).toHaveProperty("proof_of_work_nonce_size", 8); - expect(constants).toHaveProperty("nonce_length", 32); - expect(constants).toHaveProperty("max_revelations_per_block", 32); - expect(constants).toHaveProperty("max_operation_data_length", 16384); - expect(constants).toHaveProperty("max_proposals_per_delegate", 20); - expect(constants).toHaveProperty("preserved_cycles", 5); - expect(constants).toHaveProperty("blocks_per_cycle", 4096); - expect(constants).toHaveProperty("blocks_per_commitment", 32); - expect(constants).toHaveProperty("blocks_per_roll_snapshot", 256); - expect(constants).toHaveProperty("blocks_per_voting_period", 32768); - expect(constants.time_between_blocks.toString()).toEqual("60,75"); - expect(constants).toHaveProperty("endorsers_per_block", 32); - expect(constants.hard_gas_limit_per_operation.toString()).toEqual("800000"); - expect(constants.hard_gas_limit_per_block.toString()).toEqual("8000000"); - expect(constants.proof_of_work_threshold.toString()).toEqual("70368744177663"); - expect(constants.tokens_per_roll.toString()).toEqual("8000000000"); - expect(constants).toHaveProperty("michelson_maximum_type_size", 1000); - expect(constants.seed_nonce_revelation_tip.toString()).toEqual("125000"); - expect(constants).toHaveProperty("origination_size", 257); - expect(constants.block_security_deposit.toString()).toEqual("512000000"); - expect(constants.endorsement_security_deposit.toString()).toEqual("64000000"); - expect(constants.block_reward?.toString()).toEqual("16000000"); - expect(constants.endorsement_reward.toString()).toEqual("2000000"); - expect(constants.cost_per_byte.toString()).toEqual("1000"); - expect(constants.hard_storage_limit_per_operation.toString()).toEqual("60000"); - expect(constants.test_chain_duration?.toString()).toEqual("1966080"); - } catch (ex) { - fail(ex); - } - done(); - }) - - - it('successfully fetches Proto5 constants at level 700000', async (done) => { - try { - const constants = await Tezos.rpc.getConstants({ block: "700000" }); - expect(Object.keys(constants)).toHaveLength(31) - expect(constants).toHaveProperty("proof_of_work_nonce_size", 8); - expect(constants).toHaveProperty("nonce_length", 32); - expect(constants).toHaveProperty("max_revelations_per_block", 32); - expect(constants).toHaveProperty("max_operation_data_length", 16384); - expect(constants).toHaveProperty("max_proposals_per_delegate", 20); - expect(constants).toHaveProperty("preserved_cycles", 5); - expect(constants).toHaveProperty("blocks_per_cycle", 4096); - expect(constants).toHaveProperty("blocks_per_commitment", 32); - expect(constants).toHaveProperty("blocks_per_roll_snapshot", 256); - expect(constants).toHaveProperty("blocks_per_voting_period", 32768); - expect(constants.time_between_blocks.toString()).toEqual("60,40"); - expect(constants).toHaveProperty("endorsers_per_block", 32); - expect(constants.hard_gas_limit_per_operation.toString()).toEqual("800000"); - expect(constants.hard_gas_limit_per_block.toString()).toEqual("8000000"); - expect(constants.proof_of_work_threshold.toString()).toEqual("70368744177663"); - expect(constants.tokens_per_roll.toString()).toEqual("8000000000"); - expect(constants).toHaveProperty("michelson_maximum_type_size", 1000); - expect(constants.seed_nonce_revelation_tip.toString()).toEqual("125000"); - expect(constants).toHaveProperty("origination_size", 257); - expect(constants.block_security_deposit.toString()).toEqual("512000000"); - expect(constants.endorsement_security_deposit.toString()).toEqual("64000000"); - expect(constants.block_reward?.toString()).toEqual("16000000"); - expect(constants.endorsement_reward.toString()).toEqual("2000000"); - expect(constants.cost_per_byte.toString()).toEqual("1000"); - expect(constants.hard_storage_limit_per_operation.toString()).toEqual("60000"); - expect(constants.test_chain_duration?.toString()).toEqual("1966080"); - expect(constants).toHaveProperty("quorum_min", 2000); - expect(constants).toHaveProperty("quorum_max", 7000); - expect(constants).toHaveProperty("min_proposal_quorum", 500); - expect(constants).toHaveProperty("initial_endorsers", 24); - expect(constants.delay_per_missing_endorsement?.toString()).toEqual("8"); - } catch (ex) { - fail(ex); - } - done(); - }) - - it('successfully fetches Proto6 constants at level 900000', async (done) => { - try { - const constants = await Tezos.rpc.getConstants({ block: "900000" }); - expect(Object.keys(constants)).toHaveLength(31) - expect(constants).toHaveProperty("proof_of_work_nonce_size", 8); - expect(constants).toHaveProperty("nonce_length", 32); - expect(constants).toHaveProperty("max_revelations_per_block", 32); - expect(constants).toHaveProperty("max_operation_data_length", 16384); - expect(constants).toHaveProperty("max_proposals_per_delegate", 20); - expect(constants).toHaveProperty("preserved_cycles", 5); - expect(constants).toHaveProperty("blocks_per_cycle", 4096); - expect(constants).toHaveProperty("blocks_per_commitment", 32); - expect(constants).toHaveProperty("blocks_per_roll_snapshot", 256); - expect(constants).toHaveProperty("blocks_per_voting_period", 32768); - expect(constants.time_between_blocks.toString()).toEqual("60,40"); - expect(constants).toHaveProperty("endorsers_per_block", 32); - expect(constants.hard_gas_limit_per_operation.toString()).toEqual("1040000"); - expect(constants.hard_gas_limit_per_block.toString()).toEqual("10400000"); - expect(constants.proof_of_work_threshold.toString()).toEqual("70368744177663"); - expect(constants.tokens_per_roll.toString()).toEqual("8000000000"); - expect(constants).toHaveProperty("michelson_maximum_type_size", 1000); - expect(constants.seed_nonce_revelation_tip.toString()).toEqual("125000"); - expect(constants).toHaveProperty("origination_size", 257); - expect(constants.block_security_deposit.toString()).toEqual("512000000"); - expect(constants.endorsement_security_deposit.toString()).toEqual("64000000"); - expect(constants.baking_reward_per_endorsement?.toString()).toEqual("1250000,187500"); - expect(constants.endorsement_reward.toString()).toEqual("1250000,833333"); - expect(constants.cost_per_byte.toString()).toEqual("1000"); - expect(constants.hard_storage_limit_per_operation.toString()).toEqual("60000"); - expect(constants.test_chain_duration?.toString()).toEqual("1966080"); - expect(constants).toHaveProperty("quorum_min", 2000); - expect(constants).toHaveProperty("quorum_max", 7000); - expect(constants).toHaveProperty("min_proposal_quorum", 500); - expect(constants).toHaveProperty("initial_endorsers", 24); - expect(constants.delay_per_missing_endorsement?.toString()).toEqual("8"); - } catch (ex) { - fail(ex); - } - done(); - }) - - it('successfully fetches Proto7 constants at level 1212416', async (done) => { - try { - const constants = await Tezos.rpc.getConstants({ block: "1212416" }); - expect(Object.keys(constants)).toHaveLength(31) - expect(constants).toHaveProperty("proof_of_work_nonce_size", 8); - expect(constants).toHaveProperty("nonce_length", 32); - expect(constants).toHaveProperty("max_operation_data_length", 16384); - expect(constants).toHaveProperty("max_proposals_per_delegate", 20); - expect(constants).toHaveProperty("preserved_cycles", 5); - expect(constants).toHaveProperty("blocks_per_cycle", 4096); - expect(constants).toHaveProperty("blocks_per_commitment", 32); - expect(constants).toHaveProperty("blocks_per_roll_snapshot", 256); - expect(constants).toHaveProperty("blocks_per_voting_period", 32768); - expect(constants.time_between_blocks.toString()).toEqual("60,40"); - expect(constants).toHaveProperty("endorsers_per_block", 32); - expect(constants.hard_gas_limit_per_operation.toString()).toEqual("1040000"); - expect(constants.hard_gas_limit_per_block.toString()).toEqual("10400000"); - expect(constants.proof_of_work_threshold.toString()).toEqual("70368744177663"); - expect(constants.tokens_per_roll.toString()).toEqual("8000000000"); - expect(constants).toHaveProperty("michelson_maximum_type_size", 1000); - expect(constants.seed_nonce_revelation_tip.toString()).toEqual("125000"); - expect(constants).toHaveProperty("origination_size", 257); - expect(constants.block_security_deposit.toString()).toEqual("512000000"); - expect(constants.endorsement_security_deposit.toString()).toEqual("64000000"); - expect(constants.baking_reward_per_endorsement?.toString()).toEqual("1250000,187500"); - expect(constants.endorsement_reward.toString()).toEqual("1250000,833333"); - expect(constants.cost_per_byte.toString()).toEqual("250"); - expect(constants.hard_storage_limit_per_operation.toString()).toEqual("60000"); - expect(constants.test_chain_duration?.toString()).toEqual("1966080"); - expect(constants).toHaveProperty("quorum_min", 2000); - expect(constants).toHaveProperty("quorum_max", 7000); - expect(constants).toHaveProperty("min_proposal_quorum", 500); - expect(constants).toHaveProperty("initial_endorsers", 24); - expect(constants.delay_per_missing_endorsement?.toString()).toEqual("8"); - } catch (ex) { - fail(ex); - } - done(); - }) - - - it('successfully fetches Proto8 constants at level 1350000', async (done) => { - try { - const constants = await Tezos.rpc.getConstants({ block: "1350000" }); - expect(Object.keys(constants)).toHaveLength(31) - expect(constants).toHaveProperty("proof_of_work_nonce_size", 8); - expect(constants).toHaveProperty("nonce_length", 32); - expect(constants).toHaveProperty("max_operation_data_length", 16384); - expect(constants).toHaveProperty("max_proposals_per_delegate", 20); - expect(constants).toHaveProperty("preserved_cycles", 5); - expect(constants).toHaveProperty("blocks_per_cycle", 4096); - expect(constants).toHaveProperty("blocks_per_commitment", 32); - expect(constants).toHaveProperty("blocks_per_roll_snapshot", 256); - expect(constants).toHaveProperty("blocks_per_voting_period", 20480); - expect(constants.time_between_blocks.toString()).toEqual("60,40"); - expect(constants).toHaveProperty("endorsers_per_block", 32); - expect(constants.hard_gas_limit_per_operation.toString()).toEqual("1040000"); - expect(constants.hard_gas_limit_per_block.toString()).toEqual("10400000"); - expect(constants.proof_of_work_threshold.toString()).toEqual("70368744177663"); - expect(constants.tokens_per_roll.toString()).toEqual("8000000000"); - expect(constants).toHaveProperty("michelson_maximum_type_size", 1000); - expect(constants.seed_nonce_revelation_tip.toString()).toEqual("125000"); - expect(constants).toHaveProperty("origination_size", 257); - expect(constants.block_security_deposit.toString()).toEqual("512000000"); - expect(constants.endorsement_security_deposit.toString()).toEqual("64000000"); - expect(constants.baking_reward_per_endorsement?.toString()).toEqual("1250000,187500"); - expect(constants.endorsement_reward.toString()).toEqual("1250000,833333"); - expect(constants.cost_per_byte.toString()).toEqual("250"); - expect(constants.hard_storage_limit_per_operation.toString()).toEqual("60000"); - expect(constants.test_chain_duration?.toString()).toEqual("1228800"); - expect(constants).toHaveProperty("quorum_min", 2000); - expect(constants).toHaveProperty("quorum_max", 7000); - expect(constants).toHaveProperty("min_proposal_quorum", 500); - expect(constants).toHaveProperty("initial_endorsers", 24); - expect(constants.delay_per_missing_endorsement?.toString()).toEqual("8"); - } catch (ex) { - fail(ex); - } - done(); - }) -}) \ No newline at end of file diff --git a/integration-tests/rpc-nodes.spec.ts b/integration-tests/rpc-nodes.spec.ts index 5c2137c642..28a42f9661 100644 --- a/integration-tests/rpc-nodes.spec.ts +++ b/integration-tests/rpc-nodes.spec.ts @@ -7,7 +7,7 @@ import { Protocols } from "@taquito/taquito"; CONFIGS().forEach(({ lib, knownBaker, knownContract, setup, protocol }) => { const Tezos = lib; - + beforeEach(async (done) => { await setup() done() @@ -16,24 +16,30 @@ CONFIGS().forEach(({ lib, knownBaker, knownContract, setup, protocol }) => { let rpcList: Array<string> = []; let contractBigMapStorage: string; - if (protocol === Protocols.PtEdo2Zk) { + if (protocol === Protocols.PsDELPH1) { rpcList = [ - 'https://api.tez.ie/rpc/edonet' + 'https://api.tez.ie/rpc/delphinet', + 'https://delphinet.smartpy.io', + 'https://delphinet-tezos.giganode.io', + 'https://rpczero.tzbeta.net/' ]; - - contractBigMapStorage = 'KT1H1Xc8NGmiZYxK7S4F2eixZyNNWBj1x8Ae' + contractBigMapStorage = 'KT1GL4k5wRayrH3KEXkPcqSeWXnoiJqxk1ZA' } - else if (protocol === Protocols.PsFLorena) { + else if (protocol === Protocols.PsCARTHA) { rpcList = [ - 'https://api.tez.ie/rpc/florencenet', + 'https://api.tez.ie/rpc/carthagenet', + 'https://carthagenet.smartpy.io', + 'https://testnet-tezos.giganode.io', + 'https://rpcalpha.tzbeta.net/', + 'https://rpctest.tzbeta.net/' ]; - contractBigMapStorage = 'KT1GxaxWUHaFzaYkfqwPsj5x75UYgSXzawnD'; + contractBigMapStorage = 'KT1Szqn6iy6jpHf4NXcs6RNj36jqAyYUQwW7'; } rpcList.forEach(async rpc => { Tezos.setRpcProvider(rpc) - + const rpcClient: RpcClient = new RpcClient(rpc); describe(`Test calling all methods from RPC node: ${rpc}`, () => { @@ -209,14 +215,14 @@ rpcList.forEach(async rpc => { }, ], } - + const forgeOrigination = await rpcClient.forgeOperations(operation); expect(forgeOrigination).toBeDefined(); done() }) // We will send invalid signedOpBytes and see if the node returns the expected error message - it('Inject an operation in node and broadcast it', async (done) => { + it('Inject an operation in node and broadcast it', async (done) => { try{ const injectedOperation = await rpcClient.injectOperation('operation'); } catch (ex) { @@ -303,4 +309,4 @@ rpcList.forEach(async rpc => { }); }); - }) + }) \ No newline at end of file diff --git a/integration-tests/test-for-type-never.spec.ts b/integration-tests/test-for-type-never.spec.ts deleted file mode 100644 index 9137d519b0..0000000000 --- a/integration-tests/test-for-type-never.spec.ts +++ /dev/null @@ -1,74 +0,0 @@ - -import { MichelsonMap } from '@taquito/taquito'; -import { CONFIGS } from './config'; -import { contractWithNever } from './data/contract-with-never-in-param'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Originate a voting contract using: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - - it('originates a contract and tries to call its %admin entry-point of type never, expect the method call to fail', async (done) => { - const op = await Tezos.contract.originate({ - code: contractWithNever, - storage: { - admin: "Unit", - current_id: 1, - max_auction_time: 1, - max_config_to_start_time: 1, - auctions: new MichelsonMap() - } - }); - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - - const contract = await op.contract(); - expect(contract).toBeDefined(); - - try { - await contract.methods.admin('test').send(); - } catch (e) { - expect(e.message).toContain('Assigning a value to the type never is forbidden.'); - } - - done(); - }); - - - - it('originates a contract having the type never in a set in its storage', async (done) => { - const code = [ - { prim: 'parameter', args: [{ prim: 'unit' }] }, - { prim: 'storage', args: [{ prim: 'set', args: [{ prim: 'never' }] }] }, - { - prim: 'code', - args: [ - [ - { prim: 'DROP' }, - { prim: 'EMPTY_SET', args: [{ prim: 'never' }] }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ]; - - const op = await Tezos.contract.originate({ - code, - storage: [] // empty set - }); - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - - const contract = await op.contract(); - expect(contract).toBeDefined(); - - done(); - }); - }); -}); diff --git a/integration-tests/tzip12-token-metadata.spec.ts b/integration-tests/tzip12-token-metadata.spec.ts deleted file mode 100644 index a372fe243c..0000000000 --- a/integration-tests/tzip12-token-metadata.spec.ts +++ /dev/null @@ -1,294 +0,0 @@ -import { CONFIGS } from './config'; -import { compose, MichelsonMap } from '@taquito/taquito'; -import { tzip16, Tzip16Module, char2Bytes } from '@taquito/tzip16'; -import { tzip12 } from '../packages/taquito-tzip12/src/composer'; -import { Tzip12Module } from '../packages/taquito-tzip12/src/tzip12-extension'; -import { TokenIdNotFound, InvalidTokenMetadata } from '../packages/taquito-tzip12/src/tzip12-errors'; -import { fa2TokenFactory } from './data/fa2-token-factory'; -import { fa2ForTokenMetadataView } from './data/fa2-for-token-metadata-view'; - -CONFIGS().forEach(({ lib, rpc, setup, createAddress }) => { - const Tezos = lib; - let contractAddress: string; - let contractAddress2: string; - - describe(`Deploy a Fa2 contract and fetch metadata (token metadata are in the big map %token_metadata): ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - - it('Should deploy a Fa2 contract having metadata on HTTPS and token metadata inside a bigmap %token_metadata', async (done) => { - const LocalTez1 = await createAddress(); - const localTez1Pkh = await LocalTez1.signer.publicKeyHash(); - const LocalTez2 = await createAddress(); - const localTez2Pkh = await LocalTez2.signer.publicKeyHash(); - - const ledger = new MichelsonMap(); - ledger.set( - { - owner: localTez1Pkh, - token_id: 1 - }, - '18000000' - ); - ledger.set( - { - owner: localTez2Pkh, - token_id: 2 - }, - '9990000' - ); - - const url = 'https://storage.googleapis.com/tzip-16/fa2-token-factory.json'; - const bytesUrl = char2Bytes(url); - const metadata = new MichelsonMap(); - metadata.set('', bytesUrl); - - const operators = new MichelsonMap(); - - const token_admins = new MichelsonMap(); - token_admins.set('1', { - 0: localTez1Pkh, - 1: true - }); - token_admins.set('2', { - 0: localTez2Pkh, - 1: true - }); - - const token_metadata = new MichelsonMap(); - const token1 = new MichelsonMap(); - token1.set('name', char2Bytes('wToken')); - token1.set('symbol', char2Bytes('wTK')); - token1.set('decimals', '36'); - const token2 = new MichelsonMap(); - token2.set('name', char2Bytes('AliceToken')); - token2.set('symbol', char2Bytes('ALC')); - token2.set('decimals', '30'); - token_metadata.set('1', { - token_id: '1', - token_info: token1 - }); - token_metadata.set('2', { - token_id: '2', - token_info: token2 - }); - - const token_total_supply = new MichelsonMap(); - token_total_supply.set('1', '54000000'); - token_total_supply.set('2', '10000000'); - - const op = await Tezos.contract.originate({ - code: fa2TokenFactory, - storage: { - admin: await Tezos.signer.publicKeyHash(), - exchange_address: 'KT1DGRPQUwLJyCZnM8WKtwDGiKDSMv4hftk4', - last_token_id: '2', - ledger, - metadata, - operators, - token_admins, - token_metadata, - token_total_supply - } - }); - await op.confirmation(); - - // Set the variables for the following tests - contractAddress = (await op.contract()).address; - - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - it('Should test contratAbstraction composition, fetch contract and token metadata of the Fa2 contract', async (done) => { - - Tezos.addExtension(new Tzip12Module()); - // Tezos.addExtension(new Tzip16Module())... one extension is sufficient as they use the same MetadataProvider - - // Use the compose function - const contract = await Tezos.contract.at(contractAddress, compose(tzip16, tzip12)); - - // Fetch contract metadata on HTTPs - const metadata = await contract.tzip16().getMetadata(); - expect(metadata.uri).toEqual('https://storage.googleapis.com/tzip-16/fa2-token-factory.json'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - name: 'Test Taquito FA2 token Factory', - description: - 'This is a test to retrieve tokens metadata when they are located in the storage of the contract in the big map %token_metadata', - source: { - tools: ['FA2 Token Factory'], - location: 'https://www.github.com/claudebarde' - }, - interfaces: ['TZIP-012'], - license: { - name: 'MIT' - } - }); - - // Verify if the tag TZIP-012 is present in the interface field of contract metadata - const isTzip12Contract = await contract.tzip12().isTzip12Compliant(); - expect(isTzip12Contract).toEqual(true); - - // Fetch token metadata - const tokenMetadata1 = await contract.tzip12().getTokenMetadata(1); - expect(tokenMetadata1).toEqual({ - token_id:1, - decimals: 6, - name: 'wToken', - symbol: 'wTK' - }); - - const tokenMetadata2 = await contract.tzip12().getTokenMetadata(2); - expect(tokenMetadata2).toEqual({ - token_id: 2, - name: 'AliceToken', - decimals: 0, - symbol: 'ALC' - }); - - try { - await contract.tzip12().getTokenMetadata(3); - } catch (err) { - expect(err).toBeInstanceOf(TokenIdNotFound); - } - done(); - }); - }); - - describe(`Deploy a Fa2 contract and fetch metadata (token metadata are obtain from a view %token_metadata): ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - - it('Should deploy a Fa2 contract having metadata on HTTPS and a view %token_metadata', async (done) => { - const LocalTez1 = await createAddress(); - const localTez1Pkh = await LocalTez1.signer.publicKeyHash(); - const LocalTez2 = await createAddress(); - const localTez2Pkh = await LocalTez2.signer.publicKeyHash(); - - const ledger = new MichelsonMap(); - ledger.set( - { - 0: localTez1Pkh, - 1: 0 - }, - '20000' - ); - ledger.set( - { - 0: localTez2Pkh, - 1: 1 - }, - '20000' - ); - - const url = 'https://storage.googleapis.com/tzip-16/fa2-views.json'; - const bytesUrl = char2Bytes(url); - const metadata = new MichelsonMap(); - metadata.set('', bytesUrl); - - const operators = new MichelsonMap(); - - const tokens = new MichelsonMap(); - const metadataMap0 = new MichelsonMap(); - metadataMap0.set('', char2Bytes('https://storage.googleapis.com/tzip-16/token-metadata.json')); - metadataMap0.set('name', char2Bytes('Name from URI is prioritized!')); - const metadataMap1 = new MichelsonMap(); - metadataMap1.set('name', char2Bytes('AliceToken')); - metadataMap1.set('symbol', char2Bytes('ALC')); - metadataMap1.set('decimals', '30'); - metadataMap1.set('extra', char2Bytes('Add more data')); - const metadataMap2 = new MichelsonMap(); - metadataMap2.set('name', char2Bytes('Invalid token metadata')); - tokens.set('0', { - metadata_map: metadataMap0, - total_supply: '20000' - }); - tokens.set('1', { - metadata_map: metadataMap1, - total_supply: '20000' - }); - tokens.set('2', { - metadata_map: metadataMap2, - total_supply: '20000' - }); - - - const op = await Tezos.contract.originate({ - code: fa2ForTokenMetadataView, - storage: { - administrator: await Tezos.signer.publicKeyHash(), - all_tokens: '2', - ledger, - metadata, - operators, - paused: false, - tokens - } - }); - await op.confirmation(); - - // Set the variables for the following tests - contractAddress2 = (await op.contract()).address; - - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - it('Should test contratAbstraction composition, fetch contract and token metadata of the Fa2 contract', async (done) => { - Tezos.addExtension(new Tzip16Module()); - - // Use the compose function - const contract = await Tezos.contract.at(contractAddress2, compose(tzip16, tzip12)); - - // Fetch contract metadata on HTTPs - const metadata = await contract.tzip16().getMetadata(); - expect(metadata.uri).toEqual('https://storage.googleapis.com/tzip-16/fa2-views.json'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toBeDefined(); - - // Verify if the tag TZIP-012 is present in the interface field of contract metadata - const isTzip12Contract = await contract.tzip12().isTzip12Compliant(); - expect(isTzip12Contract).toEqual(true); - - // Fetch token metadata (view result contains a URI for this token) - const tokenMetadata0 = await contract.tzip12().getTokenMetadata(0); - expect(tokenMetadata0).toEqual({ - token_id: 0, - decimals: 3, - name: 'Taquito test URI', - symbol: 'XTZ2' - }); - - const tokenMetadata1 = await contract.tzip12().getTokenMetadata(1); - expect(tokenMetadata1).toEqual({ - token_id: 1, - name: 'AliceToken', - decimals: 0, - symbol: 'ALC', - extra: 'Add more data' - }); - - try { - await contract.tzip12().getTokenMetadata(2); - } catch (err) { - expect(err).toBeInstanceOf(InvalidTokenMetadata); - } - - try { - await contract.tzip12().getTokenMetadata(3); - } catch (err) { - expect(err).toBeInstanceOf(TokenIdNotFound); - } - done(); - }); - }); -}); diff --git a/integration-tests/tzip16-metadata-view.spec.ts b/integration-tests/tzip16-metadata-view.spec.ts deleted file mode 100644 index f0dde58b48..0000000000 --- a/integration-tests/tzip16-metadata-view.spec.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { CONFIGS } from './config'; -import { MichelsonMap } from '@taquito/taquito'; -import { tzip16, Tzip16Module, char2Bytes } from '@taquito/tzip16'; -import { contractCode, metadataViewsExample1, metadataViewsExample2 } from './data/metadataViews'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - Tezos.addExtension(new Tzip16Module()); - const test = require('jest-retries'); - - describe(`Execute views example from TZComet: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - - test('Deploy a contract with metadata having views that return bytes (example taken from TZComet) and call the views',2, async (done: () => void) => { - // KT1S5Q7iN9ybuBuJviDYzXf7Mq94ToETwBJS - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", char2Bytes('tezos-storage:here')); - metadataBigMAp.set("here", char2Bytes(JSON.stringify(metadataViewsExample1))) - - const op = await Tezos.contract.originate({ - code: contractCode, - storage: { - 0: 7, - metadata: metadataBigMAp - } - }); - await op.confirmation(); - const contractAddress = (await op.contract()).address; - - const contractAbstraction = await Tezos.contract.at(contractAddress, tzip16); - const metadataViews = await contractAbstraction.tzip16().metadataViews(); - - const viewEmptyBytesResult = await metadataViews.emptyBytes().executeView(); - expect(viewEmptyBytesResult.toString()).toEqual(''); - - const viewSomeJsonResult = await metadataViews.someJson().executeView(); - expect(viewSomeJsonResult.toString()).toEqual( - '7b2268656c6c6f223a22776f726c64222c226d6f7265223a7b226c6f72656d223a34322c22697073756d223a5b22222c226f6e65222c2232225d7d7d' - ); - - const viewSomeTextResult = await metadataViews.someText().executeView(); - expect(viewSomeTextResult.toString()).toEqual( - '0a4865726520697320736f6d6520746578742e0ad09bd0bed180d0b5d0bc20d0b8d0bfd181d183d0bc20d0b4d0bed0bbd0bed18020d181d0b8d18220d0b0d0bcd0b5d1822c20d0b0d0bbd0b8d18fd183d0b8d0b420d0b8d0bdd186d0bed180d180d183d0bfd182d0b520d182d185d0b5d0bed0bfd185d180d0b0d181d182d183d18120d0b5d18320d181d0b5d0b02c20d0b8d0bd0ad0b5d183d0bc20d181d0bed0bbd183d182d0b020d0bed0bfd182d0b8d0bed0bd20d0b4d0b5d184d0b8d0bdd0b8d182d0b8d0bed0bdd0b5d0bc2e20d090d18220d0bcd0b5d0b020d181d0b8d0bcd183d0bb20d0bed184d184d0b8d186d0b8d0b8d18120d0bcd0bed0bbd0b5d181d182d0b8d0b0d0b52c20d0b5d0bed1810ad18fd183d0b0d0b5d18fd183d0b520d0b8d0bdd0b2d0b8d0b4d183d0bdd18220d186d0bed0bdd0b2d0b5d0bdd0b8d180d0b520d0b8d0b42e20d090d18220d181d0bed0bbd0b5d0b0d18220d0b2d0bed0bbd183d182d0bfd0b0d18220d0b2d0b5d0bb2e20d0a1d0b5d0b420d0b5d0b820d0b8d0bdd0b5d180d0bcd0b8d1810ad0b2d0b5d180d0b8d182d183d1810a0aeca781eca084eb8c80ed86b5eba0b9ec9db420ec9786ec9d8420eb958cec9790eb8a9420eb8c80ed86b5eba0b9ec9db420eca780ebaa85ed959ceb8ba42c20eab7b820eca095ecb998eca08120eca491eba6bdec84b1ec9d800aeca480ec8898eb909ceb8ba42e20eab5adeab080eb8a9420ebb295eba5a0ec9db420eca095ed9598eb8a9420ebb094ec979020ec9d98ed9598ec97ac20eca095eb8bb9ec9ab4ec9881ec979020ed9584ec9a94ed959c20ec9e90eab888ec9d840aebb3b4eca1b0ed95a020ec889820ec9e88eb8ba42c20eab5b0ec82acebb295ec9b90ec9d9820eca1b0eca781c2b7eab68ced959c20ebb08f20ec9eaced8c90eab480ec9d9820ec9e90eab2a9ec9d8020ebb295eba5a0eba19c20eca095ed959ceb8ba42e0a' - ); - - const view200RandomCharactersResult = await metadataViews['200RandomCharacters']().executeView(); - expect(view200RandomCharactersResult.toString()).toEqual( - '2816ce09c073f93c10cdc5ef498311acec06fb8183e9e84ecdcb6208783361f1751a1324c2fceebb745a61d1904161ec47db7e91286d6deed63f0b53a1542a85ded61f197fef65616151531034513522a9f59a97aae6e34049108a6b4f243f4b2790e6054de045b418b4956eb49a137e2ca1d7543d06da10dba28ac70eacc694da320f7b227fdcc395240c6a81f3c17cb364cc824018680a296edf578e0d48daddaaddd70cf53ec6c7d6bdbafe9a7f8e115c574abd338af29ef6bcc57a1fb363caf74ea5f206307d' - ); - - const view1000RandomCharactersResult = await metadataViews['1000RandomCharacters']().executeView(); - expect(view1000RandomCharactersResult.toString()).toEqual( - '3488f2807fd9c671d0924896a5848488e4edf26c29e0002316c42660ad4167246167072495adddc4ba742238d966204e72ec5ad3ef2037445313f12b032a9e23fc47b93a4a5f529a5a029f0c4a258191bf7b469d62b173cf820c5993de7ce39fc3f75f19da85ddbbf8efe32a51abd10c903acb7fdafcfb6e4f10cf37d23b261104f53622c17c47a65834b8be5534df1d4721169d63eb031e0d2a47afd6fcc4f6f02c5d152c17c2e15b8b2f192fcf8b912fdac43a10242e2b2573daac7106b34e6519c06f3c95f6b4b4349a90c3949d33ff21dddb12fb1d17af20b499167c2fb6afeb7b726c7846ddf862c2d1c9da5b3788ac947f04d05e2726870d3b092d72600e06fe47ffce19ea888b98dfc0703f32dc3b17054084e5d983789c8596bc36fb82c40dcba161271c311d5dc948965712bc282f4dc3483b847c8dd3908838e30f5698a068cc5c4ff85c72c99c2d45e6599dc7dd55e97383ff5de05035a70d2c88b1f64417dea21113a802f0f3991ae20960aaee71a46708b86b05b06c51786e057517a208ec106339dfc34f898873f7b5a833aa637f2c5111fbfc86231d8905192982077e23584e4d6a4cf42bf0076322425ad0dea0cf1676102c3f179d833afe5e600ab1d247f00e87a0a76034b93a324f5816ae6127794ac34696cbd09552c4a6f5d6c5485e4ad8fd7823e19159a16b9746cce3b8a22a0ebda3709dd932da3b9b7f387b0b87045cc0318f04920eb5619c69aa8f3e6fd4649644631b7536198bf66a70a8cfbdd2537255f63ab8e972561a1a2a13a495932cb391858fcf19cdb6a20ac36cc07ac2fdd1aad2e76247c2a861942014b996bda9fefb458fb9960c0554aa916e6f4146eeaf06f41cd050d20125adad989c9160b111230184f9ddf9194f554ee08a10961299293386d18fbe1ba1fd2740146ab760c790f3721e470bf06740ed65656a26c6dcea0d5c1a33c6bb2e45cc0b2eac6919d03a5ba34895f2ec75140231f2ddd188dc34b035a47021f5d2c68235fe70153d895221bbfd12af3bf819790d099d2a0b8e804ade159ffc95eed7df4c0d0328076d35ddf5df76bbba473231c71568025d40cb19f6121ab5793204f30314cb44533d4ef6e512e6c5dbb7769819f1ffe23690e13f1325e182a732c0e6e03ff9f9887122b32e4fc525034e9c00f9159a98b9f9302e44bbd2eb6317dac650e2d265119d333138c00a36e390290e468d236c1e031642e7cdd5f39117857241ac9d11ebbd3d23c599ce9c78523ea145ef4c851de0092ebd976ea4a7bba8716fab4fd05868390723f8148f6058fd35bb1674a6e794a4ff53efbb8c5cd6a9402e166bbcb662ac71df601767550656699de965a1434879ce99fb50bb54d35e500173451fbdaaa89169951b3fa10652f0e11e28901e' - ); - - done(); - }); - - test('Deploy a contract with metadata having a couple of views (example taken from TZComet) and call the views',2, async (done: () => void) => { - // KT18tKt6ysL5QVqLMmwQL5p5Nu6m8KjRbhSb - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", char2Bytes('tezos-storage:here')); - metadataBigMAp.set("here", char2Bytes(JSON.stringify(metadataViewsExample2))) - - const op = await Tezos.contract.originate({ - code: contractCode, - storage: { - 0: 7, - metadata: metadataBigMAp - } - }); - await op.confirmation(); - const contractAddress = (await op.contract()).address; - - const contractAbstraction = await Tezos.contract.at(contractAddress, tzip16); - const metadataViews = await contractAbstraction.tzip16().metadataViews(); - - try { - await metadataViews['an-empty-useless-view']().executeView(); - } catch (e) { - expect(e.message).toContain('Http error response'); - } - - const viewMultiplyNegativeNumberResult = await metadataViews['multiply-negative-number-or-call-failwith']().executeView(-2); - expect(viewMultiplyNegativeNumberResult.toString()).toEqual('-4'); - - const viewMultiplyNatInStorageResult = await metadataViews['multiply-the-nat-in-storage']().executeView(10); - expect(viewMultiplyNatInStorageResult.toString()).toEqual('70'); - - const viewCallBalanceResult = await metadataViews['just-call-balance']().executeView(); - expect(viewCallBalanceResult.toString()).toEqual('0'); - - const viewIdentityResult = await metadataViews['the-identity']().executeView(1, 'test', 200000); - expect(JSON.stringify(viewIdentityResult)).toEqual(`{"arg_zero":"1","arg_one_result":"test","arg_two":"200000"}`); - - const viewContractAddressResult = await metadataViews['get-contract-address']().executeView(); - expect(viewContractAddressResult.toString()).toEqual(contractAddress); - - done(); - }) - }); -}); diff --git a/integration-tests/tzip16-non-compliant-contract.spec.ts b/integration-tests/tzip16-non-compliant-contract.spec.ts deleted file mode 100644 index 25cf1b18b0..0000000000 --- a/integration-tests/tzip16-non-compliant-contract.spec.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { CONFIGS } from "./config"; -import { tzip16, Tzip16Module, BigMapMetadataNotFound } from '@taquito/tzip16'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - Tezos.addExtension(new Tzip16Module()); - - describe(`Tzip16 failing test: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Deploy a simple contract having no metadata and try to fetch metadata', async (done) => { - - const value = '1234'; - const code = - [{ "prim": "parameter", "args": [{ "prim": "bytes" }] }, - { "prim": "storage", "args": [{ "prim": "bytes" }] }, - { - "prim": "code", - "args": - [[{ "prim": "DUP" }, { "prim": "CAR" }, { "prim": "SWAP" }, - { "prim": "CDR" }, { "prim": "CONCAT" }, - { "prim": "NIL", "args": [{ "prim": "operation" }] }, - { "prim": "PAIR" }]] - }]; - - const op = await Tezos.contract.originate({ - code: code, - storage: value - }); - await op.confirmation(); - const contractAddress = (await op.contract()).address; - - const contract = await Tezos.contract.at(contractAddress, tzip16); - try { - await contract.tzip16().getMetadata(); - } catch (ex) { - expect(ex).toBeInstanceOf(BigMapMetadataNotFound); - } - done(); - }); - }); -}) diff --git a/integration-tests/tzip16-non-compliant-wallet.spec.ts b/integration-tests/tzip16-non-compliant-wallet.spec.ts deleted file mode 100644 index db771ff89c..0000000000 --- a/integration-tests/tzip16-non-compliant-wallet.spec.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { CONFIGS } from "./config"; -import { tzip16, Tzip16Module, BigMapMetadataNotFound } from '@taquito/tzip16'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - Tezos.addExtension(new Tzip16Module()); - - describe(`Tzip16 failing test: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Deploy a simple contract using wallet api having no metadata and try to fetch metadata', async (done) => { - - const value = '1234'; - const code = - [{ "prim": "parameter", "args": [{ "prim": "bytes" }] }, - { "prim": "storage", "args": [{ "prim": "bytes" }] }, - { - "prim": "code", - "args": - [[{ "prim": "DUP" }, { "prim": "CAR" }, { "prim": "SWAP" }, - { "prim": "CDR" }, { "prim": "CONCAT" }, - { "prim": "NIL", "args": [{ "prim": "operation" }] }, - { "prim": "PAIR" }]] - }]; - - const op = await Tezos.wallet.originate({ - code, - storage: value - }).send(); - await op.confirmation(); - const contractAddress = (await op.contract()).address; - - const contract = await Tezos.wallet.at(contractAddress, tzip16); - try { - await contract.tzip16().getMetadata(); - } catch (ex) { - expect(ex).toBeInstanceOf(BigMapMetadataNotFound); - } - done(); - }); - }); -}) diff --git a/integration-tests/tzip16-originate-contract-having-metadata-on-IPFS-and-fetch-those.spec.ts b/integration-tests/tzip16-originate-contract-having-metadata-on-IPFS-and-fetch-those.spec.ts deleted file mode 100644 index 2a872a0e3a..0000000000 --- a/integration-tests/tzip16-originate-contract-having-metadata-on-IPFS-and-fetch-those.spec.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { CONFIGS } from './config'; -import { tacoContractTzip16 } from './data/modified-taco-contract'; -import { MichelsonMap } from '@taquito/taquito'; -import { char2Bytes, tzip16, Tzip16Module, IpfsHttpHandler, Handler, MetadataProvider } from '@taquito/tzip16'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - - const customHandler = new Map<string, Handler>([ - ['ipfs', new IpfsHttpHandler('cloudflare-ipfs.com')] - ]); - - const customMetadataProvider = new MetadataProvider(customHandler); - - Tezos.addExtension(new Tzip16Module(customMetadataProvider)); - - let contractAddress: string; - - describe(`Originating contracts having metadata stored at HTTPS URL using: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - - it('Deploy a contract having metadata stored at on IPFS', async (done) => { - - // location of the contract metadata - const uri = 'ipfs://QmcMUKkhXowQjCPtDVVXyFJd7W9LmC92Gs5kYH1KjEisdj'; - const bytesUrl = char2Bytes(uri); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - - const op = await Tezos.contract.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }); - await op.confirmation(); - contractAddress = (await op.contract()).address; - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - it('Should fetch metadata of the contract on IPFS', async (done) => { - - const contract = await Tezos.contract.at(contractAddress, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('ipfs://QmcMUKkhXowQjCPtDVVXyFJd7W9LmC92Gs5kYH1KjEisdj'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - name: 'Taquito test with valid metadata', - description: - 'This is metadata test for Taquito integration tests with the Ligo Taco shop contract modified to include metadata in storage', - version: '7.1.0-beta.0', - license: { - name: 'MIT', - details: 'The MIT License' - }, - homepage: 'https://github.com/ecadlabs/taquito', - source: { - tools: ['Ligo', 'https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A'], - location: 'https://ligolang.org/docs/tutorials/get-started/tezos-taco-shop-payout' - } - }); - - done(); - }); - }); -}); diff --git a/integration-tests/tzip16-originate-contracts-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts b/integration-tests/tzip16-originate-contracts-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts deleted file mode 100644 index 4b0bc841d5..0000000000 --- a/integration-tests/tzip16-originate-contracts-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts +++ /dev/null @@ -1,191 +0,0 @@ -import { CONFIGS } from "./config"; -import { tacoContractTzip16 } from "./data/modified-taco-contract" -import { MichelsonMap } from "@taquito/taquito"; -import { tzip16, Tzip16Module, char2Bytes } from '@taquito/tzip16'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - Tezos.addExtension(new Tzip16Module()); - - let contractAddressEmptyMetadata: string; - let contractAddressEmoji: string; - let contractAddressInvalidMetadata: string; - - const test = require('jest-retries'); - - describe(`Originating contracts having metadata stored at HTTPS URL using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - test('Deploy a contract having empty metadata stored at an HTTPS URL', 2, async (done: () => void) => { - - // location of the contract metadata - const url = 'https://storage.googleapis.com/tzip-16/empty-metadata.json'; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - tacoShopStorageMap.set("1", { current_stock: "10000", max_price: "50" }); - tacoShopStorageMap.set("2", { current_stock: "120", max_price: "20" }); - tacoShopStorageMap.set("3", { current_stock: "50", max_price: "60" }); - - const op = await Tezos.contract.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }); - await op.confirmation(); - contractAddressEmptyMetadata = (await op.contract()).address; - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - test('Fetch the empty metadata of the contract', 2, async (done: () => void) => { - - const contract = await Tezos.contract.at(contractAddressEmptyMetadata, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('https://storage.googleapis.com/tzip-16/empty-metadata.json'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({}); - done(); - }); - - test('Deploy a contract having valid metadata stored at an HTTPS URL', 2, async (done: () => void) => { - - // location of the contract metadata - const url = 'https://storage.googleapis.com/tzip-16/taco-shop-metadata.json'; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - tacoShopStorageMap.set("1", { current_stock: "10000", max_price: "50" }); - - const op = await Tezos.contract.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }); - await op.confirmation(); - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - test('Deploy a contract having valid metadata which contains emoji stored at an HTTPS URL', 2, async (done: () => void) => { - - // location of the contract metadata - const url = 'https://storage.googleapis.com/tzip-16/emoji-in-metadata.json'; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - tacoShopStorageMap.set("1", { current_stock: "10000", max_price: "50" }); - - const op = await Tezos.contract.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }); - await op.confirmation(); - contractAddressEmoji = (await op.contract()).address; - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - test('Fetch the metadata which contains emoji of the contract', 2, async (done: () => void) => { - - const contract = await Tezos.contract.at(contractAddressEmoji, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('https://storage.googleapis.com/tzip-16/emoji-in-metadata.json'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - "name": "Taquito test with valid metadata containing emoji 😀 🤩", - "description": "👋 This is metadata test for Taquito integration tests 🧐 with the Ligo Taco shop contract modified to include metadata URI in the storage", - "version": "7.1.0-beta.0", - "license": { - "name": "MIT", - "details": "The MIT License" - }, - "homepage": "https://github.com/ecadlabs/taquito", - "source": { - "tools": [ - "Ligo", - "https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A" - ], - "location": "https://ligolang.org/docs/tutorials/get-started/tezos-taco-shop-payout" - } - }); - done(); - }); - - test('Deploy a contract having invalid metadata stored at an HTTPS URL', 2, async (done: () => void) => { - - // location of the contract metadata - const url = 'https://storage.googleapis.com/tzip-16/invalid.json'; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - tacoShopStorageMap.set("1", { current_stock: "10000", max_price: "50" }); - - const op = await Tezos.contract.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }); - await op.confirmation(); - contractAddressInvalidMetadata = (await op.contract()).address; - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - test('Should fail to fetch invalid metadata of the contract', 2, async (done: () => void) => { - - const contract = await Tezos.contract.at(contractAddressInvalidMetadata, tzip16); - try { - await contract.tzip16().getMetadata(); - } catch (error) { - expect(error.message).toContain(`Invalid metadata`); - } - - done(); - }); - }); -}) diff --git a/integration-tests/tzip16-originate-contracts-with-metadata-on-HTTPS-and-sha256-hash-and-fetch-metadata.spec.ts b/integration-tests/tzip16-originate-contracts-with-metadata-on-HTTPS-and-sha256-hash-and-fetch-metadata.spec.ts deleted file mode 100644 index 6c97508048..0000000000 --- a/integration-tests/tzip16-originate-contracts-with-metadata-on-HTTPS-and-sha256-hash-and-fetch-metadata.spec.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { CONFIGS } from "./config"; -import { tzip16, Tzip16Module, char2Bytes } from '@taquito/tzip16'; -import { tacoContractTzip16 } from "./data/modified-taco-contract" -import { MichelsonMap } from "@taquito/taquito"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - Tezos.addExtension(new Tzip16Module()); - let contractAddress: string; - let contractAddressInvalidHash: string; - - const test = require('jest-retries'); - - describe(`Originating contracts having metadata stored at HTTPS URL using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - - test('Deploy a contract having a sha256 hash in URI', 2, async (done: () => void) => { - - // location of the contract metadata - const urlPercentEncoded = encodeURIComponent('//storage.googleapis.com/tzip-16/taco-shop-metadata.json'); - const metadataSha256 = '0x7e99ecf3a4490e3044ccdf319898d77380a2fc20aae36b6e40327d678399d17b'; - const url = 'sha256://' + metadataSha256 + '/https:' + urlPercentEncoded; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - tacoShopStorageMap.set("1", { current_stock: "10000", max_price: "50" }); - - const op = await Tezos.contract.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }); - await op.confirmation(); - contractAddress = (await op.contract()).address; - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - test('Fetch metadata of the contract having a sha256 hash in URI', 2, async (done: () => void) => { - - const contract = await Tezos.contract.at(contractAddress, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('sha256://0x7e99ecf3a4490e3044ccdf319898d77380a2fc20aae36b6e40327d678399d17b/https:%2F%2Fstorage.googleapis.com%2Ftzip-16%2Ftaco-shop-metadata.json'); - expect(metadata.integrityCheckResult).toEqual(true); - expect(metadata.sha256Hash).toEqual('7e99ecf3a4490e3044ccdf319898d77380a2fc20aae36b6e40327d678399d17b'); - expect(metadata.metadata).toEqual({ - "name": "Taquito test with valid metadata", - "description": "This is metadata test for Taquito integration tests with the Ligo Taco shop contract modified to include metadata in storage", - "version": "7.1.0-beta.0", - "license": { - "name": "MIT", - "details": "The MIT License" - }, - "homepage": "https://github.com/ecadlabs/taquito", - "source": { - "tools": [ - "Ligo", - "https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A" - ], - "location": "https://ligolang.org/docs/tutorials/get-started/tezos-taco-shop-payout" - } - }); - done(); - }); - - test('Deploy a contract having an invalid sha256 hash in URI', 2, async (done: () => void) => { - - // location of the contract metadata - const urlPercentEncoded = encodeURIComponent('//storage.googleapis.com/tzip-16/taco-shop-metadata.json'); - const metadataSha256 = '0x7e99ecf3a4491e3044ccdf319898d77380a2fc20aae36b6e40327d678399d17b'; - const url = 'sha256://' + metadataSha256 + '/https:' + urlPercentEncoded; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - tacoShopStorageMap.set("1", { current_stock: "10000", max_price: "50" }); - - const op = await Tezos.contract.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }); - await op.confirmation(); - contractAddressInvalidHash = (await op.contract()).address; - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - test('Fetch metadata of the contract having an invalid sha256 hash in URI', 2, async (done: () => void) => { - - const contract = await Tezos.contract.at(contractAddressInvalidHash, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('sha256://0x7e99ecf3a4491e3044ccdf319898d77380a2fc20aae36b6e40327d678399d17b/https:%2F%2Fstorage.googleapis.com%2Ftzip-16%2Ftaco-shop-metadata.json'); - expect(metadata.integrityCheckResult).toEqual(false); - expect(metadata.sha256Hash).toEqual('7e99ecf3a4490e3044ccdf319898d77380a2fc20aae36b6e40327d678399d17b'); - expect(metadata.metadata).toEqual({ - "name": "Taquito test with valid metadata", - "description": "This is metadata test for Taquito integration tests with the Ligo Taco shop contract modified to include metadata in storage", - "version": "7.1.0-beta.0", - "license": { - "name": "MIT", - "details": "The MIT License" - }, - "homepage": "https://github.com/ecadlabs/taquito", - "source": { - "tools": [ - "Ligo", - "https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A" - ], - "location": "https://ligolang.org/docs/tutorials/get-started/tezos-taco-shop-payout" - } - }); - done(); - }); - }); -}) diff --git a/integration-tests/tzip16-originate-contracts-with-metadata-on-itself-and-fetch-metadata.spec.ts b/integration-tests/tzip16-originate-contracts-with-metadata-on-itself-and-fetch-metadata.spec.ts deleted file mode 100644 index aa6ac357a8..0000000000 --- a/integration-tests/tzip16-originate-contracts-with-metadata-on-itself-and-fetch-metadata.spec.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { CONFIGS } from "./config"; -import { tzip16, Tzip16Module, char2Bytes } from '@taquito/tzip16'; -import { tacoContractTzip16 } from "./data/modified-taco-contract" -import { MichelsonMap } from "@taquito/taquito"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - Tezos.addExtension(new Tzip16Module()); - let contractAddress: string; - let contractMetadataInAnotherContract: string; - - describe(`Originating contracts having metadata stored on chain: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Deploy a contract having metadata inside its own storage', async (done) => { - - const metadataJSON = { - "name": "test", - "description": "A metadata test", - "version": "0.1", - "license": "MIT", - "authors": [ - "Taquito <https://tezostaquito.io/>" - ], - "homepage": "https://tezostaquito.io/" - }; - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", char2Bytes('tezos-storage:here')); - metadataBigMAp.set("here", char2Bytes(JSON.stringify(metadataJSON))) - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - - const op = await Tezos.contract.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }); - await op.confirmation(); - contractAddress = (await op.contract()).address; - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - it('Fetch the metadata in the contract itself', async (done) => { - - const contract = await Tezos.wallet.at(contractAddress, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('tezos-storage:here'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - "name": "test", - "description": "A metadata test", - "version": "0.1", - "license": "MIT", - "authors": [ - "Taquito <https://tezostaquito.io/>" - ], - "homepage": "https://tezostaquito.io/" - }); - done(); - }); - - it('Deploy a contract having metadata inside another contract same network', async (done) => { - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", char2Bytes(`tezos-storage://${contractAddress}/here`)); - - const tacoShopStorageMap = new MichelsonMap(); - - const op = await Tezos.contract.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }); - await op.confirmation(); - contractMetadataInAnotherContract = (await op.contract()).address; - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - it('Fetch the metadata in the storage of the other contract', async (done) => { - - const contract = await Tezos.wallet.at(contractMetadataInAnotherContract, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual(`tezos-storage://${contractAddress}/here`); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - "name": "test", - "description": "A metadata test", - "version": "0.1", - "license": "MIT", - "authors": [ - "Taquito <https://tezostaquito.io/>" - ], - "homepage": "https://tezostaquito.io/" - }); - done(); - }); - - }); -}) diff --git a/integration-tests/tzip16-originate-fa2-contract-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts b/integration-tests/tzip16-originate-fa2-contract-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts deleted file mode 100644 index 83a2d2d4ea..0000000000 --- a/integration-tests/tzip16-originate-fa2-contract-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts +++ /dev/null @@ -1,429 +0,0 @@ -import { CONFIGS } from "./config"; -import { tzip16, Tzip16Module, char2Bytes } from '@taquito/tzip16'; -import { MichelsonMap } from "@taquito/taquito"; -import { fa2ContractTzip16 } from "./data/fa2_contract_with_metadata"; - -CONFIGS().forEach(({ lib, rpc, setup, createAddress }) => { - const Tezos = lib; - Tezos.addExtension(new Tzip16Module()); - let contractAddress: string; - describe(`Tzip16 metadata and view on a fa2 contract: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - - it('Should deploy a Fa2 contract having metadata on HTTPS', async (done) => { - - const LocalTez1 = await createAddress(); - const localTez1Pkh = await LocalTez1.signer.publicKeyHash(); - const LocalTez2 = await createAddress(); - const localTez2Pkh = await LocalTez2.signer.publicKeyHash(); - - // location of the contract metadata - const url = 'https://storage.googleapis.com/tzip-16/fa2-metadata.json'; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - const ledger = new MichelsonMap(); - ledger.set(localTez1Pkh, '5'); - ledger.set(localTez2Pkh, '2'); - - const operatorsMap = new MichelsonMap(); - operatorsMap.set({ - 0: localTez1Pkh, - 1: localTez2Pkh - }, - 'None'); - - const op = await Tezos.contract.originate({ - code: fa2ContractTzip16, - storage: { - default_expiry: 1000, - ledger: ledger, - metadata: metadataBigMAp, - minting_allowances: new MichelsonMap(), - operators: operatorsMap, - paused: false, - permit_counter: '0', - permits: new MichelsonMap(), - totalSupply: '100', - roles: { - master_minter: await Tezos.signer.publicKeyHash(), - owner: localTez1Pkh, - pauser: localTez2Pkh, - pending_owner: null - }, - token_metadata_registry: 'KT1JRrD7gte5ssFePBARMUN7XocKRvvwgXDR', - transferlist_contract: null - }, - }); - await op.confirmation(); - contractAddress = (await op.contract()).address; - expect(op.hash).toBeDefined(); - expect(op.includedInBlock).toBeLessThan(Number.POSITIVE_INFINITY); - done(); - }); - - it('Should fetch metadata of the Fa2 contract', async (done) => { - - const contract = await Tezos.contract.at(contractAddress, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('https://storage.googleapis.com/tzip-16/fa2-metadata.json'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - "name": "FA2 having metadata", - "description": "This is a test for Taquito integration tests of a Fa2 contract having metadata stored on an HTTPS URL", - "source": { - "tools": [ - "stablecoin 1.4.0" - ], - "location": "https://github.com/tqtezos/stablecoin/" - }, - "interfaces": [ - "TZIP-12", - "TZIP-17" - ], - "views": [ - { - "implementations": [ - { - "michelsonStorageView": { - "annotations": [ - - ], - "returnType": { - "args": [ - - ], - "prim": "nat", - "annots": [ - - ] - }, - "code": [ - { - "args": [ - - ], - "prim": "CDR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - } - ], - "parameter": { - "args": [ - - ], - "prim": "unit", - "annots": [ - - ] - } - } - } - ], - "name": "GetDefaultExpiry", - "pure": true, - "description": "Access the contract's default expiry in seconds" - }, - { - "implementations": [ - { - "michelsonStorageView": { - "annotations": [ - - ], - "returnType": { - "args": [ - - ], - "prim": "nat", - "annots": [ - - ] - }, - "code": [ - { - "args": [ - - ], - "prim": "CDR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CDR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CDR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - } - ], - "parameter": { - "args": [ - - ], - "prim": "unit", - "annots": [ - - ] - } - } - } - ], - "name": "GetCounter", - "pure": true, - "description": "Access the current permit counter" - } - ], - "license": { - "name": "MIT" - }, - "errors": [ - { - "error": { - "string": "FA2_TOKEN_UNDEFINED" - }, - "expansion": { - "string": "All `token_id`s must be 0" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "FA2_INSUFFICIENT_BALANCE" - }, - "expansion": { - "string": "Cannot debit from a wallet because of insufficient amount of tokens" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "FA2_NOT_OPERATOR" - }, - "expansion": { - "string": "You're neither the owner or a permitted operator of one or more wallets from which tokens will be transferred" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "XTZ_RECEIVED" - }, - "expansion": { - "string": "Contract received a non-zero amount of tokens" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_CONTRACT_OWNER" - }, - "expansion": { - "string": "Operation can only be performed by the contract's owner" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_PENDING_OWNER" - }, - "expansion": { - "string": "Operation can only be performed by the current contract's pending owner" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NO_PENDING_OWNER_SET" - }, - "expansion": { - "string": "There's no pending transfer of ownership" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_PAUSER" - }, - "expansion": { - "string": "Operation can only be performed by the contract's pauser" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_MASTER_MINTER" - }, - "expansion": { - "string": "Operation can only be performed by the contract's master minter" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_MINTER" - }, - "expansion": { - "string": "Operation can only be performed by registered minters" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "CONTRACT_PAUSED" - }, - "expansion": { - "string": "Operation cannot be performed while the contract is paused" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "CONTRACT_NOT_PAUSED" - }, - "expansion": { - "string": "Operation cannot be performed while the contract is not paused" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_TOKEN_OWNER" - }, - "expansion": { - "string": "You cannot configure another user's operators" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "CURRENT_ALLOWANCE_REQUIRED" - }, - "expansion": { - "string": "The given address is already a minter, you must specify its current minting allowance" - }, - "languages": [ - "en" - ] - } - ] - }); - done(); - }); - - it('Should execute views', async (done) => { - - const contractAbstraction = await Tezos.contract.at(contractAddress, tzip16); - const metadataViews = await contractAbstraction.tzip16().metadataViews(); - - const viewGetCounterResult = await metadataViews.GetCounter().executeView('Unit'); - expect(viewGetCounterResult.toString()).toEqual('0'); - - const viewGetDefaultExpiryResult = await metadataViews.GetDefaultExpiry().executeView(); - expect(viewGetDefaultExpiryResult.toString()).toEqual('1000'); - - done(); - }); - }); -}) \ No newline at end of file diff --git a/integration-tests/tzip16-originate-fa2-wallet-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts b/integration-tests/tzip16-originate-fa2-wallet-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts deleted file mode 100644 index 91cdbd2ce1..0000000000 --- a/integration-tests/tzip16-originate-fa2-wallet-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts +++ /dev/null @@ -1,429 +0,0 @@ -import { CONFIGS } from "./config"; -import { tzip16, Tzip16Module, char2Bytes } from '@taquito/tzip16'; -import { MichelsonMap } from "@taquito/taquito"; -import { fa2ContractTzip16 } from "./data/fa2_contract_with_metadata"; - -CONFIGS().forEach(({ lib, rpc, setup, createAddress }) => { - const Tezos = lib; - const test = require('jest-retries'); - Tezos.addExtension(new Tzip16Module()); - let contractAddress: string; - describe(`Tzip16 metadata and view on a fa2 contract made with wallet api: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - - test('Should deploy a Fa2 wallet api contract having metadata on HTTPS', 2, async (done: () => void) => { - - const LocalTez1 = await createAddress(); - const localTez1Pkh = await LocalTez1.signer.publicKeyHash(); - const LocalTez2 = await createAddress(); - const localTez2Pkh = await LocalTez2.signer.publicKeyHash(); - - // location of the contract metadata - const url = 'https://storage.googleapis.com/tzip-16/fa2-metadata.json'; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - const ledger = new MichelsonMap(); - ledger.set(localTez1Pkh, '5'); - ledger.set(localTez2Pkh, '2'); - - const operatorsMap = new MichelsonMap(); - operatorsMap.set({ - 0: localTez1Pkh, - 1: localTez2Pkh - }, - 'None'); - // file deepcode ignore object-literal-shorthand: not sure how to fix - const op = await Tezos.wallet.originate({ - code: fa2ContractTzip16, - storage: { - default_expiry: 1000, - ledger: ledger, - metadata: metadataBigMAp, - minting_allowances: new MichelsonMap(), - operators: operatorsMap, - paused: false, - permit_counter: '0', - permits: new MichelsonMap(), - totalSupply: '100', - roles: { - master_minter: await Tezos.signer.publicKeyHash(), - owner: localTez1Pkh, - pauser: localTez2Pkh, - pending_owner: null - }, - token_metadata_registry: 'KT1JRrD7gte5ssFePBARMUN7XocKRvvwgXDR', - transferlist_contract: null - }, - }).send(); - await op.confirmation(); - contractAddress = (await op.contract()).address; - expect(op.opHash).toBeDefined(); - done(); - }); - - test('Should fetch metadata of the Fa2 wallet api contract', 2, async (done: () => void) => { - const contract = await Tezos.wallet.at(contractAddress, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('https://storage.googleapis.com/tzip-16/fa2-metadata.json'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - "name": "FA2 having metadata", - "description": "This is a test for Taquito integration tests of a Fa2 contract having metadata stored on an HTTPS URL", - "source": { - "tools": [ - "stablecoin 1.4.0" - ], - "location": "https://github.com/tqtezos/stablecoin/" - }, - "interfaces": [ - "TZIP-12", - "TZIP-17" - ], - "views": [ - { - "implementations": [ - { - "michelsonStorageView": { - "annotations": [ - - ], - "returnType": { - "args": [ - - ], - "prim": "nat", - "annots": [ - - ] - }, - "code": [ - { - "args": [ - - ], - "prim": "CDR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - } - ], - "parameter": { - "args": [ - - ], - "prim": "unit", - "annots": [ - - ] - } - } - } - ], - "name": "GetDefaultExpiry", - "pure": true, - "description": "Access the contract's default expiry in seconds" - }, - { - "implementations": [ - { - "michelsonStorageView": { - "annotations": [ - - ], - "returnType": { - "args": [ - - ], - "prim": "nat", - "annots": [ - - ] - }, - "code": [ - { - "args": [ - - ], - "prim": "CDR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CDR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CDR", - "annots": [ - - ] - }, - { - "args": [ - - ], - "prim": "CAR", - "annots": [ - - ] - } - ], - "parameter": { - "args": [ - - ], - "prim": "unit", - "annots": [ - - ] - } - } - } - ], - "name": "GetCounter", - "pure": true, - "description": "Access the current permit counter" - } - ], - "license": { - "name": "MIT" - }, - "errors": [ - { - "error": { - "string": "FA2_TOKEN_UNDEFINED" - }, - "expansion": { - "string": "All `token_id`s must be 0" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "FA2_INSUFFICIENT_BALANCE" - }, - "expansion": { - "string": "Cannot debit from a wallet because of insufficient amount of tokens" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "FA2_NOT_OPERATOR" - }, - "expansion": { - "string": "You're neither the owner or a permitted operator of one or more wallets from which tokens will be transferred" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "XTZ_RECEIVED" - }, - "expansion": { - "string": "Contract received a non-zero amount of tokens" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_CONTRACT_OWNER" - }, - "expansion": { - "string": "Operation can only be performed by the contract's owner" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_PENDING_OWNER" - }, - "expansion": { - "string": "Operation can only be performed by the current contract's pending owner" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NO_PENDING_OWNER_SET" - }, - "expansion": { - "string": "There's no pending transfer of ownership" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_PAUSER" - }, - "expansion": { - "string": "Operation can only be performed by the contract's pauser" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_MASTER_MINTER" - }, - "expansion": { - "string": "Operation can only be performed by the contract's master minter" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_MINTER" - }, - "expansion": { - "string": "Operation can only be performed by registered minters" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "CONTRACT_PAUSED" - }, - "expansion": { - "string": "Operation cannot be performed while the contract is paused" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "CONTRACT_NOT_PAUSED" - }, - "expansion": { - "string": "Operation cannot be performed while the contract is not paused" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "NOT_TOKEN_OWNER" - }, - "expansion": { - "string": "You cannot configure another user's operators" - }, - "languages": [ - "en" - ] - }, - { - "error": { - "string": "CURRENT_ALLOWANCE_REQUIRED" - }, - "expansion": { - "string": "The given address is already a minter, you must specify its current minting allowance" - }, - "languages": [ - "en" - ] - } - ] - }); - done(); - }); - - test('Should execute views', 2, async (done: () => void) => { - // edonet: KT1XKs56Z8iXpYAD3pzfyXC3B4maJciob74X - - const contractAbstraction = await Tezos.wallet.at(contractAddress, tzip16); - const metadataViews = await contractAbstraction.tzip16().metadataViews(); - - const viewGetCounterResult = await metadataViews.GetCounter().executeView('Unit'); - expect(viewGetCounterResult.toString()).toEqual('0'); - - const viewGetDefaultExpiryResult = await metadataViews.GetDefaultExpiry().executeView(); - expect(viewGetDefaultExpiryResult.toString()).toEqual('1000'); - - done(); - }); - }); -}) \ No newline at end of file diff --git a/integration-tests/tzip16-originate-wallet-having-metadata-on-IPFS-and-fetch-those.spec.ts b/integration-tests/tzip16-originate-wallet-having-metadata-on-IPFS-and-fetch-those.spec.ts deleted file mode 100644 index 9ef16ea91f..0000000000 --- a/integration-tests/tzip16-originate-wallet-having-metadata-on-IPFS-and-fetch-those.spec.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { CONFIGS } from './config'; -import { tacoContractTzip16 } from './data/modified-taco-contract'; -import { MichelsonMap } from '@taquito/taquito'; -import { char2Bytes, tzip16, Tzip16Module, IpfsHttpHandler, Handler, MetadataProvider } from '@taquito/tzip16'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - const test = require('jest-retries') - - const customHandler = new Map<string, Handler>([ - ['ipfs', new IpfsHttpHandler('cloudflare-ipfs.com')] - ]); - - const customMetadataProvider = new MetadataProvider(customHandler); - - Tezos.addExtension(new Tzip16Module(customMetadataProvider)); - - let contractAddress: string; - - describe(`Originating contracts made with wallet api having metadata stored at HTTPS URL using: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - - test('Deploy a contract made with wallet api having metadata stored at on IPFS', 2, async (done: () => void) => { - - // location of the contract metadata - const uri = 'ipfs://QmcMUKkhXowQjCPtDVVXyFJd7W9LmC92Gs5kYH1KjEisdj'; - const bytesUrl = char2Bytes(uri); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - - const op = await Tezos.wallet.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }).send(); - await op.confirmation(); - contractAddress = (await op.contract()).address; - expect(op.opHash).toBeDefined(); - done(); - }); - - test('Should fetch metadata of the wallet api made contract on IPFS', 2, async (done: () => void) => { - - const contract = await Tezos.wallet.at(contractAddress, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('ipfs://QmcMUKkhXowQjCPtDVVXyFJd7W9LmC92Gs5kYH1KjEisdj'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - name: 'Taquito test with valid metadata', - description: - 'This is metadata test for Taquito integration tests with the Ligo Taco shop contract modified to include metadata in storage', - version: '7.1.0-beta.0', - license: { - name: 'MIT', - details: 'The MIT License' - }, - homepage: 'https://github.com/ecadlabs/taquito', - source: { - tools: ['Ligo', 'https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A'], - location: 'https://ligolang.org/docs/tutorials/get-started/tezos-taco-shop-payout' - } - }); - - done(); - }); - }); -}); diff --git a/integration-tests/tzip16-originate-wallets-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts b/integration-tests/tzip16-originate-wallets-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts deleted file mode 100644 index 38b43b3ed0..0000000000 --- a/integration-tests/tzip16-originate-wallets-with-metadata-on-HTTPS-and-fetch-metadata.spec.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { CONFIGS } from "./config"; -import { tacoContractTzip16 } from "./data/modified-taco-contract" -import { MichelsonMap } from "@taquito/taquito"; -import { tzip16, Tzip16Module, char2Bytes } from '@taquito/tzip16'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - Tezos.addExtension(new Tzip16Module()); - - let contractAddressEmptyMetadata: string; - let contractAddressEmoji: string; - let contractAddressInvalidMetadata: string; - - describe(`Originating contracts made with wallet api having metadata stored at HTTPS URL using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Deploy a wallet api contract having empty metadata stored at an HTTPS URL', async (done) => { - - // location of the contract metadata - const url = 'https://storage.googleapis.com/tzip-16/empty-metadata.json'; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - tacoShopStorageMap.set("1", { current_stock: "10000", max_price: "50" }); - tacoShopStorageMap.set("2", { current_stock: "120", max_price: "20" }); - tacoShopStorageMap.set("3", { current_stock: "50", max_price: "60" }); - - const op = await Tezos.wallet.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }).send(); - await op.confirmation(); - contractAddressEmptyMetadata = (await op.contract()).address; - expect(op.opHash).toBeDefined(); - done(); - }); - - it('Fetch the empty metadata of the wallet api contract', async (done) => { - - const contract = await Tezos.wallet.at(contractAddressEmptyMetadata, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('https://storage.googleapis.com/tzip-16/empty-metadata.json'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({}); - done(); - }); - - it('Deploy a wallet api contract having valid metadata stored at an HTTPS URL', async (done) => { - - // location of the contract metadata - const url = 'https://storage.googleapis.com/tzip-16/taco-shop-metadata.json'; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - tacoShopStorageMap.set("1", { current_stock: "10000", max_price: "50" }); - - const op = await Tezos.wallet.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }).send(); - await op.confirmation(); - expect(op.opHash).toBeDefined(); - done(); - }); - - it('Deploy a wallet api contract having valid metadata which contains emoji stored at an HTTPS URL', async (done) => { - - // location of the contract metadata - const url = 'https://storage.googleapis.com/tzip-16/emoji-in-metadata.json'; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - tacoShopStorageMap.set("1", { current_stock: "10000", max_price: "50" }); - - const op = await Tezos.wallet.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }).send(); - await op.confirmation(); - contractAddressEmoji = (await op.contract()).address; - expect(op.opHash).toBeDefined(); - done(); - }); - - it('Fetch the metadata which contains emoji of the wallet api contract', async (done) => { - - const contract = await Tezos.wallet.at(contractAddressEmoji, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('https://storage.googleapis.com/tzip-16/emoji-in-metadata.json'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - "name": "Taquito test with valid metadata containing emoji 😀 🤩", - "description": "👋 This is metadata test for Taquito integration tests 🧐 with the Ligo Taco shop contract modified to include metadata URI in the storage", - "version": "7.1.0-beta.0", - "license": { - "name": "MIT", - "details": "The MIT License" - }, - "homepage": "https://github.com/ecadlabs/taquito", - "source": { - "tools": [ - "Ligo", - "https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A" - ], - "location": "https://ligolang.org/docs/tutorials/get-started/tezos-taco-shop-payout" - } - }); - done(); - }); - - it('Deploy a wallet api contract having invalid metadata stored at an HTTPS URL', async (done) => { - - // location of the contract metadata - const url = 'https://storage.googleapis.com/tzip-16/invalid.json'; - const bytesUrl = char2Bytes(url); - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", bytesUrl); - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - tacoShopStorageMap.set("1", { current_stock: "10000", max_price: "50" }); - - const op = await Tezos.wallet.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }).send(); - await op.confirmation(); - contractAddressInvalidMetadata = (await op.contract()).address; - expect(op.opHash).toBeDefined(); - done(); - }); - - it('Should fail to fetch invalid metadata of the wallet api contract', async (done) => { - - const contract = await Tezos.wallet.at(contractAddressInvalidMetadata, tzip16); - try { - await contract.tzip16().getMetadata(); - } catch (error) { - expect(error.message).toContain(`Invalid metadata`); - } - - done(); - }); - }); -}) diff --git a/integration-tests/tzip16-originate-wallets-with-metadata-on-itself-and-fetch-metadata.spec.ts b/integration-tests/tzip16-originate-wallets-with-metadata-on-itself-and-fetch-metadata.spec.ts deleted file mode 100644 index b35b0951e2..0000000000 --- a/integration-tests/tzip16-originate-wallets-with-metadata-on-itself-and-fetch-metadata.spec.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { CONFIGS } from "./config"; -import { tzip16, Tzip16Module, char2Bytes } from '@taquito/tzip16'; -import { tacoContractTzip16 } from "./data/modified-taco-contract" -import { MichelsonMap } from "@taquito/taquito"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - Tezos.addExtension(new Tzip16Module()); - let contractAddress: string; - let contractMetadataInAnotherContract: string; - - describe(`Originating wallet api contracts having metadata stored on chain: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Deploy a wallet api contract having metadata inside its own storage', async (done) => { - - const metadataJSON = { - "name": "test", - "description": "A metadata test", - "version": "0.1", - "license": "MIT", - "authors": [ - "Taquito <https://tezostaquito.io/>" - ], - "homepage": "https://tezostaquito.io/" - }; - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", char2Bytes('tezos-storage:here')); - metadataBigMAp.set("here", char2Bytes(JSON.stringify(metadataJSON))) - - // Ligo Taco shop contract modified to include metadata in storage - // https://ide.ligolang.org/p/-uS469slzUlSm1zwNqHl1A - - const tacoShopStorageMap = new MichelsonMap(); - - const op = await Tezos.wallet.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }).send(); - await op.confirmation(); - contractAddress = (await op.contract()).address; - expect(op.opHash).toBeDefined(); - done(); - }); - - it('Fetch the metadata in the wallet api contract itself', async (done) => { - - const contract = await Tezos.wallet.at(contractAddress, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual('tezos-storage:here'); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - "name": "test", - "description": "A metadata test", - "version": "0.1", - "license": "MIT", - "authors": [ - "Taquito <https://tezostaquito.io/>" - ], - "homepage": "https://tezostaquito.io/" - }); - done(); - }); - - it('Deploy a wallet api contract having metadata inside another contract same network', async (done) => { - - const metadataBigMAp = new MichelsonMap(); - metadataBigMAp.set("", char2Bytes(`tezos-storage://${contractAddress}/here`)); - - const tacoShopStorageMap = new MichelsonMap(); - - const op = await Tezos.wallet.originate({ - code: tacoContractTzip16, - storage: { - metadata: metadataBigMAp, - taco_shop_storage: tacoShopStorageMap - }, - }).send(); - await op.confirmation(); - contractMetadataInAnotherContract = (await op.contract()).address; - expect(op.opHash).toBeDefined(); - done(); - }); - - it('Fetch the metadata in the storage of the other wallet api contract', async (done) => { - - const contract = await Tezos.wallet.at(contractMetadataInAnotherContract, tzip16); - const metadata = await contract.tzip16().getMetadata(); - - expect(metadata.uri).toEqual(`tezos-storage://${contractAddress}/here`); - expect(metadata.integrityCheckResult).toBeUndefined(); - expect(metadata.sha256Hash).toBeUndefined(); - expect(metadata.metadata).toEqual({ - "name": "test", - "description": "A metadata test", - "version": "0.1", - "license": "MIT", - "authors": [ - "Taquito <https://tezostaquito.io/>" - ], - "homepage": "https://tezostaquito.io/" - }); - done(); - }); - - }); -}) diff --git a/integration-tests/wallet-batch.spec.ts b/integration-tests/wallet-batch.spec.ts deleted file mode 100644 index a9c91c8914..0000000000 --- a/integration-tests/wallet-batch.spec.ts +++ /dev/null @@ -1,196 +0,0 @@ -import { CONFIGS } from './config'; -import { ligoSample, ligoSampleMichelson } from './data/ligo-simple-contract'; -import { managerCode } from './data/manager_code'; -import { MANAGER_LAMBDA, OpKind } from '@taquito/taquito'; - -CONFIGS().forEach(({ lib, rpc, setup, knownContract, knownBaker, createAddress }) => { - const Tezos = lib; - const test = require('jest-retries'); - - describe(`Test wallet.batch using: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - - test('Simple transfers with origination (with code in JSON Michelson format)', 2, async (done: () => void) => { - const batch = Tezos.wallet - .batch() - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withOrigination({ - balance: '1', - code: ligoSample, - storage: 0 - }); - - const op = await batch.send(); - const conf1 = await op.confirmation(); - const currentConf1 = await op.getCurrentConfirmation(); - - expect(currentConf1).toEqual(1); - expect(conf1).toEqual( - expect.objectContaining({ - expectedConfirmation: 1, - currentConfirmation: 1, - completed: true - }) - ); - expect(op.opHash).toBeDefined(); - done(); - }); - - test('Simple transfers with origination (with code in Michelson format)', 2, async (done: () => void) => { - const batch = Tezos.wallet - .batch() - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withOrigination({ - balance: '1', - code: ligoSampleMichelson, - storage: 0 - }); - - const op = await batch.send(); - const conf1 = await op.confirmation(); - const currentConf1 = await op.getCurrentConfirmation(); - - expect(currentConf1).toEqual(1); - expect(conf1).toEqual( - expect.objectContaining({ - expectedConfirmation: 1, - currentConfirmation: 1, - completed: true - }) - ); - expect(op.opHash).toBeDefined(); - done(); - }); - - test('Simple transfers with origination using with', 2, async (done: () => void) => { - const op = await Tezos.wallet - .batch([ - { - kind: OpKind.TRANSACTION, - to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', - amount: 2 - }, - { - kind: OpKind.ORIGINATION, - balance: '1', - code: ligoSample, - storage: 0 - } - ]) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .withTransfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }) - .send(); - - const conf1 = await op.confirmation(); - const currentConf1 = await op.getCurrentConfirmation(); - - expect(currentConf1).toEqual(1); - expect(conf1).toEqual( - expect.objectContaining({ - expectedConfirmation: 1, - currentConfirmation: 1, - completed: true - }) - ); - expect(op.opHash).toBeDefined(); - done(); - }); - - test('Test batch from account with low balance', 2, async (done: () => void) => { - const LocalTez = await createAddress(); - const op = await Tezos.wallet.transfer({ to: await LocalTez.wallet.pkh(), amount: 2 }).send(); - await op.confirmation(); - - const batchOp = await LocalTez.wallet - .batch([ - { - kind: OpKind.TRANSACTION, - to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', - amount: 1 - }, - { - kind: OpKind.ORIGINATION, - balance: '0', - code: ligoSample, - storage: 0 - } - ]) - .send(); - - await batchOp.confirmation(); - - expect(await op.status()).toEqual('applied'); - done(); - }); - - test('Chain contract calls', 2, async (done: () => void) => { - const op = await Tezos.wallet - .originate({ - balance: '1', - code: managerCode, - init: { string: await Tezos.signer.publicKeyHash() } - }) - .send(); - - const contract = await op.contract(); - expect(await op.status()).toEqual('applied'); - - const batch = Tezos.wallet - .batch() - .withTransfer({ to: contract.address, amount: 1 }) - .withContractCall( - contract.methods.do(MANAGER_LAMBDA.transferImplicit('tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh', 50)) - ) - .withContractCall(contract.methods.do(MANAGER_LAMBDA.setDelegate(knownBaker))) - .withContractCall(contract.methods.do(MANAGER_LAMBDA.removeDelegate())); - - const batchOp = await batch.send(); - await batchOp.confirmation(); - const conf1 = await batchOp.confirmation(); - const currentConf1 = await batchOp.getCurrentConfirmation(); - - expect(currentConf1).toEqual(1); - expect(conf1).toEqual( - expect.objectContaining({ - expectedConfirmation: 1, - currentConfirmation: 1, - completed: true - }) - ); - expect(batchOp.opHash).toBeDefined(); - done(); - }); - - test('Batch transfers and method call', 2, async (done: () => void) => { - const contract = await Tezos.wallet.at(knownContract); - const batch = await Tezos.wallet - .batch([ - { kind: OpKind.TRANSACTION, to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }, - { kind: OpKind.TRANSACTION, to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }, - { kind: OpKind.TRANSACTION, ...contract.methods.default([['Unit']]).toTransferParams() } - ]) - .send(); - - const conf1 = await batch.confirmation(); - const currentConf1 = await batch.getCurrentConfirmation(); - - expect(currentConf1).toEqual(1); - expect(conf1).toEqual( - expect.objectContaining({ - expectedConfirmation: 1, - currentConfirmation: 1, - completed: true - }) - ); - expect(batch.opHash).toBeDefined(); - done(); - }); - }); -}); diff --git a/integration-tests/wallet-big-map.spec.ts b/integration-tests/wallet-big-map.spec.ts deleted file mode 100644 index f63a4b7e33..0000000000 --- a/integration-tests/wallet-big-map.spec.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { CONFIGS } from "./config"; -import { tokenCode, tokenInit } from "./data/tokens"; -import { storageContract } from "./data/storage-contract"; -import { MichelsonMap } from "@taquito/taquito"; -import { storage } from '../packages/taquito-michelson-encoder/data/proto005/unit_contract'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - - describe(`Test wallet with multiple bigmap variations using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - - it('originates a contract and initializes bigmaps with variants of data using the wallet API', async (done) => { - - const op = await Tezos.wallet.originate({ - balance: "1", - code: storageContract, - storage: { - "map1": MichelsonMap.fromLiteral({ - "tz2Ch1abG7FNiibmV26Uzgdsnfni9XGrk5wD": 1, - 'KT1CDEg2oY3VfMa1neB7hK5LoVMButvivKYv': 2, - "tz3YjfexGakCDeCseXFUpcXPSAN9xHxE9TH2": 2, - "tz1ccqAEwfPgeoipnXtjAv1iucrpQv3DFmmS": 3, - }), - "map2": MichelsonMap.fromLiteral({ - "2": 1, - '3': 2, - "1": 2, - "4": 3, - }), - "map3": MichelsonMap.fromLiteral({ - "2": 1, - '3': 2, - "1": 2, - "4": 3, - }), - "map4": MichelsonMap.fromLiteral({ - "zz": 1, - 'aa': 2, - "ab": 2, - "cc": 3, - }), - "map5": MichelsonMap.fromLiteral({ - "aaaa": 1, - "aa": 1, - 'ab': 2, - "01": 2, - "22": 3, - }), - "map6": MichelsonMap.fromLiteral({ - "2": 1, - '3': 2, - "1": 2, - "4": 3, - }), - "map7": MichelsonMap.fromLiteral({ - "2018-04-23T10:26:00.996Z": 1, - '2017-04-23T10:26:00.996Z': 2, - "2019-04-23T10:26:00.996Z": 2, - "2015-04-23T10:26:00.996Z": 3, - }), - } - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - done(); - - const contract = await op.contract(); - expect(contract.storage).toBeDefined(); - }) - }); -}) diff --git a/integration-tests/wallet-collections.spec.ts b/integration-tests/wallet-collections.spec.ts deleted file mode 100644 index a39b9d66b1..0000000000 --- a/integration-tests/wallet-collections.spec.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { CONFIGS } from "./config"; -import { MichelsonMap } from "@taquito/taquito"; -import { collection_code } from "./data/collection_contract"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Collection wallet tests using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Originate a contract using wallet api with set,list,map and exercise all collections', async (done) => { - const addr = await Tezos.signer.publicKeyHash(); - - const initialStorage = { - set1: ['2', '1', '3'], - list1: ['1'], - map1: MichelsonMap.fromLiteral({ "2": "1", "1": "1" }) - } - - const op = await Tezos.wallet.originate({ - balance: "1", - code: collection_code, - storage: initialStorage - }).send(); - await op.confirmation() - expect(op.opHash).toBeDefined(); - - const contract = await op.contract() - // file deepcode ignore no-any: any is good enough - const storage: any = await contract.storage() - expect(storage['set1'].map((x: any) => x.toString())).toEqual(['1', '2', '3']) - expect(storage['list1'].map((x: any) => x.toString())).toEqual(['1']) - expect(storage['map1'].get('1').toString()).toEqual('1') - - const setOp = await contract.methods['setSet'](['2']).send() - await setOp.confirmation(); - - const listOp = await contract.methods['setList'](['2']).send() - await listOp.confirmation(); - - const mapOp = await contract.methods['setMap'](MichelsonMap.fromLiteral({ "2": "2" })).send() - await mapOp.confirmation(); - - done(); - }); - }); -}) diff --git a/integration-tests/wallet-empty-delegated-implicit-account.spec.ts b/integration-tests/wallet-empty-delegated-implicit-account.spec.ts deleted file mode 100644 index 4d2556e274..0000000000 --- a/integration-tests/wallet-empty-delegated-implicit-account.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { CONFIGS } from "./config"; - -CONFIGS().forEach(({ lib, rpc, setup, createAddress, knownBaker }) => { - const Tezos = lib; - const test = require('jest-retries') - - describe(`Test emptying a delegated implicit wallet account using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - test('creates a new wallet account, delegates it, and attempts to empty it despite the delegation being expected to fail', 2, async (done: () => void) => { - const LocalTez = await createAddress(); - const op = await Tezos.wallet.transfer({ to: await LocalTez.signer.publicKeyHash(), amount: 2 }).send(); - await op.confirmation(); - - // Delegating from the account we want to empty - // This will do the reveal operation automatically - const op2 = await LocalTez.wallet.setDelegate({ delegate: knownBaker}).send(); - await op2.confirmation(); - - const estimate = await LocalTez.estimate.transfer({ to: await Tezos.signer.publicKeyHash(), amount: 0.5 }); - - // Emptying the account - // The max amount that can be sent now is the total balance minus the fees (no need for reveal fees) - const balance = await Tezos.tz.getBalance(await LocalTez.signer.publicKeyHash()) - const maxAmount = balance.minus(estimate.suggestedFeeMutez).toNumber(); - expect.assertions(1) - try { - await LocalTez.wallet.transfer({ to: await Tezos.signer.publicKeyHash(), mutez: true, amount: maxAmount}).send(); - } catch (ex) { - expect(ex.message).toMatch('empty_implicit_delegated_contract') - } - done(); - }); - }); -}) diff --git a/integration-tests/wallet-empty-revealed-implicit-account.spec.ts b/integration-tests/wallet-empty-revealed-implicit-account.spec.ts deleted file mode 100644 index 77095dec6a..0000000000 --- a/integration-tests/wallet-empty-revealed-implicit-account.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Console } from "console"; -import { CONFIGS } from "./config"; -import { parameter } from '../packages/taquito-michelson-encoder/data/sample12_vote_delegation'; - -CONFIGS().forEach(({ lib, rpc, setup, createAddress }) => { - const Tezos = lib; - describe(`Test emptying a revealed implicit wallet account using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('creates a revealed implicit wallet account, funds it, empties it', async (done) => { - const LocalTez = await createAddress(); - const op = await Tezos.wallet.transfer({ to: await LocalTez.signer.publicKeyHash(), amount: 2 }).send(); - await op.confirmation(); - - // Sending token from the account we want to empty - // This will do the reveal operation automatically - const op2 = await LocalTez.wallet.transfer({ to: await Tezos.signer.publicKeyHash(), amount: 1 }).send(); - await op2.confirmation(); - - const balance = await Tezos.tz.getBalance(await LocalTez.signer.publicKeyHash()) - const estimate = await LocalTez.estimate.transfer({ to: await Tezos.signer.publicKeyHash(), amount: balance.toNumber(), mutez : true }); - - // Emptying the account - // The max amount that can be sent now is the total balance minus the fees (no need for reveal fees) - const maxAmount = balance.minus(estimate.suggestedFeeMutez).toNumber(); - - const op3 = await LocalTez.wallet.transfer({ to: await Tezos.signer.publicKeyHash(), mutez: true, amount: maxAmount }).send(); - await op3.confirmation(); - - //expect((await Tezos.tz.getBalance(await LocalTez.signer.publicKeyHash())).toString()).toEqual("0") - expect((await Tezos.tz.getBalance(await LocalTez.signer.publicKeyHash())).toString()).toBeDefined - done(); - }); - }); -}) diff --git a/integration-tests/wallet-failwith.spec.ts b/integration-tests/wallet-failwith.spec.ts deleted file mode 100644 index 9193f48951..0000000000 --- a/integration-tests/wallet-failwith.spec.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CONFIGS } from "./config"; -import { failwithContractCode } from "./data/failwith"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Test contract made with wallet API that throws FAILWITH api using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('captures a FAILWITH and throws an error', async (done) => { - const op = await Tezos.wallet.originate({ - balance: "1", - code: failwithContractCode, - storage: null - }).send() - const contract = await op.contract() - expect(op.opHash).toBeDefined(); - expect(op.status.name === 'applied'); - - try { - await contract.methods.default(null).send() - } catch (ex) { - expect(ex.message).toMatch('test') - } - - try { - // Bypass estimation by specify int fee & limits - await contract.methods.default(null).send({ fee: 20000, gasLimit: 20000, storageLimit: 0 }) - } catch (ex) { - expect(ex.message).toMatch('test') - } - done(); - }); - }); -}) diff --git a/integration-tests/wallet-init-with-empty-bigmap.spec.ts b/integration-tests/wallet-init-with-empty-bigmap.spec.ts deleted file mode 100644 index 8ebfd138c5..0000000000 --- a/integration-tests/wallet-init-with-empty-bigmap.spec.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { CONFIGS } from "./config"; -import { tokenBigmapCode } from "./data/token_bigmap"; -import { MichelsonMap } from "@taquito/taquito"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - const test = require('jest-retries'); - - describe(`Token contract with empty big map origination scenario using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - test('Originate wallet contract and init bigmap to empty map', 2, async (done: () => void) => { - const op = await Tezos.wallet.originate({ - balance: "1", - code: tokenBigmapCode, - storage: { - owner: await Tezos.signer.publicKeyHash(), - accounts: new MichelsonMap(), - totalSupply: "0" - } - }).send() - await op.confirmation() - expect(op.opHash).toBeDefined(); - done(); - }); - }); -}) diff --git a/integration-tests/wallet-ligo-increment-contract.spec.ts b/integration-tests/wallet-ligo-increment-contract.spec.ts deleted file mode 100644 index b894806ad4..0000000000 --- a/integration-tests/wallet-ligo-increment-contract.spec.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { CONFIGS } from "./config"; -import { ligoSample } from "./data/ligo-simple-contract"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Simple ligo origination scenario using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('for wallet api, originates michelson produced by ligo, and increments a counter in storage', async (done) => { - const op = await Tezos.wallet.originate({ - balance: "1", - code: ligoSample, - storage: 0, - }).send(); - await op.confirmation() - expect(op.opHash).toBeDefined(); - const contract = await op.contract(); - - // file deepcode ignore no-any: any is good enough - const storage: any = await contract.storage() - expect(storage.toString()).toEqual("0") - const opMethod = await contract.methods.default("2").send(); - - await opMethod.confirmation(); - expect(op.opHash).toBeDefined(); - // file deepcode ignore no-any: any is good enough - const storage2: any = await contract.storage() - expect(storage2.toString()).toEqual("2") - done(); - }); - }); -}) diff --git a/integration-tests/wallet-manager-that-calls-failwith-contract.spec.ts b/integration-tests/wallet-manager-that-calls-failwith-contract.spec.ts deleted file mode 100644 index 340ae724aa..0000000000 --- a/integration-tests/wallet-manager-that-calls-failwith-contract.spec.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { CONFIGS } from "./config"; -import { failwithContractCode } from "./data/failwith"; -import { managerCode } from "./data/manager_code"; -import { MANAGER_LAMBDA } from "@taquito/taquito"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Test contract that calls 2nd contract that FAILs: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Catches a Failwith from a contract made with wallet api called via a manager contract', async (done) => { - const op = await Tezos.wallet.originate({ - balance: "1", - code: failwithContractCode, - storage: null - }).send(); - const contract = await op.contract() - expect(op.opHash).toBeDefined(); - await op.confirmation(); - - const opManager = await Tezos.wallet.originate({ - balance: "1", - code: managerCode, - init: { "string": await Tezos.signer.publicKeyHash() }, - }).send() - - const managerContract = await opManager.contract() - expect(opManager.opHash).toBeDefined(); - await opManager.confirmation(); - try { - await managerContract.methods.do(MANAGER_LAMBDA.transferToContract(contract.address, 1)).send({ amount: 0 }) - fail('Expected transfer operation to throw error') - } catch (ex) { - expect(ex.message).toMatch('test') - } - done(); - }); - }); -}) diff --git a/integration-tests/wallet-michelson-origination.spec.ts b/integration-tests/wallet-michelson-origination.spec.ts deleted file mode 100644 index 23868c91c5..0000000000 --- a/integration-tests/wallet-michelson-origination.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { CONFIGS } from "./config"; -import { idMichelsonCode, idInitData } from "./data/id-contract" - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Originating a plain Michelson contract using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Origination of an ID contract using wallet API written in plain Michelson', async (done) => { - const op = await Tezos.wallet.originate({ - balance: "0", - code: idMichelsonCode, - init: idInitData - }).send() - await op.confirmation() - expect(op.opHash).toBeDefined(); - expect(op.status).toBeDefined(); - done(); - }); - }); -}) diff --git a/integration-tests/wallet-no-annotations-call-by-index.spec.ts b/integration-tests/wallet-no-annotations-call-by-index.spec.ts deleted file mode 100644 index 933d89148f..0000000000 --- a/integration-tests/wallet-no-annotations-call-by-index.spec.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { CONFIGS } from "./config"; -import { noAnnotCode, noAnnotInit } from "./data/token_without_annotation"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - const test = require('jest-retries'); - describe(`Test contract made with wallet API with no annotations calling methods by index using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - test('Test contract made with wallet API with no annotations for methods', 2, async (done: () => void) => { - // Constants to replace annotations - const ACCOUNTS = '0'; - const BALANCE = '0'; - const ALLOWANCES = '1'; - const TRANSFER = '0'; - const APPROVE = '2'; - - // Actual tests - - const ACCOUNT1_ADDRESS = await Tezos.signer.publicKeyHash() - const ACCOUNT2_ADDRESS = 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu' - - // Originate a contract with a known state - const op = await Tezos.wallet.originate({ - balance: "1", - code: noAnnotCode, - init: noAnnotInit(await Tezos.signer.publicKeyHash()) - }).send(); - const contract = await op.contract() - - // Make a transfer - const operation = await contract.methods[TRANSFER](ACCOUNT1_ADDRESS, ACCOUNT2_ADDRESS, "1").send(); - await operation.confirmation(); - expect(operation.status).toBeTruthy - - // Verify that the transfer was done as expected - // file deepcode ignore no-any: any is good enough - const storage = await contract.storage<any>() - let account1 = await storage[ACCOUNTS].get(ACCOUNT1_ADDRESS) - expect(account1[BALANCE].toString()).toEqual('16') - - const account2 = await storage[ACCOUNTS].get(ACCOUNT2_ADDRESS) - expect(account2[BALANCE].toString()).toEqual('1') - - // Approve - const operation2 = await contract.methods[APPROVE](ACCOUNT2_ADDRESS, "1").send(); - await operation2.confirmation(); - expect(operation2.status).toBeTruthy - - // Verify that the allowance was done as expected - account1 = await storage[ACCOUNTS].get(ACCOUNT1_ADDRESS) - expect(account1[ALLOWANCES].get(ACCOUNT2_ADDRESS).toString()).toEqual('1') - done(); - }) - }); -}) diff --git a/integration-tests/wallet-originate-contract-unpair.spec.ts b/integration-tests/wallet-originate-contract-unpair.spec.ts deleted file mode 100644 index 8afbeb712f..0000000000 --- a/integration-tests/wallet-originate-contract-unpair.spec.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { CONFIGS } from './config'; -import { miStr, miObject } from './data/contractWithUnpair'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - const test = require('jest-retries'); - - describe(`Test origination of a token contract using: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(); - done(); - }); - - test('Originates a contract having UNPAIR with code and init in Michelson', 2, async (done: () => void) => { - const op = await Tezos.wallet.originate({ - code: miStr, - init: '(Pair 0 "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn")' - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - }); - - test('Originates a contract having UNPAIR with code in Michelson and init in JSON Michelson', 2, async (done: () => void) => { - const op = await Tezos.wallet.originate({ - code: miStr, - init: { prim: 'Pair', args: [{ int: '0' }, { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }] } - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - }); - - test('Originates a contract having UNPAIR with code in Michelson and storage', 2, async (done: () => void) => { - const op = await Tezos.wallet.originate({ - code: miStr, - storage: { - 0: '0', - 1: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' - } - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - }); - - test('Originates a contract having UNPAIR with code in JSON Michelson and init in Michelson', 2, async (done: () => void) => { - const op = await Tezos.wallet.originate({ - code: miObject, - init: '(Pair 0 "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn")' - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - }); - - test('Originates a contract having UNPAIR with code and init in JSON Michelson', 2, async (done: () => void) => { - const op = await Tezos.wallet.originate({ - code: miObject, - init: { prim: 'Pair', args: [{ int: '0' }, { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }] } - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - }); - - test('Originates a contract having UNPAIR with code in JSON Michelson and storage', 2, async (done: () => void) => { - const op = await Tezos.wallet.originate({ - code: miObject, - storage: { - 0: '0', - 1: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' - } - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - - const contract = await op.contract(); - - const code: any = contract.script.code.find((x: any) => x.prim === 'code'); - const instUnpair = code.args[0].find((x: any) => x.prim === 'UNPAIR'); - - expect(instUnpair).toBeDefined(); - done(); - }); - }); -}); diff --git a/integration-tests/wallet-originate-contract-with-bool.spec.ts b/integration-tests/wallet-originate-contract-with-bool.spec.ts deleted file mode 100644 index 9b2e1d4e31..0000000000 --- a/integration-tests/wallet-originate-contract-with-bool.spec.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { CONFIGS } from "./config"; -import { booleanCode } from "./data/boolean_parameter"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Originate contract and set bool prop on init and via call using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('originates a wallet contract with bool storage init to true then sets to false', async (done) => { - const op = await Tezos.wallet.originate({ - balance: "1", - code: booleanCode, - storage: true, - }).send(); - await op.confirmation() - expect(op.opHash).toBeDefined(); - expect(op.status).toBeTruthy - const contract = await op.contract(); - - expect(await contract.storage()).toBeTruthy(); - - const opMethod = await contract.methods.setBool(false).send(); - - await opMethod.confirmation(); - expect(op.opHash).toBeDefined(); - - expect(await contract.storage()).toBeFalsy(); - done(); - }); - }); -}) diff --git a/integration-tests/wallet-originate-contract-with-sapling.spec.ts b/integration-tests/wallet-originate-contract-with-sapling.spec.ts deleted file mode 100644 index f8fdead10c..0000000000 --- a/integration-tests/wallet-originate-contract-with-sapling.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { CONFIGS } from "./config"; -import { rpcContractResponse, rpcContractResponse2, rpcContractResponse4 } from '../packages/taquito-michelson-encoder/data/sample19_sapling'; -import { Protocols } from "@taquito/taquito"; - -CONFIGS().forEach(({ lib, rpc, protocol, setup, }) => { - const Tezos = lib; - - const edonet = (protocol === Protocols.PtEdo2Zk) ? test : test.skip; - - describe(`Test origination of contracts made with wallet api with sapling using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup(); - done() - }) - - edonet('Originates a contract made with wallet api having an empty sapling state in its storage', async (done) => { - const op = await Tezos.wallet.originate({ - code: rpcContractResponse.script.code, - init: `{}` // empty sapling state - }).send(); - - await op.confirmation(); - expect(op.opHash).toBeDefined(); - - done(); - }); - - edonet('Originates a contract made with wallet api with sapling states in its storage', async (done) => { - const op = await Tezos.wallet.originate({ - code: rpcContractResponse2.script.code, - init: `(Pair 0 {} {})` - }).send(); - await op.confirmation(); - expect(op.opHash).toBeDefined(); - done(); - }); - - edonet('Originates a contract made with wallet api with sapling states in its storage and init in JSON', async (done) => { - const op = await Tezos.wallet.originate({ - code: rpcContractResponse4.script.code, - init: { prim: 'Pair', args: [ [], [] ] } - }).send(); - await op.confirmation(); - expect(op.opHash).toBeDefined(); - expect(op.isInCurrentBranch).toBeTruthy; - done(); - }); - - }); -}) \ No newline at end of file diff --git a/integration-tests/wallet-originate-invalid-string.spec.ts b/integration-tests/wallet-originate-invalid-string.spec.ts deleted file mode 100644 index 0d8e42fbd1..0000000000 --- a/integration-tests/wallet-originate-invalid-string.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Protocols } from "@taquito/taquito"; -import { CONFIGS } from "./config"; - -CONFIGS().forEach(({ lib, rpc, setup, protocol }) => { - const Tezos = lib; - describe(`Test invalid data for origination using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('wallet contract fails because non-ascii in init data', async (done) => { - expect.assertions(1); - try { - await Tezos.wallet.originate({ - balance: "1", - code: `parameter string; - storage string; - code {CAR; - PUSH string "Hello "; - CONCAT; - NIL operation; PAIR}; - `, - init: `"Copyright ©"` - }).send() - } catch (ex) { - if (protocol === Protocols.PtEdo2Zk) { - expect(ex).toEqual(expect.objectContaining({ message: expect.stringContaining('michelson_v1.invalid_syntactic_constant') })) - } else if (protocol === Protocols.PsFLorena) { - expect(ex).toEqual(expect.objectContaining({ message: expect.stringContaining('invalid_syntactic_constant') })) - } else { - expect(ex).toEqual(expect.objectContaining({ message: expect.stringContaining('invalid_constant') })) - } - } - done(); - }); - }); -}) diff --git a/integration-tests/wallet-originate-token-contract.spec.ts b/integration-tests/wallet-originate-token-contract.spec.ts deleted file mode 100644 index ad10116a96..0000000000 --- a/integration-tests/wallet-originate-token-contract.spec.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CONFIGS } from "./config"; -import { tokenCode, tokenInit } from "./data/tokens"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - const test = require('jest-retries'); - - describe(`Test origination of a token contract using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - test('originates a token contract made from wallet api and mints some tokens',2, async (done: () => void) => { - // TODO: Fails when using ephemeral keys - const op = await Tezos.wallet.originate({ - balance: "1", - code: tokenCode, - init: tokenInit(await Tezos.signer.publicKeyHash()), - }).send() - await op.confirmation() - expect(op.opHash).toBeDefined(); - - const contract = await op.contract(); - const opMethod = await contract.methods.mint(await Tezos.signer.publicKeyHash(), 100).send(); - - await opMethod.confirmation(); - expect(op.opHash).toBeDefined(); - done(); - }); - }); -}) diff --git a/integration-tests/wallet-originate-vote-contract.spec.ts b/integration-tests/wallet-originate-vote-contract.spec.ts deleted file mode 100644 index 2331de1383..0000000000 --- a/integration-tests/wallet-originate-vote-contract.spec.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { CONFIGS } from "./config"; -import { voteSample } from "./data/vote-contract"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - const test = require('jest-retries'); - describe(`Originate a voting contract using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - test('originates a voting contract made with wallet api and inits the storage', 2, async (done: () => void) => { - // TODO: probably remove this as very expensive - const op = await Tezos.wallet.originate({ - balance: "1", - code: voteSample, - storage: { - mgr1: { - addr: await Tezos.signer.publicKeyHash(), - key: null, - }, - mgr2: { - addr: await Tezos.signer.publicKeyHash(), - key: await Tezos.signer.publicKeyHash(), - }, - } - }).send() - await op.confirmation() - expect(op.opHash).toBeDefined(); - expect(op.operationResults).toBeDefined(); - done(); - }); - }); -}) diff --git a/integration-tests/wallet-origination-wrong-order-code-properties.spec.ts b/integration-tests/wallet-origination-wrong-order-code-properties.spec.ts deleted file mode 100644 index f2e190f2d5..0000000000 --- a/integration-tests/wallet-origination-wrong-order-code-properties.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { CONFIGS } from "./config"; -import { smartpySample } from "./data/smartpy-example-contract"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Originate contract with code properties in atypical order : ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('originates a wallet api contract despite the code storage,parameter,code props are in wrong order', async (done) => { - const op = await Tezos.wallet.originate({ - balance: "1", - code: smartpySample, - storage: 0, - }).send(); - await op.confirmation() - expect(op.opHash).toBeDefined(); - done(); - }); - }); -}) diff --git a/integration-tests/wallet-pair-as-key.spec.ts b/integration-tests/wallet-pair-as-key.spec.ts deleted file mode 100644 index 9237588ece..0000000000 --- a/integration-tests/wallet-pair-as-key.spec.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { CONFIGS } from "./config"; -import { noAnnotCode, noAnnotInit } from "./data/token_without_annotation"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Test contract made from wallet api with no annotations calling methods by index using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Test contract made from wallet api with no annotations for methods', async (done) => { - // Constants to replace annotations - const ACCOUNTS = '0'; - const BALANCE = '0'; - const ALLOWANCES = '1'; - const TRANSFER = '0'; - const APPROVE = '2'; - - // Actual tests - - const ACCOUNT1_ADDRESS = await Tezos.signer.publicKeyHash() - const ACCOUNT2_ADDRESS = 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu' - - // Originate a contract with a known state - const op = await Tezos.wallet.originate({ - balance: "1", - code: noAnnotCode, - init: noAnnotInit(await Tezos.signer.publicKeyHash()) - }).send(); - const contract = await op.contract() - - // Make a transfer - const operation = await contract.methods[TRANSFER](ACCOUNT1_ADDRESS, ACCOUNT2_ADDRESS, "1").send(); - await operation.confirmation(); - expect(operation.status).toBeTruthy - - // Verify that the transfer was done as expected - // file deepcode ignore no-any: any is good enough - const storage = await contract.storage<any>() - let account1 = await storage[ACCOUNTS].get(ACCOUNT1_ADDRESS) - expect(account1[BALANCE].toString()).toEqual('16') - - const account2 = await storage[ACCOUNTS].get(ACCOUNT2_ADDRESS) - expect(account2[BALANCE].toString()).toEqual('1') - - // Approve - const operation2 = await contract.methods[APPROVE](ACCOUNT2_ADDRESS, "1").send(); - await operation2.confirmation(); - expect(operation.status).toBeTruthy - - // Verify that the allowance was done as expected - account1 = await storage[ACCOUNTS].get(ACCOUNT1_ADDRESS) - expect(account1[ALLOWANCES].get(ACCOUNT2_ADDRESS).toString()).toEqual('1') - done(); - }) - }); -}) diff --git a/integration-tests/wallet-register-delegate.spec.ts b/integration-tests/wallet-register-delegate.spec.ts deleted file mode 100644 index 675ca7776b..0000000000 --- a/integration-tests/wallet-register-delegate.spec.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { CONFIGS } from './config'; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Test register delegate: ${rpc}`, () => { - beforeEach(async (done) => { - await setup(true); - done(); - }); - it('registers the current address as delegate', async (done) => { - try { - const pkh = await Tezos.wallet.pkh(); - const op = await Tezos.wallet.registerDelegate().send(); - - const conf1 = await op.confirmation(); - const currentConf1 = await op.getCurrentConfirmation(); - expect(currentConf1).toEqual(1); - expect(conf1).toEqual( - expect.objectContaining({ - expectedConfirmation: 1, - currentConfirmation: 1, - completed: true - }) - ); - expect(op.opHash).toBeDefined(); - - const account = await Tezos.rpc.getDelegate(pkh); - expect(account).toEqual(pkh); - } catch (ex) { - //When running tests more than one time with the same faucet key, the account is already delegated to the given delegate - expect(ex.message).toMatch('delegate.unchanged'); - } - done(); - }); - }); -}); diff --git a/integration-tests/wallet-set-delegate-auto-estimate.spec.ts b/integration-tests/wallet-set-delegate-auto-estimate.spec.ts deleted file mode 100644 index 1574db64a3..0000000000 --- a/integration-tests/wallet-set-delegate-auto-estimate.spec.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { CONFIGS } from "./config"; - -CONFIGS().forEach(({ lib, rpc, setup, knownBaker }) => { - const Tezos = lib; - describe(`Test account delegation with estimation using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup(true) - done() - }) - it('delegates account to known baker with automatic estimate', async (done) => { - const delegate = knownBaker - try { - const op = await Tezos.wallet.setDelegate({ - delegate, - }).send() - await op.confirmation() - expect(op.opHash).toBeDefined(); - - const account = await Tezos.rpc.getDelegate(await Tezos.signer.publicKeyHash()) - expect(account).toEqual(delegate) - } catch (ex) { - //When running tests more than one time with the same faucet key, the account is already delegated to the given delegate - expect(ex.message).toMatch('delegate.unchanged') - } - done(); - }); - }); -}) diff --git a/integration-tests/wallet-simple-origination.spec.ts b/integration-tests/wallet-simple-origination.spec.ts deleted file mode 100644 index f7ad243aef..0000000000 --- a/integration-tests/wallet-simple-origination.spec.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { CONFIGS } from "./config"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Originating a contract from wallet api using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Simple origination scenario', async (done) => { - const op = await Tezos.wallet.originate({ - balance: "1", - code: `parameter string; - storage string; - code {CAR; - PUSH string "Hello "; - CONCAT; - NIL operation; PAIR}; - `, - init: `"test"` - }).send(); - await op.confirmation() - expect(op.opHash).toBeDefined(); - done(); - }); - }); -}) diff --git a/integration-tests/wallet-tx-wait-2-confirmations.spec.ts b/integration-tests/wallet-tx-wait-2-confirmations.spec.ts deleted file mode 100644 index ae1505d2de..0000000000 --- a/integration-tests/wallet-tx-wait-2-confirmations.spec.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { CONFIGS } from "./config"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Test tx and waiting for 2 confirmations using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('transfers 2 tez and waits for 2 confirmations with wallet', async (done) => { - const op = await Tezos.wallet.transfer({ to: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', amount: 2 }).send(); - await op.confirmation() - const [first, second] = await Promise.all([op.confirmation(), op.confirmation(2)]) - expect(second.currentConfirmation - first.currentConfirmation).toEqual(1) - // Retrying another time should be instant - const [first2, second2] = await Promise.all([op.confirmation(), op.confirmation(2)]) - expect(second2.expectedConfirmation! - first2.expectedConfirmation!).toEqual(1) - done(); - }) - }); -}) diff --git a/integration-tests/wallet-unit-as-param.spec.ts b/integration-tests/wallet-unit-as-param.spec.ts deleted file mode 100644 index 8f7b49db9b..0000000000 --- a/integration-tests/wallet-unit-as-param.spec.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { CONFIGS } from "./config"; -import { depositContractCode, depositContractStorage } from "./data/deposit_contract"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - const test = require('jest-retries'); - describe(`Test contract made with wallet API with unit as params using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - test('originates contract made with wallet API and calls deposit method with unit param', 2, async (done: () => void) => { - const op = await Tezos.wallet.originate({ - balance: "1", - code: depositContractCode, - init: depositContractStorage - }).send(); - const contract = await op.contract() - - const operation = await contract.methods.deposit(null).send({ amount: 1, }); - await operation.confirmation(); - expect(operation.status).toBeTruthy - done(); - }) - }); -}) diff --git a/integration-tests/wallet-with-bad-code.spec.ts b/integration-tests/wallet-with-bad-code.spec.ts deleted file mode 100644 index 775a31ea5d..0000000000 --- a/integration-tests/wallet-with-bad-code.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { CONFIGS } from "./config"; -import { badCode } from "./data/badCode"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Test contract made from wallet API failing with bad code using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('fails with a 400 RPC response', async (done) => { - await expect(Tezos.wallet.originate({ - balance: "1", - code: badCode, - init: { prim: "Unit" } - }).send()).rejects.toMatchObject({ - status: 400, - }) - done(); - }) - }); -}) diff --git a/integration-tests/wallet-with-bigmap-init.spec.ts b/integration-tests/wallet-with-bigmap-init.spec.ts deleted file mode 100644 index 63f8c8099b..0000000000 --- a/integration-tests/wallet-with-bigmap-init.spec.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { CONFIGS } from "./config"; -import { MichelsonMap } from "@taquito/taquito"; -import { tokenBigmapCode } from "./data/token_bigmap"; - -CONFIGS().forEach(({ lib, rpc, setup }) => { - const Tezos = lib; - describe(`Token with big map and with initial data using: ${rpc}`, () => { - - beforeEach(async (done) => { - await setup() - done() - }) - it('Originate token contract made from wallet API with big map and with initialize storage/bigmaps', async (done) => { - const addr = await Tezos.signer.publicKeyHash(); - const initialStorage = { - owner: addr, - accounts: MichelsonMap.fromLiteral({ - [addr]: { - balance: "1", - allowances: MichelsonMap.fromLiteral({ - [addr]: "1" - }) - }, - "tz2Ch1abG7FNiibmV26Uzgdsnfni9XGrk5wD": { - balance: "1", - allowances: MichelsonMap.fromLiteral({ - [addr]: "1" - }) - }, - "tz3YjfexGakCDeCseXFUpcXPSAN9xHxE9TH2": { - balance: "2", - allowances: MichelsonMap.fromLiteral({ - KT1CDEg2oY3VfMa1neB7hK5LoVMButvivKYv: "1", - [addr]: "1" - }) - }, - "tz1ccqAEwfPgeoipnXtjAv1iucrpQv3DFmmS": { - balance: "1", - allowances: MichelsonMap.fromLiteral({ - [addr]: "1" - }) - }, - "KT1CDEg2oY3VfMa1neB7hK5LoVMButvivKYv": { - balance: "1", - allowances: MichelsonMap.fromLiteral({ - [addr]: "1" - }) - } - }), - totalSupply: "6" - } - - const op = await Tezos.wallet.originate({ - balance: "1", - code: tokenBigmapCode, - storage: initialStorage - }).send(); - await op.confirmation() - expect(op.opHash).toBeDefined(); - expect(op.status).toBeTruthy - const contract = await op.contract() - // file deepcode ignore no-any: any is good enough - const storage: any = await contract.storage() - const got = (await storage.accounts.get(addr) ).allowances.get(addr).toString() - const want = (initialStorage.accounts.get(addr) as {balance: string, allowances: MichelsonMap<string, string> }).allowances.get(addr) - expect(got).toEqual(want) - done(); - }); - }); -}) diff --git a/lerna.json b/lerna.json index 8588ce0e23..e7c2e56cec 100644 --- a/lerna.json +++ b/lerna.json @@ -4,8 +4,7 @@ "example", "integration-tests", "packages/*", - "packages/taquito-michel-codec/pack-test-tool", "website" ], - "version": "9.0.0" + "version": "7.1.0-preview.1" } diff --git a/package-lock.json b/package-lock.json index 346d4ee1be..9a63d5f730 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3,47 +3,79 @@ "lockfileVersion": 1, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/compat-data": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.1.tgz", + "integrity": "sha512-CHvCj7So7iCkGKPRFUfryXIkU2gSBw7VSZFYLsqVhrS47269VK2Hfi9S/YcublPMW8k1u2bQBlbDruoQEm4fgw==", "dev": true, "requires": { - "@babel/highlight": "^7.10.4" + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz", + "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helpers": "^7.5.5", + "@babel/parser": "^7.5.5", + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5", + "convert-source-map": "^1.1.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", + "json5": "^2.1.0", + "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" + } + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" } }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -51,370 +83,962 @@ "dev": true }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true } } }, "@babel/generator": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", - "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz", + "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==", "dev": true, "requires": { - "@babel/types": "^7.12.5", + "@babel/types": "^7.5.5", "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.7" + "lodash": "^4.17.13", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + } } }, - "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "@babel/helper-annotate-as-pure": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz", + "integrity": "sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==", "dev": true, "requires": { - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz", - "integrity": "sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz", + "integrity": "sha512-cQpVq48EkYxUU0xozpGCLla3wlkdRRqLWu1ksFMXA9CM5KQmyyRpSEsYXbao7JUkOw/tAaYKCaYyZq6HOFYtyw==", "dev": true, "requires": { - "@babel/types": "^7.12.7" + "@babel/helper-explode-assignable-expression": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", - "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", + "@babel/helper-compilation-targets": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz", + "integrity": "sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/compat-data": "^7.10.1", + "browserslist": "^4.12.0", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, - "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "@babel/helper-create-class-features-plugin": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz", + "integrity": "sha512-5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ==", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-member-expression-to-functions": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, - "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz", + "integrity": "sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==", "dev": true, "requires": { - "@babel/types": "^7.11.0" + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-regex": "^7.10.1", + "regexpu-core": "^4.7.0" } }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "@babel/helper-define-map": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz", + "integrity": "sha512-+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg==", "dev": true, "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/helper-function-name": "^7.10.1", + "@babel/types": "^7.10.1", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "@babel/helper-explode-assignable-expression": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz", + "integrity": "sha512-vcUJ3cDjLjvkKzt6rHrl767FeE7pMEYfPanq5L16GRtrXIoznc0HykNW2aEYkcnP76P0isoqJ34dDMFZwzEpJg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" }, "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==", + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@babel/highlight": "^7.10.1" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "@babel/generator": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@babel/types": "^7.10.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.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==", + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "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==", + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/traverse": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" } + }, + "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 } } }, - "@babel/parser": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz", - "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==", - "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==", + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.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==", + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/types": "^7.0.0" } }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "@babel/helper-hoist-variables": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz", + "integrity": "sha512-vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, - "@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==", + "@babel/helper-member-expression-to-functions": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz", + "integrity": "sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g==", "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-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/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, - "@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==", + "@babel/helper-module-imports": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz", + "integrity": "sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.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/helper-module-transforms": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz", + "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.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==", + "@babel/helper-optimise-call-expression": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz", + "integrity": "sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true }, - "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "@babel/helper-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz", + "integrity": "sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.4" + "lodash": "^4.17.13" } }, - "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "@babel/helper-remap-async-to-generator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz", + "integrity": "sha512-RfX1P8HqsfgmJ6CwaXGKMAqbYdlleqglvVtht0HGPMSsy2V6MqLlOJVF/0Qyb/m2ZCi2z3q3+s6Pv7R/dQuZ6A==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-wrap-function": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/generator": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/traverse": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "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 + } } }, - "@babel/traverse": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz", - "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==", + "@babel/helper-replace-supers": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz", + "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==", "dev": true, "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "@babel/helper-member-expression-to-functions": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" }, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", "dev": true, "requires": { - "ms": "2.1.2" + "@babel/highlight": "^7.10.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==", + "@babel/generator": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/traverse": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -423,2370 +1047,2343 @@ } } }, - "@babel/types": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz", - "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==", + "@babel/helper-simple-access": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz", + "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "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 - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", "dev": true, "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" + "@babel/types": "^7.4.4" } }, - "@commitlint/cli": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-11.0.0.tgz", - "integrity": "sha512-YWZWg1DuqqO5Zjh7vUOeSX76vm0FFyz4y0cpGMFhrhvUi5unc4IVfCXZ6337R9zxuBtmveiRuuhQqnRRer+13g==", + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz", + "integrity": "sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==", "dev": true, "requires": { - "@babel/runtime": "^7.11.2", - "@commitlint/format": "^11.0.0", - "@commitlint/lint": "^11.0.0", - "@commitlint/load": "^11.0.0", - "@commitlint/read": "^11.0.0", - "chalk": "4.1.0", - "core-js": "^3.6.1", - "get-stdin": "8.0.0", - "lodash": "^4.17.19", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", - "yargs": "^15.1.0" + "@babel/helper-function-name": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/traverse": "^7.10.1", + "@babel/types": "^7.10.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.1" + } + }, + "@babel/generator": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.2", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/traverse": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", + "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/generator": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "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 + } } }, - "@commitlint/config-conventional": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-11.0.0.tgz", - "integrity": "sha512-SNDRsb5gLuDd2PL83yCOQX6pE7gevC79UPFx+GLbLfw6jGnnbO9/tlL76MLD8MOViqGbo7ZicjChO9Gn+7tHhA==", + "@babel/helpers": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz", + "integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==", "dev": true, "requires": { - "conventional-changelog-conventionalcommits": "^4.3.1" + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" } }, - "@commitlint/ensure": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-11.0.0.tgz", - "integrity": "sha512-/T4tjseSwlirKZdnx4AuICMNNlFvRyPQimbZIOYujp9DSO6XRtOy9NrmvWujwHsq9F5Wb80QWi4WMW6HMaENug==", + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", "dev": true, "requires": { - "@commitlint/types": "^11.0.0", - "lodash": "^4.17.19" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "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 + } } }, - "@commitlint/execute-rule": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-11.0.0.tgz", - "integrity": "sha512-g01p1g4BmYlZ2+tdotCavrMunnPFPhTzG1ZiLKTCYrooHRbmvqo42ZZn4QMStUEIcn+jfLb6BRZX3JzIwA1ezQ==", + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", + "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", "dev": true }, - "@commitlint/format": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-11.0.0.tgz", - "integrity": "sha512-bpBLWmG0wfZH/svzqD1hsGTpm79TKJWcf6EXZllh2J/LSSYKxGlv967lpw0hNojme0sZd4a/97R3qA2QHWWSLg==", + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz", + "integrity": "sha512-vzZE12ZTdB336POZjmpblWfNNRpMSua45EYnRigE2XsZxcXcIyly2ixnTJasJE4Zq3U7t2d8rRF7XRUuzHxbOw==", "dev": true, "requires": { - "@commitlint/types": "^11.0.0", - "chalk": "^4.0.0" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-remap-async-to-generator": "^7.10.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@commitlint/is-ignored": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-11.0.0.tgz", - "integrity": "sha512-VLHOUBN+sOlkYC4tGuzE41yNPO2w09sQnOpfS+pSPnBFkNUUHawEuA44PLHtDvQgVuYrMAmSWFQpWabMoP5/Xg==", + "@babel/plugin-proposal-class-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz", + "integrity": "sha512-sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==", "dev": true, "requires": { - "@commitlint/types": "^11.0.0", - "semver": "7.3.2" + "@babel/helper-create-class-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@commitlint/lint": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-11.0.0.tgz", - "integrity": "sha512-Q8IIqGIHfwKr8ecVZyYh6NtXFmKw4YSEWEr2GJTB/fTZXgaOGtGFZDWOesCZllQ63f1s/oWJYtVv5RAEuwN8BQ==", + "@babel/plugin-proposal-dynamic-import": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz", + "integrity": "sha512-Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==", "dev": true, "requires": { - "@commitlint/is-ignored": "^11.0.0", - "@commitlint/parse": "^11.0.0", - "@commitlint/rules": "^11.0.0", - "@commitlint/types": "^11.0.0" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@commitlint/load": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-11.0.0.tgz", - "integrity": "sha512-t5ZBrtgvgCwPfxmG811FCp39/o3SJ7L+SNsxFL92OR4WQxPcu6c8taD0CG2lzOHGuRyuMxZ7ps3EbngT2WpiCg==", + "@babel/plugin-proposal-json-strings": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz", + "integrity": "sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==", "dev": true, "requires": { - "@commitlint/execute-rule": "^11.0.0", - "@commitlint/resolve-extends": "^11.0.0", - "@commitlint/types": "^11.0.0", - "chalk": "4.1.0", - "cosmiconfig": "^7.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-json-strings": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@commitlint/message": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-11.0.0.tgz", - "integrity": "sha512-01ObK/18JL7PEIE3dBRtoMmU6S3ecPYDTQWWhcO+ErA3Ai0KDYqV5VWWEijdcVafNpdeUNrEMigRkxXHQLbyJA==", - "dev": true - }, - "@commitlint/parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-11.0.0.tgz", - "integrity": "sha512-DekKQAIYWAXIcyAZ6/PDBJylWJ1BROTfDIzr9PMVxZRxBPc1gW2TG8fLgjZfBP5mc0cuthPkVi91KQQKGri/7A==", + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz", + "integrity": "sha512-56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==", "dev": true, "requires": { - "conventional-changelog-angular": "^5.0.0", - "conventional-commits-parser": "^3.0.0" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@commitlint/read": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-11.0.0.tgz", - "integrity": "sha512-37V0V91GSv0aDzMzJioKpCoZw6l0shk7+tRG8RkW1GfZzUIytdg3XqJmM+IaIYpaop0m6BbZtfq+idzUwJnw7g==", + "@babel/plugin-proposal-numeric-separator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz", + "integrity": "sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==", "dev": true, "requires": { - "@commitlint/top-level": "^11.0.0", - "fs-extra": "^9.0.0", - "git-raw-commits": "^2.0.0" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-numeric-separator": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz", + "integrity": "sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + } + } } }, - "@commitlint/resolve-extends": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-11.0.0.tgz", - "integrity": "sha512-WinU6Uv6L7HDGLqn/To13KM1CWvZ09VHZqryqxXa1OY+EvJkfU734CwnOEeNlSCK7FVLrB4kmodLJtL1dkEpXw==", + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz", + "integrity": "sha512-Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ==", "dev": true, "requires": { - "import-fresh": "^3.0.0", - "lodash": "^4.17.19", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@commitlint/rules": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-11.0.0.tgz", - "integrity": "sha512-2hD9y9Ep5ZfoNxDDPkQadd2jJeocrwC4vJ98I0g8pNYn/W8hS9+/FuNpolREHN8PhmexXbkjrwyQrWbuC0DVaA==", + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz", + "integrity": "sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==", "dev": true, "requires": { - "@commitlint/ensure": "^11.0.0", - "@commitlint/message": "^11.0.0", - "@commitlint/to-lines": "^11.0.0", - "@commitlint/types": "^11.0.0" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@commitlint/to-lines": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-11.0.0.tgz", - "integrity": "sha512-TIDTB0Y23jlCNubDROUVokbJk6860idYB5cZkLWcRS9tlb6YSoeLn1NLafPlrhhkkkZzTYnlKYzCVrBNVes1iw==", - "dev": true + "@babel/plugin-proposal-optional-chaining": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz", + "integrity": "sha512-dqQj475q8+/avvok72CF3AOSV/SGEcH29zT5hhohqqvvZ2+boQoOr7iGldBG5YXTO2qgCgc2B3WvVLUdbeMlGA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } + } }, - "@commitlint/top-level": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-11.0.0.tgz", - "integrity": "sha512-O0nFU8o+Ws+py5pfMQIuyxOtfR/kwtr5ybqTvR+C2lUPer2x6lnQU+OnfD7hPM+A+COIUZWx10mYQvkR3MmtAA==", + "@babel/plugin-proposal-private-methods": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz", + "integrity": "sha512-RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==", "dev": true, "requires": { - "find-up": "^5.0.0" + "@babel/helper-create-class-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.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": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true } } }, - "@commitlint/types": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz", - "integrity": "sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz", + "integrity": "sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==", "dev": true, "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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 - }, - "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==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true } } }, - "@evocateur/libnpmaccess": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz", - "integrity": "sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg==", + "@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": { - "@evocateur/npm-registry-fetch": "^4.0.0", - "aproba": "^2.0.0", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.0.0", - "npm-package-arg": "^6.1.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "dependencies": { - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true } } }, - "@evocateur/libnpmpublish": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz", - "integrity": "sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg==", + "@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": { - "@evocateur/npm-registry-fetch": "^4.0.0", - "aproba": "^2.0.0", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.0.0", - "lodash.clonedeep": "^4.5.0", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "semver": "^5.5.1", - "ssri": "^6.0.1" + "@babel/helper-plugin-utils": "^7.8.0" }, "dependencies": { - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true } } }, - "@evocateur/npm-registry-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz", - "integrity": "sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g==", + "@babel/plugin-syntax-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", "dev": true, "requires": { - "JSONStream": "^1.3.4", - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0", - "safe-buffer": "^5.1.2" + "@babel/helper-plugin-utils": "^7.10.4" }, "dependencies": { - "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" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true } } }, - "@evocateur/pacote": { - "version": "9.6.5", - "resolved": "https://registry.npmjs.org/@evocateur/pacote/-/pacote-9.6.5.tgz", - "integrity": "sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w==", + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { - "@evocateur/npm-registry-fetch": "^4.0.0", - "bluebird": "^3.5.3", - "cacache": "^12.0.3", - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.1.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "minimatch": "^3.0.4", - "minipass": "^2.3.5", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.5.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.4.4", - "npm-pick-manifest": "^3.0.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.1", - "rimraf": "^2.6.3", - "safe-buffer": "^5.2.0", - "semver": "^5.7.0", - "ssri": "^6.0.1", - "tar": "^4.4.10", - "unique-filename": "^1.1.1", - "which": "^1.3.1" + "@babel/helper-plugin-utils": "^7.8.0" }, "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "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" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "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==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true } } }, - "@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==", + "@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": { - "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" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true - }, - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "@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": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "@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": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "@babel/helper-plugin-utils": "^7.10.4" }, "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "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==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + } + } + }, + "@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" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true } } }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "@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": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + } } }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "@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": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "@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": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "@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": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true } } }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "@babel/plugin-syntax-top-level-await": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz", + "integrity": "sha512-hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==", "dev": true, "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true } } }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz", + "integrity": "sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz", + "integrity": "sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==", "dev": true, "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-remap-async-to-generator": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz", + "integrity": "sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz", + "integrity": "sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz", + "integrity": "sha512-P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-define-map": "^7.10.1", + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-optimise-call-expression": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1", + "@babel/helper-split-export-declaration": "^7.10.1", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "@babel/highlight": "^7.10.1" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.1" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "@babel/helper-split-export-declaration": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", + "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "@babel/types": "^7.10.1" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", "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==", + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", "dev": true, "requires": { - "is-number": "^7.0.0" + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", + "dev": true + }, + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" + } + }, + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" } } } }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "@babel/plugin-transform-computed-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz", + "integrity": "sha512-mqSrGjp3IefMsXIenBfGcPXxJxweQe2hEIwMQvjtiDQ9b1IBvDUjkAtV/HMXX47/vXf14qDNedXsIiNd1FmkaQ==", "dev": true, "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@lerna/add": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.21.0.tgz", - "integrity": "sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A==", + "@babel/plugin-transform-destructuring": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz", + "integrity": "sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==", "dev": true, "requires": { - "@evocateur/pacote": "^9.6.3", - "@lerna/bootstrap": "3.21.0", - "@lerna/command": "3.21.0", - "@lerna/filter-options": "3.20.0", - "@lerna/npm-conf": "3.16.0", - "@lerna/validation-error": "3.13.0", - "dedent": "^0.7.0", - "npm-package-arg": "^6.1.0", - "p-map": "^2.1.0", - "semver": "^6.2.0" + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true } } }, - "@lerna/bootstrap": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.21.0.tgz", - "integrity": "sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw==", + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz", + "integrity": "sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==", "dev": true, "requires": { - "@lerna/command": "3.21.0", - "@lerna/filter-options": "3.20.0", - "@lerna/has-npm-version": "3.16.5", - "@lerna/npm-install": "3.16.5", - "@lerna/package-graph": "3.18.5", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/rimraf-dir": "3.16.5", - "@lerna/run-lifecycle": "3.16.2", - "@lerna/run-topologically": "3.18.5", - "@lerna/symlink-binary": "3.17.0", - "@lerna/symlink-dependencies": "3.17.0", - "@lerna/validation-error": "3.13.0", - "dedent": "^0.7.0", - "get-port": "^4.2.0", - "multimatch": "^3.0.0", - "npm-package-arg": "^6.1.0", - "npmlog": "^4.1.2", - "p-finally": "^1.0.0", - "p-map": "^2.1.0", - "p-map-series": "^1.0.0", - "p-waterfall": "^1.0.0", - "read-package-tree": "^5.1.6", - "semver": "^6.2.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true } } }, - "@lerna/changed": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.21.0.tgz", - "integrity": "sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw==", - "dev": true, - "requires": { - "@lerna/collect-updates": "3.20.0", - "@lerna/command": "3.21.0", - "@lerna/listable": "3.18.5", - "@lerna/output": "3.13.0" - } - }, - "@lerna/check-working-tree": { - "version": "3.16.5", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz", - "integrity": "sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ==", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz", + "integrity": "sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==", "dev": true, "requires": { - "@lerna/collect-uncommitted": "3.16.5", - "@lerna/describe-ref": "3.16.5", - "@lerna/validation-error": "3.13.0" + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@lerna/child-process": { - "version": "3.16.5", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz", - "integrity": "sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz", + "integrity": "sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==", "dev": true, "requires": { - "chalk": "^2.3.1", - "execa": "^1.0.0", - "strong-log-transformer": "^2.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" }, "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "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" - } } } }, - "@lerna/clean": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.21.0.tgz", - "integrity": "sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg==", + "@babel/plugin-transform-for-of": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz", + "integrity": "sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==", "dev": true, "requires": { - "@lerna/command": "3.21.0", - "@lerna/filter-options": "3.20.0", - "@lerna/prompt": "3.18.5", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/rimraf-dir": "3.16.5", - "p-map": "^2.1.0", - "p-map-series": "^1.0.0", - "p-waterfall": "^1.0.0" + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@lerna/cli": { - "version": "3.18.5", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-3.18.5.tgz", - "integrity": "sha512-erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA==", + "@babel/plugin-transform-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz", + "integrity": "sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==", "dev": true, "requires": { - "@lerna/global-options": "3.13.0", - "dedent": "^0.7.0", - "npmlog": "^4.1.2", - "yargs": "^14.2.2" + "@babel/helper-function-name": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "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==", + "@babel/code-frame": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", + "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "@babel/highlight": "^7.10.1" } }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "@babel/helper-function-name": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", + "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/template": "^7.10.1", + "@babel/types": "^7.10.1" } }, - "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==", + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", "dev": true, "requires": { - "color-name": "1.1.3" + "@babel/types": "^7.10.1" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", "dev": true }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "@babel/highlight": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", + "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "@babel/helper-validator-identifier": "^7.10.1", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "@babel/parser": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", - "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", + "@babel/template": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", + "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", "dev": true, "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" + "@babel/code-frame": "^7.10.1", + "@babel/parser": "^7.10.1", + "@babel/types": "^7.10.1" } }, - "yargs-parser": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", - "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" } } } }, - "@lerna/collect-uncommitted": { - "version": "3.16.5", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz", - "integrity": "sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg==", + "@babel/plugin-transform-literals": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz", + "integrity": "sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "chalk": "^2.3.1", - "figgy-pudding": "^3.5.1", - "npmlog": "^4.1.2" + "@babel/helper-plugin-utils": "^7.10.1" }, "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + } + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz", + "integrity": "sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "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" - } } } }, - "@lerna/collect-updates": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.20.0.tgz", - "integrity": "sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q==", + "@babel/plugin-transform-modules-amd": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz", + "integrity": "sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "@lerna/describe-ref": "3.16.5", - "minimatch": "^3.0.4", - "npmlog": "^4.1.2", - "slash": "^2.0.0" + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "babel-plugin-dynamic-import-node": "^2.3.3" }, "dependencies": { - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true } } }, - "@lerna/command": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.21.0.tgz", - "integrity": "sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ==", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz", + "integrity": "sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "@lerna/package-graph": "3.18.5", - "@lerna/project": "3.21.0", - "@lerna/validation-error": "3.13.0", - "@lerna/write-log-file": "3.13.0", - "clone-deep": "^4.0.1", - "dedent": "^0.7.0", - "execa": "^1.0.0", - "is-ci": "^2.0.0", - "npmlog": "^4.1.2" + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-simple-access": "^7.10.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@lerna/conventional-commits": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz", - "integrity": "sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA==", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz", + "integrity": "sha512-ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA==", "dev": true, "requires": { - "@lerna/validation-error": "3.13.0", - "conventional-changelog-angular": "^5.0.3", - "conventional-changelog-core": "^3.1.6", - "conventional-recommended-bump": "^5.0.0", - "fs-extra": "^8.1.0", - "get-stream": "^4.0.0", - "lodash.template": "^4.5.0", - "npm-package-arg": "^6.1.0", - "npmlog": "^4.1.2", - "pify": "^4.0.1", - "semver": "^6.2.0" + "@babel/helper-hoist-variables": "^7.10.1", + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "babel-plugin-dynamic-import-node": "^2.3.3" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true } } }, - "@lerna/create": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.22.0.tgz", - "integrity": "sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw==", + "@babel/plugin-transform-modules-umd": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz", + "integrity": "sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==", "dev": true, "requires": { - "@evocateur/pacote": "^9.6.3", - "@lerna/child-process": "3.16.5", - "@lerna/command": "3.21.0", - "@lerna/npm-conf": "3.16.0", - "@lerna/validation-error": "3.13.0", - "camelcase": "^5.0.0", - "dedent": "^0.7.0", - "fs-extra": "^8.1.0", - "globby": "^9.2.0", - "init-package-json": "^1.10.3", - "npm-package-arg": "^6.1.0", - "p-reduce": "^1.0.0", - "pify": "^4.0.1", - "semver": "^6.2.0", - "slash": "^2.0.0", - "validate-npm-package-license": "^3.0.3", - "validate-npm-package-name": "^3.0.0", - "whatwg-url": "^7.0.0" + "@babel/helper-module-transforms": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + } + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz", + "integrity": "sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + } + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz", + "integrity": "sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-replace-supers": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + } + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz", + "integrity": "sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-get-function-arity": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", + "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", "dev": true, "requires": { - "punycode": "^2.1.0" + "@babel/types": "^7.10.1" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", "dev": true }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "dev": true, "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" } } } }, - "@lerna/create-symlink": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.16.2.tgz", - "integrity": "sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw==", + "@babel/plugin-transform-property-literals": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz", + "integrity": "sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==", "dev": true, "requires": { - "@zkochan/cmd-shim": "^3.1.0", - "fs-extra": "^8.1.0", - "npmlog": "^4.1.2" + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true } } }, - "@lerna/describe-ref": { - "version": "3.16.5", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.16.5.tgz", - "integrity": "sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw==", + "@babel/plugin-transform-regenerator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz", + "integrity": "sha512-B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "npmlog": "^4.1.2" + "regenerator-transform": "^0.14.2" } }, - "@lerna/diff": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.21.0.tgz", - "integrity": "sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw==", + "@babel/plugin-transform-reserved-words": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz", + "integrity": "sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "@lerna/command": "3.21.0", - "@lerna/validation-error": "3.13.0", - "npmlog": "^4.1.2" + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@lerna/exec": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.21.0.tgz", - "integrity": "sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q==", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz", + "integrity": "sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "@lerna/command": "3.21.0", - "@lerna/filter-options": "3.20.0", - "@lerna/profiler": "3.20.0", - "@lerna/run-topologically": "3.18.5", - "@lerna/validation-error": "3.13.0", - "p-map": "^2.1.0" + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@lerna/filter-options": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.20.0.tgz", - "integrity": "sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g==", + "@babel/plugin-transform-spread": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz", + "integrity": "sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==", "dev": true, "requires": { - "@lerna/collect-updates": "3.20.0", - "@lerna/filter-packages": "3.18.0", - "dedent": "^0.7.0", - "figgy-pudding": "^3.5.1", - "npmlog": "^4.1.2" + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@lerna/filter-packages": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.18.0.tgz", - "integrity": "sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ==", + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz", + "integrity": "sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==", "dev": true, "requires": { - "@lerna/validation-error": "3.13.0", - "multimatch": "^3.0.0", - "npmlog": "^4.1.2" + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/helper-regex": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@lerna/get-npm-exec-opts": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz", - "integrity": "sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw==", + "@babel/plugin-transform-template-literals": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz", + "integrity": "sha512-t7B/3MQf5M1T9hPCRG28DNGZUuxAuDqLYS03rJrIk2prj/UV7Z6FOneijhQhnv/Xa039vidXeVbvjK2SK5f7Gg==", "dev": true, "requires": { - "npmlog": "^4.1.2" + "@babel/helper-annotate-as-pure": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@lerna/get-packed": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.16.0.tgz", - "integrity": "sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw==", + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz", + "integrity": "sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==", "dev": true, "requires": { - "fs-extra": "^8.1.0", - "ssri": "^6.0.1", - "tar": "^4.4.8" + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true } } }, - "@lerna/github-client": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.22.0.tgz", - "integrity": "sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg==", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz", + "integrity": "sha512-zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "@octokit/plugin-enterprise-rest": "^6.0.1", - "@octokit/rest": "^16.28.4", - "git-url-parse": "^11.1.2", - "npmlog": "^4.1.2" + "@babel/helper-plugin-utils": "^7.10.1" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + } } }, - "@lerna/gitlab-client": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz", - "integrity": "sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q==", + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz", + "integrity": "sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==", "dev": true, "requires": { - "node-fetch": "^2.5.0", - "npmlog": "^4.1.2", - "whatwg-url": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1" }, "dependencies": { - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", "dev": true - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } } } }, - "@lerna/global-options": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz", - "integrity": "sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==", - "dev": true - }, - "@lerna/has-npm-version": { - "version": "3.16.5", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz", - "integrity": "sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q==", + "@babel/polyfill": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.1.tgz", + "integrity": "sha512-TviueJ4PBW5p48ra8IMtLXVkDucrlOZAIZ+EXqS3Ot4eukHbWiqcn7DcqpA1k5PcKtmJ4Xl9xwdv6yQvvcA+3g==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "semver": "^6.2.0" + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", "dev": true } } }, - "@lerna/import": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.22.0.tgz", - "integrity": "sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg==", - "dev": true, - "requires": { - "@lerna/child-process": "3.16.5", - "@lerna/command": "3.21.0", - "@lerna/prompt": "3.18.5", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/validation-error": "3.13.0", - "dedent": "^0.7.0", - "fs-extra": "^8.1.0", - "p-map-series": "^1.0.0" + "@babel/preset-env": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.2.tgz", + "integrity": "sha512-MjqhX0RZaEgK/KueRzh+3yPSk30oqDKJ5HP5tqTSB1e2gzGS3PLy7K0BIpnp78+0anFuSwOeuCf1zZO7RzRvEA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.10.1", + "@babel/helper-compilation-targets": "^7.10.2", + "@babel/helper-module-imports": "^7.10.1", + "@babel/helper-plugin-utils": "^7.10.1", + "@babel/plugin-proposal-async-generator-functions": "^7.10.1", + "@babel/plugin-proposal-class-properties": "^7.10.1", + "@babel/plugin-proposal-dynamic-import": "^7.10.1", + "@babel/plugin-proposal-json-strings": "^7.10.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", + "@babel/plugin-proposal-numeric-separator": "^7.10.1", + "@babel/plugin-proposal-object-rest-spread": "^7.10.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.1", + "@babel/plugin-proposal-optional-chaining": "^7.10.1", + "@babel/plugin-proposal-private-methods": "^7.10.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.1", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.1", + "@babel/plugin-transform-arrow-functions": "^7.10.1", + "@babel/plugin-transform-async-to-generator": "^7.10.1", + "@babel/plugin-transform-block-scoped-functions": "^7.10.1", + "@babel/plugin-transform-block-scoping": "^7.10.1", + "@babel/plugin-transform-classes": "^7.10.1", + "@babel/plugin-transform-computed-properties": "^7.10.1", + "@babel/plugin-transform-destructuring": "^7.10.1", + "@babel/plugin-transform-dotall-regex": "^7.10.1", + "@babel/plugin-transform-duplicate-keys": "^7.10.1", + "@babel/plugin-transform-exponentiation-operator": "^7.10.1", + "@babel/plugin-transform-for-of": "^7.10.1", + "@babel/plugin-transform-function-name": "^7.10.1", + "@babel/plugin-transform-literals": "^7.10.1", + "@babel/plugin-transform-member-expression-literals": "^7.10.1", + "@babel/plugin-transform-modules-amd": "^7.10.1", + "@babel/plugin-transform-modules-commonjs": "^7.10.1", + "@babel/plugin-transform-modules-systemjs": "^7.10.1", + "@babel/plugin-transform-modules-umd": "^7.10.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.10.1", + "@babel/plugin-transform-object-super": "^7.10.1", + "@babel/plugin-transform-parameters": "^7.10.1", + "@babel/plugin-transform-property-literals": "^7.10.1", + "@babel/plugin-transform-regenerator": "^7.10.1", + "@babel/plugin-transform-reserved-words": "^7.10.1", + "@babel/plugin-transform-shorthand-properties": "^7.10.1", + "@babel/plugin-transform-spread": "^7.10.1", + "@babel/plugin-transform-sticky-regex": "^7.10.1", + "@babel/plugin-transform-template-literals": "^7.10.1", + "@babel/plugin-transform-typeof-symbol": "^7.10.1", + "@babel/plugin-transform-unicode-escapes": "^7.10.1", + "@babel/plugin-transform-unicode-regex": "^7.10.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.10.2", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "@babel/helper-plugin-utils": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz", + "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", + "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==", + "dev": true + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz", + "integrity": "sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@babel/helper-plugin-utils": "^7.10.1" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz", + "integrity": "sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "@babel/helper-plugin-utils": "^7.10.1" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "@babel/types": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.1", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, - "@lerna/info": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-3.21.0.tgz", - "integrity": "sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA==", + "@babel/preset-modules": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", + "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", "dev": true, "requires": { - "@lerna/command": "3.21.0", - "@lerna/output": "3.13.0", - "envinfo": "^7.3.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, - "@lerna/init": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.21.0.tgz", - "integrity": "sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg==", + "@babel/register": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.10.1.tgz", + "integrity": "sha512-sl96+kB3IA2B9EzpwwBmYadOT14vw3KaXOknGDbJaZCOj52GDA4Tivudq9doCJcB+bEIKCEARZYwRgBBsCGXyg==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "@lerna/command": "3.21.0", - "fs-extra": "^8.1.0", - "p-map": "^2.1.0", - "write-json-file": "^3.2.0" + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "make-dir": "^2.1.0", + "pirates": "^4.0.0", + "source-map-support": "^0.5.16" + } + }, + "@babel/runtime": { + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", + "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + } + } + }, + "@babel/template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/traverse": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz", + "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.5", + "@babel/types": "^7.5.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "ms": "^2.1.1" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } + "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 }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, + "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 } } }, - "@lerna/link": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.21.0.tgz", - "integrity": "sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ==", + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", "dev": true, "requires": { - "@lerna/command": "3.21.0", - "@lerna/package-graph": "3.18.5", - "@lerna/symlink-dependencies": "3.17.0", - "p-map": "^2.1.0", - "slash": "^2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" }, "dependencies": { - "slash": { + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, + "to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true } } }, - "@lerna/list": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.21.0.tgz", - "integrity": "sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg==", + "@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 + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", "dev": true, "requires": { - "@lerna/command": "3.21.0", - "@lerna/filter-options": "3.20.0", - "@lerna/listable": "3.18.5", - "@lerna/output": "3.13.0" + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" } }, - "@lerna/listable": { - "version": "3.18.5", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-3.18.5.tgz", - "integrity": "sha512-Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg==", + "@commitlint/cli": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-11.0.0.tgz", + "integrity": "sha512-YWZWg1DuqqO5Zjh7vUOeSX76vm0FFyz4y0cpGMFhrhvUi5unc4IVfCXZ6337R9zxuBtmveiRuuhQqnRRer+13g==", "dev": true, "requires": { - "@lerna/query-graph": "3.18.5", - "chalk": "^2.3.1", - "columnify": "^1.5.4" + "@babel/runtime": "^7.11.2", + "@commitlint/format": "^11.0.0", + "@commitlint/lint": "^11.0.0", + "@commitlint/load": "^11.0.0", + "@commitlint/read": "^11.0.0", + "chalk": "4.1.0", + "core-js": "^3.6.1", + "get-stdin": "8.0.0", + "lodash": "^4.17.19", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^15.1.0" }, "dependencies": { + "@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", "dev": true }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "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==", + "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": "^3.0.0" + "has-flag": "^4.0.0" } } } }, - "@lerna/log-packed": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.16.0.tgz", - "integrity": "sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ==", + "@commitlint/config-conventional": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-11.0.0.tgz", + "integrity": "sha512-SNDRsb5gLuDd2PL83yCOQX6pE7gevC79UPFx+GLbLfw6jGnnbO9/tlL76MLD8MOViqGbo7ZicjChO9Gn+7tHhA==", "dev": true, "requires": { - "byte-size": "^5.0.1", - "columnify": "^1.5.4", - "has-unicode": "^2.0.1", - "npmlog": "^4.1.2" + "conventional-changelog-conventionalcommits": "^4.3.1" } }, - "@lerna/npm-conf": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.16.0.tgz", - "integrity": "sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA==", + "@commitlint/ensure": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-11.0.0.tgz", + "integrity": "sha512-/T4tjseSwlirKZdnx4AuICMNNlFvRyPQimbZIOYujp9DSO6XRtOy9NrmvWujwHsq9F5Wb80QWi4WMW6HMaENug==", "dev": true, "requires": { - "config-chain": "^1.1.11", - "pify": "^4.0.1" + "@commitlint/types": "^11.0.0", + "lodash": "^4.17.19" + } + }, + "@commitlint/execute-rule": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-11.0.0.tgz", + "integrity": "sha512-g01p1g4BmYlZ2+tdotCavrMunnPFPhTzG1ZiLKTCYrooHRbmvqo42ZZn4QMStUEIcn+jfLb6BRZX3JzIwA1ezQ==", + "dev": true + }, + "@commitlint/format": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-11.0.0.tgz", + "integrity": "sha512-bpBLWmG0wfZH/svzqD1hsGTpm79TKJWcf6EXZllh2J/LSSYKxGlv967lpw0hNojme0sZd4a/97R3qA2QHWWSLg==", + "dev": true, + "requires": { + "@commitlint/types": "^11.0.0", + "chalk": "^4.0.0" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } } } }, - "@lerna/npm-dist-tag": { - "version": "3.18.5", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.5.tgz", - "integrity": "sha512-xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ==", + "@commitlint/is-ignored": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-11.0.0.tgz", + "integrity": "sha512-VLHOUBN+sOlkYC4tGuzE41yNPO2w09sQnOpfS+pSPnBFkNUUHawEuA44PLHtDvQgVuYrMAmSWFQpWabMoP5/Xg==", "dev": true, "requires": { - "@evocateur/npm-registry-fetch": "^4.0.0", - "@lerna/otplease": "3.18.5", - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.1.0", - "npmlog": "^4.1.2" + "@commitlint/types": "^11.0.0", + "semver": "7.3.2" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } } }, - "@lerna/npm-install": { - "version": "3.16.5", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.16.5.tgz", - "integrity": "sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg==", + "@commitlint/lint": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-11.0.0.tgz", + "integrity": "sha512-Q8IIqGIHfwKr8ecVZyYh6NtXFmKw4YSEWEr2GJTB/fTZXgaOGtGFZDWOesCZllQ63f1s/oWJYtVv5RAEuwN8BQ==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "@lerna/get-npm-exec-opts": "3.13.0", - "fs-extra": "^8.1.0", - "npm-package-arg": "^6.1.0", - "npmlog": "^4.1.2", - "signal-exit": "^3.0.2", - "write-pkg": "^3.1.0" + "@commitlint/is-ignored": "^11.0.0", + "@commitlint/parse": "^11.0.0", + "@commitlint/rules": "^11.0.0", + "@commitlint/types": "^11.0.0" + } + }, + "@commitlint/load": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-11.0.0.tgz", + "integrity": "sha512-t5ZBrtgvgCwPfxmG811FCp39/o3SJ7L+SNsxFL92OR4WQxPcu6c8taD0CG2lzOHGuRyuMxZ7ps3EbngT2WpiCg==", + "dev": true, + "requires": { + "@commitlint/execute-rule": "^11.0.0", + "@commitlint/resolve-extends": "^11.0.0", + "@commitlint/types": "^11.0.0", + "chalk": "4.1.0", + "cosmiconfig": "^7.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "color-convert": "^2.0.1" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "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==", + "dev": true, + "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==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "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 + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "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" + } } } }, - "@lerna/npm-publish": { - "version": "3.18.5", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.18.5.tgz", - "integrity": "sha512-3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg==", + "@commitlint/message": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-11.0.0.tgz", + "integrity": "sha512-01ObK/18JL7PEIE3dBRtoMmU6S3ecPYDTQWWhcO+ErA3Ai0KDYqV5VWWEijdcVafNpdeUNrEMigRkxXHQLbyJA==", + "dev": true + }, + "@commitlint/parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-11.0.0.tgz", + "integrity": "sha512-DekKQAIYWAXIcyAZ6/PDBJylWJ1BROTfDIzr9PMVxZRxBPc1gW2TG8fLgjZfBP5mc0cuthPkVi91KQQKGri/7A==", "dev": true, "requires": { - "@evocateur/libnpmpublish": "^1.2.2", - "@lerna/otplease": "3.18.5", - "@lerna/run-lifecycle": "3.16.2", - "figgy-pudding": "^3.5.1", - "fs-extra": "^8.1.0", - "npm-package-arg": "^6.1.0", - "npmlog": "^4.1.2", - "pify": "^4.0.1", - "read-package-json": "^2.0.13" + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-parser": "^3.0.0" + } + }, + "@commitlint/read": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-11.0.0.tgz", + "integrity": "sha512-37V0V91GSv0aDzMzJioKpCoZw6l0shk7+tRG8RkW1GfZzUIytdg3XqJmM+IaIYpaop0m6BbZtfq+idzUwJnw7g==", + "dev": true, + "requires": { + "@commitlint/top-level": "^11.0.0", + "fs-extra": "^9.0.0", + "git-raw-commits": "^2.0.0" }, "dependencies": { "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { + "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" } }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" } }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } }, - "@lerna/npm-run-script": { - "version": "3.16.5", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz", - "integrity": "sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ==", + "@commitlint/resolve-extends": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-11.0.0.tgz", + "integrity": "sha512-WinU6Uv6L7HDGLqn/To13KM1CWvZ09VHZqryqxXa1OY+EvJkfU734CwnOEeNlSCK7FVLrB4kmodLJtL1dkEpXw==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "@lerna/get-npm-exec-opts": "3.13.0", - "npmlog": "^4.1.2" + "import-fresh": "^3.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" } }, - "@lerna/otplease": { - "version": "3.18.5", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.18.5.tgz", - "integrity": "sha512-S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog==", + "@commitlint/rules": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-11.0.0.tgz", + "integrity": "sha512-2hD9y9Ep5ZfoNxDDPkQadd2jJeocrwC4vJ98I0g8pNYn/W8hS9+/FuNpolREHN8PhmexXbkjrwyQrWbuC0DVaA==", "dev": true, "requires": { - "@lerna/prompt": "3.18.5", - "figgy-pudding": "^3.5.1" + "@commitlint/ensure": "^11.0.0", + "@commitlint/message": "^11.0.0", + "@commitlint/to-lines": "^11.0.0", + "@commitlint/types": "^11.0.0" } }, - "@lerna/output": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz", - "integrity": "sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg==", - "dev": true, - "requires": { - "npmlog": "^4.1.2" - } - }, - "@lerna/pack-directory": { - "version": "3.16.4", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.16.4.tgz", - "integrity": "sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng==", - "dev": true, - "requires": { - "@lerna/get-packed": "3.16.0", - "@lerna/package": "3.16.0", - "@lerna/run-lifecycle": "3.16.2", - "figgy-pudding": "^3.5.1", - "npm-packlist": "^1.4.4", - "npmlog": "^4.1.2", - "tar": "^4.4.10", - "temp-write": "^3.4.0" - } - }, - "@lerna/package": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-3.16.0.tgz", - "integrity": "sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw==", - "dev": true, - "requires": { - "load-json-file": "^5.3.0", - "npm-package-arg": "^6.1.0", - "write-pkg": "^3.1.0" - } - }, - "@lerna/package-graph": { - "version": "3.18.5", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.18.5.tgz", - "integrity": "sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA==", - "dev": true, - "requires": { - "@lerna/prerelease-id-from-version": "3.16.0", - "@lerna/validation-error": "3.13.0", - "npm-package-arg": "^6.1.0", - "npmlog": "^4.1.2", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@lerna/prerelease-id-from-version": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz", - "integrity": "sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA==", - "dev": true, - "requires": { - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } + "@commitlint/to-lines": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-11.0.0.tgz", + "integrity": "sha512-TIDTB0Y23jlCNubDROUVokbJk6860idYB5cZkLWcRS9tlb6YSoeLn1NLafPlrhhkkkZzTYnlKYzCVrBNVes1iw==", + "dev": true }, - "@lerna/profiler": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-3.20.0.tgz", - "integrity": "sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg==", + "@commitlint/top-level": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-11.0.0.tgz", + "integrity": "sha512-O0nFU8o+Ws+py5pfMQIuyxOtfR/kwtr5ybqTvR+C2lUPer2x6lnQU+OnfD7hPM+A+COIUZWx10mYQvkR3MmtAA==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1", - "fs-extra": "^8.1.0", - "npmlog": "^4.1.2", - "upath": "^1.2.0" + "find-up": "^5.0.0" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "p-locate": "^5.0.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "@lerna/project": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-3.21.0.tgz", - "integrity": "sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A==", - "dev": true, - "requires": { - "@lerna/package": "3.16.0", - "@lerna/validation-error": "3.13.0", - "cosmiconfig": "^5.1.0", - "dedent": "^0.7.0", - "dot-prop": "^4.2.0", - "glob-parent": "^5.0.0", - "globby": "^9.2.0", - "load-json-file": "^5.3.0", - "npmlog": "^4.1.2", - "p-map": "^2.1.0", - "resolve-from": "^4.0.0", - "write-json-file": "^3.2.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", "dev": true, "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" + "p-try": "^2.0.0" } }, - "dot-prop": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", - "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "p-limit": "^3.0.2" } }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "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 + } + } + }, + "@commitlint/types": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz", + "integrity": "sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", + "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", "dev": true, "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } + "ms": "2.1.2" } }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "type-fest": "^0.8.1" } }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "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 }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "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 }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } }, - "@lerna/prompt": { - "version": "3.18.5", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.18.5.tgz", - "integrity": "sha512-rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ==", + "@evocateur/libnpmaccess": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz", + "integrity": "sha512-KSCAHwNWro0CF2ukxufCitT9K5LjL/KuMmNzSu8wuwN2rjyKHD8+cmOsiybK+W5hdnwc5M1SmRlVCaMHQo+3rg==", "dev": true, "requires": { - "inquirer": "^6.2.0", - "npmlog": "^4.1.2" + "@evocateur/npm-registry-fetch": "^4.0.0", + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0" + }, + "dependencies": { + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "dev": true + } } }, - "@lerna/publish": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.22.1.tgz", - "integrity": "sha512-PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw==", + "@evocateur/libnpmpublish": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@evocateur/libnpmpublish/-/libnpmpublish-1.2.2.tgz", + "integrity": "sha512-MJrrk9ct1FeY9zRlyeoyMieBjGDG9ihyyD9/Ft6MMrTxql9NyoEx2hw9casTIP4CdqEVu+3nQ2nXxoJ8RCXyFg==", "dev": true, "requires": { - "@evocateur/libnpmaccess": "^3.1.2", "@evocateur/npm-registry-fetch": "^4.0.0", - "@evocateur/pacote": "^9.6.3", - "@lerna/check-working-tree": "3.16.5", - "@lerna/child-process": "3.16.5", - "@lerna/collect-updates": "3.20.0", - "@lerna/command": "3.21.0", - "@lerna/describe-ref": "3.16.5", - "@lerna/log-packed": "3.16.0", - "@lerna/npm-conf": "3.16.0", - "@lerna/npm-dist-tag": "3.18.5", - "@lerna/npm-publish": "3.18.5", - "@lerna/otplease": "3.18.5", - "@lerna/output": "3.13.0", - "@lerna/pack-directory": "3.16.4", - "@lerna/prerelease-id-from-version": "3.16.0", - "@lerna/prompt": "3.18.5", - "@lerna/pulse-till-done": "3.13.0", - "@lerna/run-lifecycle": "3.16.2", - "@lerna/run-topologically": "3.18.5", - "@lerna/validation-error": "3.13.0", - "@lerna/version": "3.22.1", + "aproba": "^2.0.0", "figgy-pudding": "^3.5.1", - "fs-extra": "^8.1.0", + "get-stream": "^4.0.0", + "lodash.clonedeep": "^4.5.0", + "normalize-package-data": "^2.4.0", "npm-package-arg": "^6.1.0", - "npmlog": "^4.1.2", - "p-finally": "^1.0.0", - "p-map": "^2.1.0", - "p-pipe": "^1.2.0", - "semver": "^6.2.0" + "semver": "^5.5.1", + "ssri": "^6.0.1" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, - "@lerna/pulse-till-done": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz", - "integrity": "sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA==", - "dev": true, - "requires": { - "npmlog": "^4.1.2" - } - }, - "@lerna/query-graph": { - "version": "3.18.5", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.18.5.tgz", - "integrity": "sha512-50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA==", - "dev": true, - "requires": { - "@lerna/package-graph": "3.18.5", - "figgy-pudding": "^3.5.1" - } - }, - "@lerna/resolve-symlink": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz", - "integrity": "sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ==", + "@evocateur/npm-registry-fetch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@evocateur/npm-registry-fetch/-/npm-registry-fetch-4.0.0.tgz", + "integrity": "sha512-k1WGfKRQyhJpIr+P17O5vLIo2ko1PFLKwoetatdduUSt/aQ4J2sJrJwwatdI5Z3SiYk/mRH9S3JpdmMFd/IK4g==", "dev": true, "requires": { - "fs-extra": "^8.1.0", - "npmlog": "^4.1.2", - "read-cmd-shim": "^1.0.1" + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.1.2" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "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": { - "graceful-fs": "^4.1.6" + "yallist": "^3.0.2" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true } } }, - "@lerna/rimraf-dir": { - "version": "3.16.5", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz", - "integrity": "sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA==", + "@evocateur/pacote": { + "version": "9.6.5", + "resolved": "https://registry.npmjs.org/@evocateur/pacote/-/pacote-9.6.5.tgz", + "integrity": "sha512-EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w==", "dev": true, "requires": { - "@lerna/child-process": "3.16.5", - "npmlog": "^4.1.2", - "path-exists": "^3.0.0", - "rimraf": "^2.6.2" + "@evocateur/npm-registry-fetch": "^4.0.0", + "bluebird": "^3.5.3", + "cacache": "^12.0.3", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.5.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.4.4", + "npm-pick-manifest": "^3.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.3", + "safe-buffer": "^5.2.0", + "semver": "^5.7.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" }, "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "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" + } }, "rimraf": { "version": "2.7.1", @@ -2796,1268 +3393,2041 @@ "requires": { "glob": "^7.1.3" } + }, + "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==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, - "@lerna/run": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.21.0.tgz", - "integrity": "sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q==", - "dev": true, - "requires": { - "@lerna/command": "3.21.0", - "@lerna/filter-options": "3.20.0", - "@lerna/npm-run-script": "3.16.5", - "@lerna/output": "3.13.0", - "@lerna/profiler": "3.20.0", - "@lerna/run-topologically": "3.18.5", - "@lerna/timer": "3.13.0", - "@lerna/validation-error": "3.13.0", - "p-map": "^2.1.0" - } - }, - "@lerna/run-lifecycle": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz", - "integrity": "sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A==", + "@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": { - "@lerna/npm-conf": "3.16.0", - "figgy-pudding": "^3.5.1", - "npm-lifecycle": "^3.1.2", - "npmlog": "^4.1.2" + "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" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } } }, - "@lerna/run-topologically": { - "version": "3.18.5", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.18.5.tgz", - "integrity": "sha512-6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg==", - "dev": true, - "requires": { - "@lerna/query-graph": "3.18.5", - "figgy-pudding": "^3.5.1", - "p-queue": "^4.0.0" - } + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true }, - "@lerna/symlink-binary": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz", - "integrity": "sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ==", + "@jest/console": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.5.2.tgz", + "integrity": "sha512-lJELzKINpF1v74DXHbCRIkQ/+nUV1M+ntj+X1J8LxCgpmJZjfLmhFejiMSbjjD66fayxl5Z06tbs3HMyuik6rw==", "dev": true, "requires": { - "@lerna/create-symlink": "3.16.2", - "@lerna/package": "3.16.0", - "fs-extra": "^8.1.0", - "p-map": "^2.1.0" + "@jest/types": "^26.5.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.5.2", + "jest-util": "^26.5.2", + "slash": "^3.0.0" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "@types/istanbul-lib-report": "*" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "@lerna/symlink-dependencies": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz", - "integrity": "sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q==", - "dev": true, - "requires": { - "@lerna/create-symlink": "3.16.2", - "@lerna/resolve-symlink": "3.16.0", - "@lerna/symlink-binary": "3.17.0", - "fs-extra": "^8.1.0", - "p-finally": "^1.0.0", - "p-map": "^2.1.0", - "p-map-series": "^1.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "color-convert": "^2.0.1" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } } } }, - "@lerna/timer": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz", - "integrity": "sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw==", - "dev": true - }, - "@lerna/validation-error": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz", - "integrity": "sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA==", - "dev": true, - "requires": { - "npmlog": "^4.1.2" - } - }, - "@lerna/version": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.22.1.tgz", - "integrity": "sha512-PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g==", + "@jest/core": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.5.2.tgz", + "integrity": "sha512-LLTo1LQMg7eJjG/+P1NYqFof2B25EV1EqzD5FonklihG4UJKiK2JBIvWonunws6W7e+DhNLoFD+g05tCY03eyA==", "dev": true, "requires": { - "@lerna/check-working-tree": "3.16.5", - "@lerna/child-process": "3.16.5", - "@lerna/collect-updates": "3.20.0", - "@lerna/command": "3.21.0", - "@lerna/conventional-commits": "3.22.0", - "@lerna/github-client": "3.22.0", - "@lerna/gitlab-client": "3.15.0", - "@lerna/output": "3.13.0", - "@lerna/prerelease-id-from-version": "3.16.0", - "@lerna/prompt": "3.18.5", - "@lerna/run-lifecycle": "3.16.2", - "@lerna/run-topologically": "3.18.5", - "@lerna/validation-error": "3.13.0", - "chalk": "^2.3.1", - "dedent": "^0.7.0", - "load-json-file": "^5.3.0", - "minimatch": "^3.0.4", - "npmlog": "^4.1.2", - "p-map": "^2.1.0", - "p-pipe": "^1.2.0", - "p-reduce": "^1.0.0", - "p-waterfall": "^1.0.0", - "semver": "^6.2.0", - "slash": "^2.0.0", - "temp-write": "^3.4.0", - "write-json-file": "^3.2.0" + "@jest/console": "^26.5.2", + "@jest/reporters": "^26.5.2", + "@jest/test-result": "^26.5.2", + "@jest/transform": "^26.5.2", + "@jest/types": "^26.5.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.5.2", + "jest-config": "^26.5.2", + "jest-haste-map": "^26.5.2", + "jest-message-util": "^26.5.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.5.2", + "jest-resolve-dependencies": "^26.5.2", + "jest-runner": "^26.5.2", + "jest-runtime": "^26.5.2", + "jest-snapshot": "^26.5.2", + "jest-util": "^26.5.2", + "jest-validate": "^26.5.2", + "jest-watcher": "^26.5.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, "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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" } }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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 }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "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": "^3.0.0" + "has-flag": "^4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true } } }, - "@lerna/write-log-file": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz", - "integrity": "sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==", + "@jest/environment": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.5.2.tgz", + "integrity": "sha512-YjhCD/Zhkz0/1vdlS/QN6QmuUdDkpgBdK4SdiVg4Y19e29g4VQYN5Xg8+YuHjdoWGY7wJHMxc79uDTeTOy9Ngw==", "dev": true, "requires": { - "npmlog": "^4.1.2", - "write-file-atomic": "^2.3.0" + "@jest/fake-timers": "^26.5.2", + "@jest/types": "^26.5.2", + "@types/node": "*", + "jest-mock": "^26.5.2" }, "dependencies": { - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" } } } }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "@jest/fake-timers": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.5.2.tgz", + "integrity": "sha512-09Hn5Oraqt36V1akxQeWMVL0fR9c6PnEhpgLaYvREXZJAh2H2Y+QLCsl0g7uMoJeoWJAuz4tozk1prbR1Fc1sw==", "dev": true, "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "@octokit/auth-token": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.4.tgz", - "integrity": "sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q==", - "dev": true, - "requires": { - "@octokit/types": "^6.0.0" - } - }, - "@octokit/endpoint": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.10.tgz", - "integrity": "sha512-9+Xef8nT7OKZglfkOMm7IL6VwxXUQyR7DUSU0LH/F7VNqs8vyd7es5pTfz9E7DwUIx7R3pGscxu1EBhYljyu7Q==", - "dev": true, - "requires": { - "@octokit/types": "^6.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "@jest/types": "^26.5.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.5.2", + "jest-mock": "^26.5.2", + "jest-util": "^26.5.2" }, "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", "dev": true }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "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 + }, + "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" + } } } }, - "@octokit/openapi-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-2.0.0.tgz", - "integrity": "sha512-J4bfM7lf8oZvEAdpS71oTvC1ofKxfEZgU5vKVwzZKi4QPiL82udjpseJwxPid9Pu2FNmyRQOX4iEj6W1iOSnPw==", - "dev": true - }, - "@octokit/plugin-enterprise-rest": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", - "dev": true - }, - "@octokit/plugin-paginate-rest": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz", - "integrity": "sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==", + "@jest/globals": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.5.2.tgz", + "integrity": "sha512-9PmnFsAUJxpPt1s/stq02acS1YHliVBDNfAWMe1bwdRr1iTCfhbNt3ERQXrO/ZfZSweftoA26Q/2yhSVSWQ3sw==", "dev": true, "requires": { - "@octokit/types": "^2.0.1" + "@jest/environment": "^26.5.2", + "@jest/types": "^26.5.2", + "expect": "^26.5.2" }, "dependencies": { - "@octokit/types": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "@types/node": ">= 8" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" } } } }, - "@octokit/plugin-request-log": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz", - "integrity": "sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg==", - "dev": true - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz", - "integrity": "sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==", + "@jest/reporters": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.5.2.tgz", + "integrity": "sha512-zvq6Wvy6MmJq/0QY0YfOPb49CXKSf42wkJbrBPkeypVa8I+XDxijvFuywo6TJBX/ILPrdrlE/FW9vJZh6Rf9vA==", "dev": true, "requires": { - "@octokit/types": "^2.0.1", - "deprecation": "^2.3.1" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.5.2", + "@jest/test-result": "^26.5.2", + "@jest/transform": "^26.5.2", + "@jest/types": "^26.5.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.5.2", + "jest-resolve": "^26.5.2", + "jest-util": "^26.5.2", + "jest-worker": "^26.5.0", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^5.0.1" }, "dependencies": { - "@octokit/types": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "@types/node": ">= 8" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "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 + }, + "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" } } } }, - "@octokit/request": { - "version": "5.4.12", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.12.tgz", - "integrity": "sha512-MvWYdxengUWTGFpfpefBBpVmmEYfkwMoxonIB3sUGp5rhdgwjXL1ejo6JbgzG/QD9B/NYt/9cJX1pxXeSIUCkg==", + "@jest/source-map": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.5.0.tgz", + "integrity": "sha512-jWAw9ZwYHJMe9eZq/WrsHlwF8E3hM9gynlcDpOyCb9bR8wEd9ZNBZCi7/jZyzHxC7t3thZ10gO2IDhu0bPKS5g==", "dev": true, "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.0.0", - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", - "once": "^1.4.0", - "universal-user-agent": "^6.0.0" + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" }, "dependencies": { - "@octokit/request-error": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.4.tgz", - "integrity": "sha512-LjkSiTbsxIErBiRh5wSZvpZqT4t0/c9+4dOe0PII+6jXR+oj/h66s7E4a/MghV7iT8W9ffoQ5Skoxzs96+gBPA==", - "dev": true, - "requires": { - "@octokit/types": "^6.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "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 } } }, - "@octokit/request-error": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz", - "integrity": "sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==", + "@jest/test-result": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.5.2.tgz", + "integrity": "sha512-E/Zp6LURJEGSCWpoMGmCFuuEI1OWuI3hmZwmULV0GsgJBh7u0rwqioxhRU95euUuviqBDN8ruX/vP/4bwYolXw==", "dev": true, "requires": { - "@octokit/types": "^2.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "@jest/console": "^26.5.2", + "@jest/types": "^26.5.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "dependencies": { - "@octokit/types": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", - "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "@types/node": ">= 8" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" } } } }, - "@octokit/rest": { - "version": "16.43.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz", - "integrity": "sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==", + "@jest/test-sequencer": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.5.2.tgz", + "integrity": "sha512-XmGEh7hh07H2B8mHLFCIgr7gA5Y6Hw1ZATIsbz2fOhpnQ5AnQtZk0gmP0Q5/+mVB2xygO64tVFQxOajzoptkNA==", "dev": true, "requires": { - "@octokit/auth-token": "^2.4.0", - "@octokit/plugin-paginate-rest": "^1.1.1", - "@octokit/plugin-request-log": "^1.0.0", - "@octokit/plugin-rest-endpoint-methods": "2.4.0", - "@octokit/request": "^5.2.0", - "@octokit/request-error": "^1.0.2", - "atob-lite": "^2.0.0", - "before-after-hook": "^2.0.0", - "btoa-lite": "^1.0.0", - "deprecation": "^2.0.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "lodash.uniq": "^4.5.0", - "octokit-pagination-methods": "^1.1.0", - "once": "^1.4.0", - "universal-user-agent": "^4.0.0" + "@jest/test-result": "^26.5.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.5.2", + "jest-runner": "^26.5.2", + "jest-runtime": "^26.5.2" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + } } }, - "@octokit/types": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.1.1.tgz", - "integrity": "sha512-btm3D6S7VkRrgyYF31etUtVY/eQ1KzrNRqhFt25KSe2mKlXuLXJilglRC6eDA2P6ou94BUnk/Kz5MPEolXgoiw==", + "@jest/transform": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.5.2.tgz", + "integrity": "sha512-AUNjvexh+APhhmS8S+KboPz+D3pCxPvEAGduffaAJYxIFxGi/ytZQkrqcKDUU0ERBAo5R7087fyOYr2oms1seg==", "dev": true, "requires": { - "@octokit/openapi-types": "^2.0.0", - "@types/node": ">= 8" + "@babel/core": "^7.1.0", + "@jest/types": "^26.5.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.5.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.5.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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 + }, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + } } }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", "dev": true, "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" }, "dependencies": { - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } } } }, - "@sinonjs/commons": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", - "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "@lerna/add": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.21.0.tgz", + "integrity": "sha512-vhUXXF6SpufBE1EkNEXwz1VLW03f177G9uMOFMQkp6OJ30/PWg4Ekifuz9/3YfgB2/GH8Tu4Lk3O51P2Hskg/A==", "dev": true, "requires": { - "type-detect": "4.0.8" + "@evocateur/pacote": "^9.6.3", + "@lerna/bootstrap": "3.21.0", + "@lerna/command": "3.21.0", + "@lerna/filter-options": "3.20.0", + "@lerna/npm-conf": "3.16.0", + "@lerna/validation-error": "3.13.0", + "dedent": "^0.7.0", + "npm-package-arg": "^6.1.0", + "p-map": "^2.1.0", + "semver": "^6.2.0" } }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "@lerna/bootstrap": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-3.21.0.tgz", + "integrity": "sha512-mtNHlXpmvJn6JTu0KcuTTPl2jLsDNud0QacV/h++qsaKbhAaJr/FElNZ5s7MwZFUM3XaDmvWzHKaszeBMHIbBw==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0" + "@lerna/command": "3.21.0", + "@lerna/filter-options": "3.20.0", + "@lerna/has-npm-version": "3.16.5", + "@lerna/npm-install": "3.16.5", + "@lerna/package-graph": "3.18.5", + "@lerna/pulse-till-done": "3.13.0", + "@lerna/rimraf-dir": "3.16.5", + "@lerna/run-lifecycle": "3.16.2", + "@lerna/run-topologically": "3.18.5", + "@lerna/symlink-binary": "3.17.0", + "@lerna/symlink-dependencies": "3.17.0", + "@lerna/validation-error": "3.13.0", + "dedent": "^0.7.0", + "get-port": "^4.2.0", + "multimatch": "^3.0.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "p-finally": "^1.0.0", + "p-map": "^2.1.0", + "p-map-series": "^1.0.0", + "p-waterfall": "^1.0.0", + "read-package-tree": "^5.1.6", + "semver": "^6.2.0" } }, - "@types/babel__core": { - "version": "7.1.12", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", - "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", + "@lerna/changed": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-3.21.0.tgz", + "integrity": "sha512-hzqoyf8MSHVjZp0gfJ7G8jaz+++mgXYiNs9iViQGA8JlN/dnWLI5sWDptEH3/B30Izo+fdVz0S0s7ydVE3pWIw==", "dev": true, "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@lerna/collect-updates": "3.20.0", + "@lerna/command": "3.21.0", + "@lerna/listable": "3.18.5", + "@lerna/output": "3.13.0" } }, - "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "@lerna/check-working-tree": { + "version": "3.16.5", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-3.16.5.tgz", + "integrity": "sha512-xWjVBcuhvB8+UmCSb5tKVLB5OuzSpw96WEhS2uz6hkWVa/Euh1A0/HJwn2cemyK47wUrCQXtczBUiqnq9yX5VQ==", "dev": true, "requires": { - "@babel/types": "^7.0.0" - } + "@lerna/collect-uncommitted": "3.16.5", + "@lerna/describe-ref": "3.16.5", + "@lerna/validation-error": "3.13.0" + } }, - "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "@lerna/child-process": { + "version": "3.16.5", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-3.16.5.tgz", + "integrity": "sha512-vdcI7mzei9ERRV4oO8Y1LHBZ3A5+ampRKg1wq5nutLsUA4mEBN6H7JqjWOMY9xZemv6+kATm2ofjJ3lW5TszQg==", "dev": true, "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "chalk": "^2.3.1", + "execa": "^1.0.0", + "strong-log-transformer": "^2.0.0" } }, - "@types/babel__traverse": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.16.tgz", - "integrity": "sha512-S63Dt4CZOkuTmpLGGWtT/mQdVORJOpx6SZWGVaP56dda/0Nx5nEe82K7/LAm8zYr6SfMq+1N2OreIOrHAx656w==", + "@lerna/clean": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-3.21.0.tgz", + "integrity": "sha512-b/L9l+MDgE/7oGbrav6rG8RTQvRiZLO1zTcG17zgJAAuhlsPxJExMlh2DFwJEVi2les70vMhHfST3Ue1IMMjpg==", "dev": true, "requires": { - "@babel/types": "^7.3.0" + "@lerna/command": "3.21.0", + "@lerna/filter-options": "3.20.0", + "@lerna/prompt": "3.18.5", + "@lerna/pulse-till-done": "3.13.0", + "@lerna/rimraf-dir": "3.16.5", + "p-map": "^2.1.0", + "p-map-series": "^1.0.0", + "p-waterfall": "^1.0.0" } }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "@lerna/cli": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-3.18.5.tgz", + "integrity": "sha512-erkbxkj9jfc89vVs/jBLY/fM0I80oLmJkFUV3Q3wk9J3miYhP14zgVEBsPZY68IZlEjT6T3Xlq2xO1AVaatHsA==", "dev": true, "requires": { - "@types/minimatch": "*", - "@types/node": "*" + "@lerna/global-options": "3.13.0", + "dedent": "^0.7.0", + "npmlog": "^4.1.2", + "yargs": "^14.2.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "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 + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "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 + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", + "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" + } + }, + "yargs-parser": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", + "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } } }, - "@types/graceful-fs": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz", - "integrity": "sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==", + "@lerna/collect-uncommitted": { + "version": "3.16.5", + "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-3.16.5.tgz", + "integrity": "sha512-ZgqnGwpDZiWyzIQVZtQaj9tRizsL4dUOhuOStWgTAw1EMe47cvAY2kL709DzxFhjr6JpJSjXV5rZEAeU3VE0Hg==", "dev": true, "requires": { - "@types/node": "*" + "@lerna/child-process": "3.16.5", + "chalk": "^2.3.1", + "figgy-pudding": "^3.5.1", + "npmlog": "^4.1.2" } }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "@lerna/collect-updates": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-3.20.0.tgz", + "integrity": "sha512-qBTVT5g4fupVhBFuY4nI/3FSJtQVcDh7/gEPOpRxoXB/yCSnT38MFHXWl+y4einLciCjt/+0x6/4AG80fjay2Q==", "dev": true, "requires": { - "@types/istanbul-lib-coverage": "*" + "@lerna/child-process": "3.16.5", + "@lerna/describe-ref": "3.16.5", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "slash": "^2.0.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } } }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "@lerna/command": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-3.21.0.tgz", + "integrity": "sha512-T2bu6R8R3KkH5YoCKdutKv123iUgUbW8efVjdGCDnCMthAQzoentOJfDeodBwn0P2OqCl3ohsiNVtSn9h78fyQ==", "dev": true, "requires": { - "@types/istanbul-lib-report": "*" + "@lerna/child-process": "3.16.5", + "@lerna/package-graph": "3.18.5", + "@lerna/project": "3.21.0", + "@lerna/validation-error": "3.13.0", + "@lerna/write-log-file": "3.13.0", + "clone-deep": "^4.0.1", + "dedent": "^0.7.0", + "execa": "^1.0.0", + "is-ci": "^2.0.0", + "npmlog": "^4.1.2" } }, - "@types/jest": { - "version": "26.0.16", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.16.tgz", - "integrity": "sha512-Gp12+7tmKCgv9JjtltxUXokohCAEZfpJaEW5tn871SGRp8I+bRWBonQO7vW5NHwnAHe5dd50+Q4zyKuN35i09g==", + "@lerna/conventional-commits": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-3.22.0.tgz", + "integrity": "sha512-z4ZZk1e8Mhz7+IS8NxHr64wyklHctCJyWpJKEZZPJiLFJ8yKto/x38O80R10pIzC0rr8Sy/OsjSH4bl0TbbgqA==", "dev": true, "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" + "@lerna/validation-error": "3.13.0", + "conventional-changelog-angular": "^5.0.3", + "conventional-changelog-core": "^3.1.6", + "conventional-recommended-bump": "^5.0.0", + "fs-extra": "^8.1.0", + "get-stream": "^4.0.0", + "lodash.template": "^4.5.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "pify": "^4.0.1", + "semver": "^6.2.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } } }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", - "dev": true - }, - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/prettier": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", - "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", - "dev": true - }, - "@types/yargs": { - "version": "15.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.11.tgz", - "integrity": "sha512-jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==", + "@lerna/create": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-3.22.0.tgz", + "integrity": "sha512-MdiQQzCcB4E9fBF1TyMOaAEz9lUjIHp1Ju9H7f3lXze5JK6Fl5NYkouAvsLgY6YSIhXMY8AHW2zzXeBDY4yWkw==", "dev": true, "requires": { - "@types/yargs-parser": "*" + "@evocateur/pacote": "^9.6.3", + "@lerna/child-process": "3.16.5", + "@lerna/command": "3.21.0", + "@lerna/npm-conf": "3.16.0", + "@lerna/validation-error": "3.13.0", + "camelcase": "^5.0.0", + "dedent": "^0.7.0", + "fs-extra": "^8.1.0", + "globby": "^9.2.0", + "init-package-json": "^1.10.3", + "npm-package-arg": "^6.1.0", + "p-reduce": "^1.0.0", + "pify": "^4.0.1", + "semver": "^6.2.0", + "slash": "^2.0.0", + "validate-npm-package-license": "^3.0.3", + "validate-npm-package-name": "^3.0.0", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } } }, - "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", - "dev": true - }, - "@zkochan/cmd-shim": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz", - "integrity": "sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg==", + "@lerna/create-symlink": { + "version": "3.16.2", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-3.16.2.tgz", + "integrity": "sha512-pzXIJp6av15P325sgiIRpsPXLFmkisLhMBCy4764d+7yjf2bzrJ4gkWVMhsv4AdF0NN3OyZ5jjzzTtLNqfR+Jw==", "dev": true, "requires": { - "is-windows": "^1.0.0", - "mkdirp-promise": "^5.0.1", - "mz": "^2.5.0" + "@zkochan/cmd-shim": "^3.1.0", + "fs-extra": "^8.1.0", + "npmlog": "^4.1.2" } }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "@lerna/describe-ref": { + "version": "3.16.5", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-3.16.5.tgz", + "integrity": "sha512-c01+4gUF0saOOtDBzbLMFOTJDHTKbDFNErEY6q6i9QaXuzy9LNN62z+Hw4acAAZuJQhrVWncVathcmkkjvSVGw==", "dev": true, "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "@lerna/child-process": "3.16.5", + "npmlog": "^4.1.2" } }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "@lerna/diff": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-3.21.0.tgz", + "integrity": "sha512-5viTR33QV3S7O+bjruo1SaR40m7F2aUHJaDAC7fL9Ca6xji+aw1KFkpCtVlISS0G8vikUREGMJh+c/VMSc8Usw==", "dev": true, "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" + "@lerna/child-process": "3.16.5", + "@lerna/command": "3.21.0", + "@lerna/validation-error": "3.13.0", + "npmlog": "^4.1.2" } }, - "acorn-jsx": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", - "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", - "dev": true - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "@lerna/exec": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-3.21.0.tgz", + "integrity": "sha512-iLvDBrIE6rpdd4GIKTY9mkXyhwsJ2RvQdB9ZU+/NhR3okXfqKc6py/24tV111jqpXTtZUW6HNydT4dMao2hi1Q==", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "@lerna/child-process": "3.16.5", + "@lerna/command": "3.21.0", + "@lerna/filter-options": "3.20.0", + "@lerna/profiler": "3.20.0", + "@lerna/run-topologically": "3.18.5", + "@lerna/validation-error": "3.13.0", + "p-map": "^2.1.0" } }, - "agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "@lerna/filter-options": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-3.20.0.tgz", + "integrity": "sha512-bmcHtvxn7SIl/R9gpiNMVG7yjx7WyT0HSGw34YVZ9B+3xF/83N3r5Rgtjh4hheLZ+Q91Or0Jyu5O3Nr+AwZe2g==", "dev": true, "requires": { - "humanize-ms": "^1.2.1" + "@lerna/collect-updates": "3.20.0", + "@lerna/filter-packages": "3.18.0", + "dedent": "^0.7.0", + "figgy-pudding": "^3.5.1", + "npmlog": "^4.1.2" } }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "@lerna/filter-packages": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-3.18.0.tgz", + "integrity": "sha512-6/0pMM04bCHNATIOkouuYmPg6KH3VkPCIgTfQmdkPJTullERyEQfNUKikrefjxo1vHOoCACDpy65JYyKiAbdwQ==", "dev": true, "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "@lerna/validation-error": "3.13.0", + "multimatch": "^3.0.0", + "npmlog": "^4.1.2" } }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "@lerna/get-npm-exec-opts": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-3.13.0.tgz", + "integrity": "sha512-Y0xWL0rg3boVyJk6An/vurKzubyJKtrxYv2sj4bB8Mc5zZ3tqtv0ccbOkmkXKqbzvNNF7VeUt1OJ3DRgtC/QZw==", "dev": true, "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "npmlog": "^4.1.2" } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true + "@lerna/get-packed": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-3.16.0.tgz", + "integrity": "sha512-AjsFiaJzo1GCPnJUJZiTW6J1EihrPkc2y3nMu6m3uWFxoleklsSCyImumzVZJssxMi3CPpztj8LmADLedl9kXw==", + "dev": true, + "requires": { + "fs-extra": "^8.1.0", + "ssri": "^6.0.1", + "tar": "^4.4.8" + } }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "@lerna/github-client": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-3.22.0.tgz", + "integrity": "sha512-O/GwPW+Gzr3Eb5bk+nTzTJ3uv+jh5jGho9BOqKlajXaOkMYGBELEAqV5+uARNGWZFvYAiF4PgqHb6aCUu7XdXg==", "dev": true, "requires": { - "color-convert": "^2.0.1" + "@lerna/child-process": "3.16.5", + "@octokit/plugin-enterprise-rest": "^6.0.1", + "@octokit/rest": "^16.28.4", + "git-url-parse": "^11.1.2", + "npmlog": "^4.1.2" } }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "@lerna/gitlab-client": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-3.15.0.tgz", + "integrity": "sha512-OsBvRSejHXUBMgwWQqNoioB8sgzL/Pf1pOUhHKtkiMl6aAWjklaaq5HPMvTIsZPfS6DJ9L5OK2GGZuooP/5c8Q==", "dev": true, "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "node-fetch": "^2.5.0", + "npmlog": "^4.1.2", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "@lerna/global-options": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-3.13.0.tgz", + "integrity": "sha512-SlZvh1gVRRzYLVluz9fryY1nJpZ0FHDGB66U9tFfvnnxmueckRQxLopn3tXj3NU1kc3QANT2I5BsQkOqZ4TEFQ==", "dev": true }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "@lerna/has-npm-version": { + "version": "3.16.5", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-3.16.5.tgz", + "integrity": "sha512-WL7LycR9bkftyqbYop5rEGJ9sRFIV55tSGmbN1HLrF9idwOCD7CLrT64t235t3t4O5gehDnwKI5h2U3oxTrF8Q==", "dev": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "@lerna/child-process": "3.16.5", + "semver": "^6.2.0" } }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "@lerna/import": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-3.22.0.tgz", + "integrity": "sha512-uWOlexasM5XR6tXi4YehODtH9Y3OZrFht3mGUFFT3OIl2s+V85xIGFfqFGMTipMPAGb2oF1UBLL48kR43hRsOg==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "@lerna/child-process": "3.16.5", + "@lerna/command": "3.21.0", + "@lerna/prompt": "3.18.5", + "@lerna/pulse-till-done": "3.13.0", + "@lerna/validation-error": "3.13.0", + "dedent": "^0.7.0", + "fs-extra": "^8.1.0", + "p-map-series": "^1.0.0" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-differ": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz", - "integrity": "sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "@lerna/info": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/info/-/info-3.21.0.tgz", + "integrity": "sha512-0XDqGYVBgWxUquFaIptW2bYSIu6jOs1BtkvRTWDDhw4zyEdp6q4eaMvqdSap1CG+7wM5jeLCi6z94wS0AuiuwA==", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "@lerna/command": "3.21.0", + "@lerna/output": "3.13.0", + "envinfo": "^7.3.1" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "@lerna/init": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-3.21.0.tgz", + "integrity": "sha512-6CM0z+EFUkFfurwdJCR+LQQF6MqHbYDCBPyhu/d086LRf58GtYZYj49J8mKG9ktayp/TOIxL/pKKjgLD8QBPOg==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "@lerna/child-process": "3.16.5", + "@lerna/command": "3.21.0", + "fs-extra": "^8.1.0", + "p-map": "^2.1.0", + "write-json-file": "^3.2.0" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "@lerna/link": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-3.21.0.tgz", + "integrity": "sha512-tGu9GxrX7Ivs+Wl3w1+jrLi1nQ36kNI32dcOssij6bg0oZ2M2MDEFI9UF2gmoypTaN9uO5TSsjCFS7aR79HbdQ==", + "dev": true, + "requires": { + "@lerna/command": "3.21.0", + "@lerna/package-graph": "3.18.5", + "@lerna/symlink-dependencies": "3.17.0", + "p-map": "^2.1.0", + "slash": "^2.0.0" + }, + "dependencies": { + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + } + } }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true + "@lerna/list": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-3.21.0.tgz", + "integrity": "sha512-KehRjE83B1VaAbRRkRy6jLX1Cin8ltsrQ7FHf2bhwhRHK0S54YuA6LOoBnY/NtA8bHDX/Z+G5sMY78X30NS9tg==", + "dev": true, + "requires": { + "@lerna/command": "3.21.0", + "@lerna/filter-options": "3.20.0", + "@lerna/listable": "3.18.5", + "@lerna/output": "3.13.0" + } }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "@lerna/listable": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-3.18.5.tgz", + "integrity": "sha512-Sdr3pVyaEv5A7ZkGGYR7zN+tTl2iDcinryBPvtuv20VJrXBE8wYcOks1edBTcOWsPjCE/rMP4bo1pseyk3UTsg==", "dev": true, "requires": { - "lodash": "^4.17.14" + "@lerna/query-graph": "3.18.5", + "chalk": "^2.3.1", + "columnify": "^1.5.4" } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "@lerna/log-packed": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-3.16.0.tgz", + "integrity": "sha512-Fp+McSNBV/P2mnLUYTaSlG8GSmpXM7krKWcllqElGxvAqv6chk2K3c2k80MeVB4WvJ9tRjUUf+i7HUTiQ9/ckQ==", + "dev": true, + "requires": { + "byte-size": "^5.0.1", + "columnify": "^1.5.4", + "has-unicode": "^2.0.1", + "npmlog": "^4.1.2" + } }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true + "@lerna/npm-conf": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-3.16.0.tgz", + "integrity": "sha512-HbO3DUrTkCAn2iQ9+FF/eisDpWY5POQAOF1m7q//CZjdC2HSW3UYbKEGsSisFxSfaF9Z4jtrV+F/wX6qWs3CuA==", + "dev": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "@lerna/npm-dist-tag": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-3.18.5.tgz", + "integrity": "sha512-xw0HDoIG6HreVsJND9/dGls1c+lf6vhu7yJoo56Sz5bvncTloYGLUppIfDHQr4ZvmPCK8rsh0euCVh2giPxzKQ==", + "dev": true, + "requires": { + "@evocateur/npm-registry-fetch": "^4.0.0", + "@lerna/otplease": "3.18.5", + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2" + } }, - "atob-lite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", - "dev": true + "@lerna/npm-install": { + "version": "3.16.5", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-3.16.5.tgz", + "integrity": "sha512-hfiKk8Eku6rB9uApqsalHHTHY+mOrrHeWEs+gtg7+meQZMTS3kzv4oVp5cBZigndQr3knTLjwthT/FX4KvseFg==", + "dev": true, + "requires": { + "@lerna/child-process": "3.16.5", + "@lerna/get-npm-exec-opts": "3.13.0", + "fs-extra": "^8.1.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "signal-exit": "^3.0.2", + "write-pkg": "^3.1.0" + } }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "@lerna/npm-publish": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-3.18.5.tgz", + "integrity": "sha512-3etLT9+2L8JAx5F8uf7qp6iAtOLSMj+ZYWY6oUgozPi/uLqU0/gsMsEXh3F0+YVW33q0M61RpduBoAlOOZnaTg==", + "dev": true, + "requires": { + "@evocateur/libnpmpublish": "^1.2.2", + "@lerna/otplease": "3.18.5", + "@lerna/run-lifecycle": "3.16.2", + "figgy-pudding": "^3.5.1", + "fs-extra": "^8.1.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "pify": "^4.0.1", + "read-package-json": "^2.0.13" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true + "@lerna/npm-run-script": { + "version": "3.16.5", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-3.16.5.tgz", + "integrity": "sha512-1asRi+LjmVn3pMjEdpqKJZFT/3ZNpb+VVeJMwrJaV/3DivdNg7XlPK9LTrORuKU4PSvhdEZvJmSlxCKyDpiXsQ==", + "dev": true, + "requires": { + "@lerna/child-process": "3.16.5", + "@lerna/get-npm-exec-opts": "3.13.0", + "npmlog": "^4.1.2" + } }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "@lerna/otplease": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-3.18.5.tgz", + "integrity": "sha512-S+SldXAbcXTEDhzdxYLU0ZBKuYyURP/ND2/dK6IpKgLxQYh/z4ScljPDMyKymmEvgiEJmBsPZAAPfmNPEzxjog==", "dev": true, "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" + "@lerna/prompt": "3.18.5", + "figgy-pudding": "^3.5.1" } }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "@lerna/output": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@lerna/output/-/output-3.13.0.tgz", + "integrity": "sha512-7ZnQ9nvUDu/WD+bNsypmPG5MwZBwu86iRoiW6C1WBuXXDxM5cnIAC1m2WxHeFnjyMrYlRXM9PzOQ9VDD+C15Rg==", "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": "^4.0.0", - "test-exclude": "^6.0.0" + "npmlog": "^4.1.2" } }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "@lerna/pack-directory": { + "version": "3.16.4", + "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-3.16.4.tgz", + "integrity": "sha512-uxSF0HZeGyKaaVHz5FroDY9A5NDDiCibrbYR6+khmrhZtY0Bgn6hWq8Gswl9iIlymA+VzCbshWIMX4o2O8C8ng==", "dev": true, "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" + "@lerna/get-packed": "3.16.0", + "@lerna/package": "3.16.0", + "@lerna/run-lifecycle": "3.16.2", + "figgy-pudding": "^3.5.1", + "npm-packlist": "^1.4.4", + "npmlog": "^4.1.2", + "tar": "^4.4.10", + "temp-write": "^3.4.0" } }, - "babel-preset-current-node-syntax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", - "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", + "@lerna/package": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@lerna/package/-/package-3.16.0.tgz", + "integrity": "sha512-2lHBWpaxcBoiNVbtyLtPUuTYEaB/Z+eEqRS9duxpZs6D+mTTZMNy6/5vpEVSCBmzvdYpyqhqaYjjSLvjjr5Riw==", "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" + "load-json-file": "^5.3.0", + "npm-package-arg": "^6.1.0", + "write-pkg": "^3.1.0" } }, - "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "@lerna/package-graph": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-3.18.5.tgz", + "integrity": "sha512-8QDrR9T+dBegjeLr+n9WZTVxUYUhIUjUgZ0gvNxUBN8S1WB9r6H5Yk56/MVaB64tA3oGAN9IIxX6w0WvTfFudA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" + "@lerna/prerelease-id-from-version": "3.16.0", + "@lerna/validation-error": "3.13.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "semver": "^6.2.0" } }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "@lerna/prerelease-id-from-version": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-3.16.0.tgz", + "integrity": "sha512-qZyeUyrE59uOK8rKdGn7jQz+9uOpAaF/3hbslJVFL1NqF9ELDTqjCPXivuejMX/lN4OgD6BugTO4cR7UTq/sZA==", + "dev": true, + "requires": { + "semver": "^6.2.0" + } }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "@lerna/profiler": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-3.20.0.tgz", + "integrity": "sha512-bh8hKxAlm6yu8WEOvbLENm42i2v9SsR4WbrCWSbsmOElx3foRnMlYk7NkGECa+U5c3K4C6GeBbwgqs54PP7Ljg==", "dev": true, "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" + "figgy-pudding": "^3.5.1", + "fs-extra": "^8.1.0", + "npmlog": "^4.1.2", + "upath": "^1.2.0" + } + }, + "@lerna/project": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/project/-/project-3.21.0.tgz", + "integrity": "sha512-xT1mrpET2BF11CY32uypV2GPtPVm6Hgtha7D81GQP9iAitk9EccrdNjYGt5UBYASl4CIDXBRxwmTTVGfrCx82A==", + "dev": true, + "requires": { + "@lerna/package": "3.16.0", + "@lerna/validation-error": "3.13.0", + "cosmiconfig": "^5.1.0", + "dedent": "^0.7.0", + "dot-prop": "^4.2.0", + "glob-parent": "^5.0.0", + "globby": "^9.2.0", + "load-json-file": "^5.3.0", + "npmlog": "^4.1.2", + "p-map": "^2.1.0", + "resolve-from": "^4.0.0", + "write-json-file": "^3.2.0" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dot-prop": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", + "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "is-obj": "^1.0.0" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", + "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true } } }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "@lerna/prompt": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-3.18.5.tgz", + "integrity": "sha512-rkKj4nm1twSbBEb69+Em/2jAERK8htUuV8/xSjN0NPC+6UjzAwY52/x9n5cfmpa9lyKf/uItp7chCI7eDmNTKQ==", "dev": true, "requires": { - "tweetnacl": "^0.14.3" + "inquirer": "^6.2.0", + "npmlog": "^4.1.2" } }, - "before-after-hook": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", - "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", - "dev": true - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "@lerna/publish": { + "version": "3.22.1", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-3.22.1.tgz", + "integrity": "sha512-PG9CM9HUYDreb1FbJwFg90TCBQooGjj+n/pb3gw/eH5mEDq0p8wKdLFe0qkiqUkm/Ub5C8DbVFertIo0Vd0zcw==", "dev": true, "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@evocateur/libnpmaccess": "^3.1.2", + "@evocateur/npm-registry-fetch": "^4.0.0", + "@evocateur/pacote": "^9.6.3", + "@lerna/check-working-tree": "3.16.5", + "@lerna/child-process": "3.16.5", + "@lerna/collect-updates": "3.20.0", + "@lerna/command": "3.21.0", + "@lerna/describe-ref": "3.16.5", + "@lerna/log-packed": "3.16.0", + "@lerna/npm-conf": "3.16.0", + "@lerna/npm-dist-tag": "3.18.5", + "@lerna/npm-publish": "3.18.5", + "@lerna/otplease": "3.18.5", + "@lerna/output": "3.13.0", + "@lerna/pack-directory": "3.16.4", + "@lerna/prerelease-id-from-version": "3.16.0", + "@lerna/prompt": "3.18.5", + "@lerna/pulse-till-done": "3.13.0", + "@lerna/run-lifecycle": "3.16.2", + "@lerna/run-topologically": "3.18.5", + "@lerna/validation-error": "3.13.0", + "@lerna/version": "3.22.1", + "figgy-pudding": "^3.5.1", + "fs-extra": "^8.1.0", + "npm-package-arg": "^6.1.0", + "npmlog": "^4.1.2", + "p-finally": "^1.0.0", + "p-map": "^2.1.0", + "p-pipe": "^1.2.0", + "semver": "^6.2.0" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "@lerna/pulse-till-done": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-3.13.0.tgz", + "integrity": "sha512-1SOHpy7ZNTPulzIbargrgaJX387csN7cF1cLOGZiJQA6VqnS5eWs2CIrG8i8wmaUavj2QlQ5oEbRMVVXSsGrzA==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "npmlog": "^4.1.2" } }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "@lerna/query-graph": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-3.18.5.tgz", + "integrity": "sha512-50Lf4uuMpMWvJ306be3oQDHrWV42nai9gbIVByPBYJuVW8dT8O8pA3EzitNYBUdLL9/qEVbrR0ry1HD7EXwtRA==", "dev": true, "requires": { - "fast-json-stable-stringify": "2.x" + "@lerna/package-graph": "3.18.5", + "figgy-pudding": "^3.5.1" } }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "@lerna/resolve-symlink": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-3.16.0.tgz", + "integrity": "sha512-Ibj5e7njVHNJ/NOqT4HlEgPFPtPLWsO7iu59AM5bJDcAJcR96mLZ7KGVIsS2tvaO7akMEJvt2P+ErwCdloG3jQ==", "dev": true, "requires": { - "node-int64": "^0.4.0" + "fs-extra": "^8.1.0", + "npmlog": "^4.1.2", + "read-cmd-shim": "^1.0.1" } }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "byline": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", - "dev": true - }, - "byte-size": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz", - "integrity": "sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw==", - "dev": true - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "@lerna/rimraf-dir": { + "version": "3.16.5", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-3.16.5.tgz", + "integrity": "sha512-bQlKmO0pXUsXoF8lOLknhyQjOZsCc0bosQDoX4lujBXSWxHVTg1VxURtWf2lUjz/ACsJVDfvHZbDm8kyBk5okA==", "dev": true, "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "@lerna/child-process": "3.16.5", + "npmlog": "^4.1.2", + "path-exists": "^3.0.0", + "rimraf": "^2.6.2" }, "dependencies": { - "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" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -4066,2252 +5436,1809 @@ "requires": { "glob": "^7.1.3" } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true } } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "@lerna/run": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-3.21.0.tgz", + "integrity": "sha512-fJF68rT3veh+hkToFsBmUJ9MHc9yGXA7LSDvhziAojzOb0AI/jBDp6cEcDQyJ7dbnplba2Lj02IH61QUf9oW0Q==", "dev": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cachedir": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", - "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", - "dev": true - }, - "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" + "@lerna/command": "3.21.0", + "@lerna/filter-options": "3.20.0", + "@lerna/npm-run-script": "3.16.5", + "@lerna/output": "3.13.0", + "@lerna/profiler": "3.20.0", + "@lerna/run-topologically": "3.18.5", + "@lerna/timer": "3.13.0", + "@lerna/validation-error": "3.13.0", + "p-map": "^2.1.0" } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "@lerna/run-lifecycle": { + "version": "3.16.2", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-3.16.2.tgz", + "integrity": "sha512-RqFoznE8rDpyyF0rOJy3+KjZCeTkO8y/OB9orPauR7G2xQ7PTdCpgo7EO6ZNdz3Al+k1BydClZz/j78gNCmL2A==", "dev": true, "requires": { - "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } + "@lerna/npm-conf": "3.16.0", + "figgy-pudding": "^3.5.1", + "npm-lifecycle": "^3.1.2", + "npmlog": "^4.1.2" } }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "@lerna/run-topologically": { + "version": "3.18.5", + "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-3.18.5.tgz", + "integrity": "sha512-6N1I+6wf4hLOnPW+XDZqwufyIQ6gqoPfHZFkfWlvTQ+Ue7CuF8qIVQ1Eddw5HKQMkxqN10thKOFfq/9NQZ4NUg==", "dev": true, "requires": { - "caller-callsite": "^2.0.0" + "@lerna/query-graph": "3.18.5", + "figgy-pudding": "^3.5.1", + "p-queue": "^4.0.0" } }, - "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==" - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "@lerna/symlink-binary": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-3.17.0.tgz", + "integrity": "sha512-RLpy9UY6+3nT5J+5jkM5MZyMmjNHxZIZvXLV+Q3MXrf7Eaa1hNqyynyj4RO95fxbS+EZc4XVSk25DGFQbcRNSQ==", "dev": true, "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" + "@lerna/create-symlink": "3.16.2", + "@lerna/package": "3.16.0", + "fs-extra": "^8.1.0", + "p-map": "^2.1.0" } }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "@lerna/symlink-dependencies": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-3.17.0.tgz", + "integrity": "sha512-KmjU5YT1bpt6coOmdFueTJ7DFJL4H1w5eF8yAQ2zsGNTtZ+i5SGFBWpb9AQaw168dydc3s4eu0W0Sirda+F59Q==", "dev": true, "requires": { - "rsvp": "^4.8.4" + "@lerna/create-symlink": "3.16.2", + "@lerna/resolve-symlink": "3.16.0", + "@lerna/symlink-binary": "3.17.0", + "fs-extra": "^8.1.0", + "p-finally": "^1.0.0", + "p-map": "^2.1.0", + "p-map-series": "^1.0.0" } }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "@lerna/timer": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-3.13.0.tgz", + "integrity": "sha512-RHWrDl8U4XNPqY5MQHkToWS9jHPnkLZEt5VD+uunCKTfzlxGnRCr3/zVr8VGy/uENMYpVP3wJa4RKGY6M0vkRw==", "dev": true }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "@lerna/validation-error": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-3.13.0.tgz", + "integrity": "sha512-SiJP75nwB8GhgwLKQfdkSnDufAaCbkZWJqEDlKOUPUvVOplRGnfL+BPQZH5nvq2BYSRXsksXWZ4UHVnQZI/HYA==", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "npmlog": "^4.1.2" } }, - "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 - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "@lerna/version": { + "version": "3.22.1", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-3.22.1.tgz", + "integrity": "sha512-PSGt/K1hVqreAFoi3zjD0VEDupQ2WZVlVIwesrE5GbrL2BjXowjCsTDPqblahDUPy0hp6h7E2kG855yLTp62+g==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "@lerna/check-working-tree": "3.16.5", + "@lerna/child-process": "3.16.5", + "@lerna/collect-updates": "3.20.0", + "@lerna/command": "3.21.0", + "@lerna/conventional-commits": "3.22.0", + "@lerna/github-client": "3.22.0", + "@lerna/gitlab-client": "3.15.0", + "@lerna/output": "3.13.0", + "@lerna/prerelease-id-from-version": "3.16.0", + "@lerna/prompt": "3.18.5", + "@lerna/run-lifecycle": "3.16.2", + "@lerna/run-topologically": "3.18.5", + "@lerna/validation-error": "3.13.0", + "chalk": "^2.3.1", + "dedent": "^0.7.0", + "load-json-file": "^5.3.0", + "minimatch": "^3.0.4", + "npmlog": "^4.1.2", + "p-map": "^2.1.0", + "p-pipe": "^1.2.0", + "p-reduce": "^1.0.0", + "p-waterfall": "^1.0.0", + "semver": "^6.2.0", + "slash": "^2.0.0", + "temp-write": "^3.4.0", + "write-json-file": "^3.2.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true } } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true + "@lerna/write-log-file": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-3.13.0.tgz", + "integrity": "sha512-RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==", + "dev": true, + "requires": { + "npmlog": "^4.1.2", + "write-file-atomic": "^2.3.0" + } }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", "dev": true, "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" }, "dependencies": { - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", "dev": true - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } } } }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "@octokit/auth-token": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz", + "integrity": "sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ==", "dev": true, "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "@octokit/types": "^5.0.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "@octokit/core": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.2.1.tgz", + "integrity": "sha512-XfFSDDwv6tclUenS0EmB6iA7u+4aOHBT1Lz4PtQNQQg3hBbNaR/+Uv5URU+egeIuuGAiMRiDyY92G4GBOWOqDA==", "dev": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "@octokit/auth-token": "^2.4.0", + "@octokit/graphql": "^4.3.1", + "@octokit/request": "^5.4.0", + "@octokit/types": "^5.0.0", + "before-after-hook": "^2.1.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "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==", + "@octokit/endpoint": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.5.tgz", + "integrity": "sha512-70K5u6zd45ItOny6aHQAsea8HHQjlQq85yqOMe+Aj8dkhN2qSJ9T+Q3YjUjEYfPRBcuUWNgMn62DQnP/4LAIiQ==", "dev": true, "requires": { - "color-name": "~1.1.4" + "@octokit/types": "^5.0.0", + "is-plain-object": "^4.0.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-4.1.1.tgz", + "integrity": "sha512-5Aw8LLVsDlZsETVMhoMXzqsXwQqr/0vlnBYzIXJbYo2F4yYlhLHs+Ez7Bod7IIQKWkJbJfxrWD7pA1Dw1TKrwA==", + "dev": true + }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true + } } }, - "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==", - "dev": true + "@octokit/graphql": { + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.7.tgz", + "integrity": "sha512-Gk0AR+DcwIK/lK/GX+OQ99UqtenQhcbrhHHfOYlrCQe17ADnX3EKAOKRsAZ9qZvpi5MuwWm/Nm+9aO2kTDSdyA==", + "dev": true, + "requires": { + "@octokit/request": "^5.3.0", + "@octokit/types": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true + } + } }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "@octokit/plugin-enterprise-rest": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", + "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", "dev": true }, - "columnify": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "@octokit/plugin-paginate-rest": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz", + "integrity": "sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==", "dev": true, "requires": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" + "@octokit/types": "^2.0.1" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "@octokit/types": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", + "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "@types/node": ">= 8" } } } }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "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==", + "@octokit/plugin-request-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz", + "integrity": "sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==", "dev": true }, - "commitizen": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.2.tgz", - "integrity": "sha512-uz+E6lGsDBDI2mYA4QfOxFeqdWUYwR1ky11YmLgg2BnEEP3YbeejpT4lxzGjkYqumnXr062qTOGavR9NtX/iwQ==", + "@octokit/plugin-rest-endpoint-methods": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz", + "integrity": "sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==", "dev": true, "requires": { - "cachedir": "2.2.0", - "cz-conventional-changelog": "3.3.0", - "dedent": "0.7.0", - "detect-indent": "6.0.0", - "find-node-modules": "2.0.0", - "find-root": "1.1.0", - "fs-extra": "8.1.0", - "glob": "7.1.4", - "inquirer": "6.5.2", - "is-utf8": "^0.2.1", - "lodash": "^4.17.20", - "minimist": "1.2.5", - "strip-bom": "4.0.0", - "strip-json-comments": "3.0.1" + "@octokit/types": "^2.0.1", + "deprecation": "^2.3.1" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "@octokit/types": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", + "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@types/node": ">= 8" } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + } + } + }, + "@octokit/request": { + "version": "5.4.7", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.7.tgz", + "integrity": "sha512-FN22xUDP0i0uF38YMbOfx6TotpcENP5W8yJM1e/LieGXn6IoRxDMnBf7tx5RKSW4xuUZ/1P04NFZy5iY3Rax1A==", + "dev": true, + "requires": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.0.0", + "@octokit/types": "^5.0.0", + "deprecation": "^2.0.0", + "is-plain-object": "^4.0.0", + "node-fetch": "^2.3.0", + "once": "^1.4.0", + "universal-user-agent": "^6.0.0" + }, + "dependencies": { + "@octokit/request-error": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz", + "integrity": "sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "@octokit/types": "^5.0.1", + "deprecation": "^2.0.0", + "once": "^1.4.0" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "is-plain-object": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-4.1.1.tgz", + "integrity": "sha512-5Aw8LLVsDlZsETVMhoMXzqsXwQqr/0vlnBYzIXJbYo2F4yYlhLHs+Ez7Bod7IIQKWkJbJfxrWD7pA1Dw1TKrwA==", + "dev": true + }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", "dev": true } } }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "requires": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "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==", + "@octokit/request-error": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz", + "integrity": "sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "@octokit/types": "^2.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "dependencies": { + "@octokit/types": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", + "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "dev": true, + "requires": { + "@types/node": ">= 8" + } + } } }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "@octokit/rest": { + "version": "16.43.2", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz", + "integrity": "sha512-ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==", "dev": true, "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" + "@octokit/auth-token": "^2.4.0", + "@octokit/plugin-paginate-rest": "^1.1.1", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "2.4.0", + "@octokit/request": "^5.2.0", + "@octokit/request-error": "^1.0.2", + "atob-lite": "^2.0.0", + "before-after-hook": "^2.0.0", + "btoa-lite": "^1.0.0", + "deprecation": "^2.0.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "octokit-pagination-methods": "^1.1.0", + "once": "^1.4.0", + "universal-user-agent": "^4.0.0" } }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "conventional-changelog-angular": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz", - "integrity": "sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==", + "@octokit/types": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-5.4.0.tgz", + "integrity": "sha512-D/uotqF69M50OIlwMqgyIg9PuLT2daOiBAYF0P40I2ekFA2ESwwBY5dxZe/UhXdPvIbNKDzuZmQrO7rMpuFbcg==", "dev": true, "requires": { - "compare-func": "^2.0.0", - "q": "^1.5.1" + "@types/node": ">= 8" } }, - "conventional-changelog-conventionalcommits": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz", - "integrity": "sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw==", + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, "requires": { - "compare-func": "^2.0.0", - "lodash": "^4.17.15", - "q": "^1.5.1" + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, - "conventional-changelog-core": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz", - "integrity": "sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==", + "@semantic-release/commit-analyzer": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-8.0.1.tgz", + "integrity": "sha512-5bJma/oB7B4MtwUkZC2Bf7O1MHfi4gWe4mA+MIQ3lsEV0b422Bvl1z5HRpplDnMLHH3EXMoRdEng6Ds5wUqA3A==", "dev": true, "requires": { - "conventional-changelog-writer": "^4.0.6", - "conventional-commits-parser": "^3.0.3", - "dateformat": "^3.0.0", - "get-pkg-repo": "^1.0.0", - "git-raw-commits": "2.0.0", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^2.0.3", - "lodash": "^4.2.1", - "normalize-package-data": "^2.3.5", - "q": "^1.5.1", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0", - "through2": "^3.0.0" + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.7", + "debug": "^4.0.0", + "import-from": "^3.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.2" }, "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "fill-range": "^7.0.1" } }, - "dargs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "ms": "2.1.2" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "to-regex-range": "^5.0.1" } }, - "git-raw-commits": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", - "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { - "dargs": "^4.0.1", - "lodash.template": "^4.0.2", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "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 }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "@semantic-release/error": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", + "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", + "dev": true + }, + "@semantic-release/github": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-7.2.0.tgz", + "integrity": "sha512-tMRnWiiWb43whRHvbDGXq4DGEbKRi56glDpXDJZit4PIiwDPX7Kx3QzmwRtDOcG+8lcpGjpdPabYZ9NBxoI2mw==", + "dev": true, + "requires": { + "@octokit/rest": "^18.0.0", + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^3.0.0", + "bottleneck": "^2.18.1", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "fs-extra": "^9.0.0", + "globby": "^11.0.0", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "issue-parser": "^6.0.0", + "lodash": "^4.17.4", + "mime": "^2.4.3", + "p-filter": "^2.0.0", + "p-retry": "^4.0.0", + "url-join": "^4.0.0" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", "dev": true }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "@octokit/plugin-paginate-rest": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.6.0.tgz", + "integrity": "sha512-o+O8c1PqsC5++BHXfMZabRRsBIVb34tXPWyQLyp2IXq5MmkxdipS7TXM4Y9ldL1PzY9CTrCsn/lzFFJGM3oRRA==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "@octokit/types": "^5.5.0" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "@octokit/plugin-rest-endpoint-methods": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.2.1.tgz", + "integrity": "sha512-QyFr4Bv807Pt1DXZOC5a7L5aFdrwz71UHTYoHVajYV5hsqffWm8FUl9+O7nxRu5PDMtB/IKrhFqTmdBTK5cx+A==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "@octokit/types": "^5.5.0", + "deprecation": "^2.3.1" } }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "@octokit/rest": { + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.0.9.tgz", + "integrity": "sha512-CC5+cIx974Ygx9lQNfUn7/oXDQ9kqGiKUC6j1A9bAVZZ7aoTF8K6yxu0pQhQrLBwSl92J6Z3iVDhGhGFgISCZg==", "dev": true, "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" + "@octokit/core": "^3.0.0", + "@octokit/plugin-paginate-rest": "^2.2.0", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "4.2.1" } }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "@octokit/types": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-5.5.0.tgz", + "integrity": "sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ==", "dev": true, "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" + "@types/node": ">= 8" } }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "debug": "4" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "p-try": "^1.0.0" + "fill-range": "^7.0.1" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "ms": "2.1.2" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "path-type": "^4.0.0" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", "dev": true, "requires": { - "pify": "^3.0.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", "dev": true, "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" } }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" } }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "agent-base": "6", + "debug": "4" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "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 - } - } - }, - "conventional-changelog-preset-loader": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", - "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", - "dev": true - }, - "conventional-changelog-writer": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.18.tgz", - "integrity": "sha512-mAQDCKyB9HsE8Ko5cCM1Jn1AWxXPYV0v8dFPabZRkvsiWUul2YyAqbIaoMKF88Zf2ffnOPSvKhboLf3fnjo5/A==", - "dev": true, - "requires": { - "compare-func": "^2.0.0", - "conventional-commits-filter": "^2.0.7", - "dateformat": "^3.0.0", - "handlebars": "^4.7.6", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "semver": "^6.0.0", - "split": "^1.0.0", - "through2": "^4.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } }, - "conventional-commit-types": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", - "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", - "dev": true - }, - "conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", - "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - } - }, - "conventional-commits-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.0.tgz", - "integrity": "sha512-XmJiXPxsF0JhAKyfA2Nn+rZwYKJ60nanlbSWwwkGwLQFbugsc0gv1rzc7VbbUWAzJfR1qR87/pNgv9NgmxtBMQ==", + "@semantic-release/npm": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-7.0.8.tgz", + "integrity": "sha512-8c1TLwKB/xT5E1FNs5l4GFtaNTznHesJk7tw3pGSlVxRqDXa1EZI+DfziZlO58Wk3PpS2ecu661kvBdz9aMgYQ==", "dev": true, "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.1", + "@semantic-release/error": "^2.2.0", + "aggregate-error": "^3.0.0", + "execa": "^4.0.0", + "fs-extra": "^9.0.0", "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^2.0.0", - "through2": "^4.0.0", - "trim-off-newlines": "^1.0.0" - } - }, - "conventional-recommended-bump": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz", - "integrity": "sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ==", - "dev": true, - "requires": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^2.1.1", - "conventional-commits-filter": "^2.0.2", - "conventional-commits-parser": "^3.0.3", - "git-raw-commits": "2.0.0", - "git-semver-tags": "^2.0.3", - "meow": "^4.0.0", - "q": "^1.5.1" + "nerf-dart": "^1.0.0", + "normalize-url": "^5.0.0", + "npm": "^6.14.8", + "rc": "^1.2.8", + "read-pkg": "^5.0.0", + "registry-auth-token": "^4.0.0", + "semver": "^7.1.2", + "tempy": "^1.0.0" }, "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "camelcase": "^4.1.0", - "map-obj": "^2.0.0", - "quick-lru": "^1.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" } }, - "dargs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" } }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "pump": "^3.0.0" } }, - "git-raw-commits": { + "is-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", - "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { - "dargs": "^4.0.1", - "lodash.template": "^4.0.2", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0" + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "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 }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "normalize-url": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-5.3.0.tgz", + "integrity": "sha512-9/nOVLYYe/dO/eJeQUNaGUF4m4Z5E7cb9oNTKabH+bNf19mqj60txTcveQxL0GlcWLXCxkOu2/LwL8oW0idIDA==", "dev": true }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "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": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" + "path-key": "^3.0.0" } }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "mimic-fn": "^2.1.0" } }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "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==", "dev": true, "requires": { - "pify": "^3.0.0" + "shebang-regex": "^3.0.0" } }, - "pify": { + "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "isexe": "^2.0.0" } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + } + } + }, + "@semantic-release/release-notes-generator": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-9.0.1.tgz", + "integrity": "sha512-bOoTiH6SiiR0x2uywSNR7uZcRDl22IpZhj+Q5Bn0v+98MFtOMhCxFhbrKQjhbYoZw7vps1mvMRmFkp/g6R9cvQ==", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^4.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.0.0", + "debug": "^4.0.0", + "get-stream": "^5.0.0", + "import-from": "^3.0.0", + "into-stream": "^5.0.0", + "lodash": "^4.17.4", + "read-pkg-up": "^7.0.0" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "indent-string": "^3.0.0", - "strip-indent": "^2.0.0" + "ms": "2.1.2" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "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" - } - } + "pump": "^3.0.0" } }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "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 } } }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { - "safe-buffer": "~5.1.1" + "type-detect": "4.0.8" } }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", "dev": true, "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "@sinonjs/commons": "^1.7.0" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } }, - "core-js": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", - "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==", + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "@types/babel__core": { + "version": "7.1.10", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.10.tgz", + "integrity": "sha512-x8OM8XzITIMyiwl5Vmo2B1cR1S1Ipkyv4mdlbJjMa1lmuKvKY9FrBbEANIaMlnWn5Rf7uO+rC/VgYabNkE17Hw==", "dev": true, "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "coveralls": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", - "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", + "@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", "dev": true, "requires": { - "js-yaml": "^3.13.1", - "lcov-parse": "^1.0.0", - "log-driver": "^1.2.7", - "minimist": "^1.2.5", - "request": "^2.88.2" + "@babel/types": "^7.0.0" } }, - "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 - }, - "cross-env": { + "@types/babel__template": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.3.tgz", + "integrity": "sha512-uCoznIPDmnickEi6D0v11SBpW0OuVqHJCa7syXqQHy5uktSCreIlt0iglsCnmvz8yCb38hGcWeseA8cWJSwv5Q==", "dev": true, "requires": { - "cross-spawn": "^7.0.1" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "@types/babel__traverse": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "@babel/types": "^7.3.0" } }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", "dev": true, "requires": { - "array-find-index": "^1.0.1" + "@types/minimatch": "*", + "@types/node": "*" } }, - "cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "dev": true - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "cz-conventional-changelog": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", - "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", + "@types/graceful-fs": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz", + "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==", "dev": true, "requires": { - "@commitlint/load": ">6.1.1", - "chalk": "^2.4.1", - "commitizen": "^4.0.3", - "conventional-commit-types": "^3.0.0", - "lodash.map": "^4.5.1", - "longest": "^2.0.1", - "word-wrap": "^1.0.3" - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "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" - } - } + "@types/node": "*" } }, - "dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", "dev": true }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "@types/istanbul-lib-coverage": "*" } }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "dev": true, "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" } }, - "dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "@types/jest": { + "version": "26.0.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.14.tgz", + "integrity": "sha512-Hz5q8Vu0D288x3iWXePSn53W7hAjP0H7EQ6QvDO9c7t46mR0lNOLlfuwQ+JkVxuhygHzlzPX+0jKdA3ZgSh+Vg==", "dev": true, "requires": { - "ms": "2.0.0" + "jest-diff": "^25.2.1", + "pretty-format": "^25.2.1" } }, - "debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, - "decamelize": { + "@types/minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=", + "dev": true }, - "decimal.js": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", + "@types/node": { + "version": "14.11.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.5.tgz", + "integrity": "sha512-jVFzDV6NTbrLMxm4xDSIW/gKnk8rQLF9wAzLWIOg+5nU6ACrIMndeBdXci0FGtqJbP9tQvm6V39eshc96TO2wQ==", "dev": true }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, - "deep-equal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", - "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=", + "@types/prettier": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.1.tgz", + "integrity": "sha512-2zs+O+UkDsJ1Vcp667pd3f8xearMdopz/z54i99wtRDI5KLmngk7vlrYZD0ZjKHaROR03EznlBbVY9PfAEyJIQ==", "dev": true }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "@types/stack-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", "dev": true }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "@types/yargs": { + "version": "15.0.7", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.7.tgz", + "integrity": "sha512-Gf4u3EjaPNcC9cTu4/j2oN14nSVhr8PQ+BvBcBQHAhDZfl0bVIiLgvnRXv/dn58XhTm9UXvBpvJpDlwV65QxOA==", "dev": true, "requires": { - "clone": "^1.0.2" + "@types/yargs-parser": "*" } }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", + "dev": true + }, + "@zkochan/cmd-shim": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz", + "integrity": "sha512-o8l0+x7C7sMZU3v9GuJIAU10qQLtwR1dtRQIOmlNMtyaqhmpXOzx1HWiYoWfmmf9HHZoAkXpc9TM9PQYF9d4Jg==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "is-windows": "^1.0.0", + "mkdirp-promise": "^5.0.1", + "mz": "^2.5.0" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, - "detect-indent": { + "acorn-globals": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", - "dev": true - }, - "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 - }, - "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, "requires": { - "asap": "^2.0.0", - "wrappy": "1" + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" } }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "requires": { - "esutils": "^2.0.2" + "es6-promisify": "^5.0.0" } }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", "dev": true, "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } + "humanize-ms": "^1.2.1" } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "requires": { - "is-obj": "^2.0.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "ajv": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", + "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "string-width": "^2.0.0" } }, - "email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "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==", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "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": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } + "color-convert": "^1.9.0" } }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "dev": true + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { - "once": "^1.4.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { - "ansi-colors": "^4.1.1" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "envinfo": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz", - "integrity": "sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==", + "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" + } + }, + "argv-formatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", + "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=", "dev": true }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, - "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" - } + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true }, - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz", + "integrity": "sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "array-uniq": "^1.0.1" } }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "safer-buffer": "~2.1.0" } }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "dev": true, "requires": { - "es6-promise": "^4.0.3" + "lodash": "^4.17.14" } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "atob-lite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", + "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", + "dev": true + }, + "babel-jest": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.5.2.tgz", + "integrity": "sha512-U3KvymF3SczA3vOL/cgiUFOznfMET+XDIXiWnoJV45siAp2pLMG8i2+/MGZlAC3f/F6Q40LR4M4qDrWZ9wkK8A==", "dev": true, "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "@jest/transform": "^26.5.2", + "@jest/types": "^26.5.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" }, "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "@types/istanbul-lib-report": "*" } }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "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==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "optional": true + "requires": { + "color-convert": "^2.0.1" + } }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } - } - } - }, - "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^6.0.0", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.19", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + }, + "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==", "dev": true, "requires": { - "ms": "2.1.2" + "color-name": "~1.1.4" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "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==", "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==", + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "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" + } } } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "object.assign": "^4.1.0" } }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" } }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "babel-plugin-jest-hoist": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.5.0.tgz", + "integrity": "sha512-ck17uZFD3CDfuwCLATWZxkkuGGFhMij8quP8CNhwj8ek1mqFgbFzRJ30xwC04LLscj/aKsVFfRST+b5PT7rSuw==", "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" } }, - "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 - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "babel-preset-current-node-syntax": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz", + "integrity": "sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w==", "dev": true, "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "@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" } }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "babel-preset-jest": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.5.0.tgz", + "integrity": "sha512-F2vTluljhqkiGSJGBg/jOruA8vIIIL11YrxRcO7nviNTMbbofPSHwnm8mgP7d/wS7wRSexRoI6X1A6T74d4LQA==", "dev": true, "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "babel-plugin-jest-hoist": "^26.5.0", + "babel-preset-current-node-syntax": "^0.1.3" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true - }, - "exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "is-descriptor": "^1.0.0" } }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "kind-of": "^6.0.0" } }, - "shebang-regex": { + "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "kind-of": "^6.0.0" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "homedir-polyfill": "^1.0.1" + "tweetnacl": "^0.14.3" } }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } + "before-after-hook": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", + "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==", + "dev": true }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", + "dev": true + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" } }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "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": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { + "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", "to-regex": "^3.0.1" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -6320,794 +7247,850 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.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 - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "browserslist": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", + "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", "dev": true, "requires": { - "bser": "2.1.1" + "caniuse-lite": "^1.0.30001043", + "electron-to-chromium": "^1.3.413", + "node-releases": "^1.1.53", + "pkg-up": "^2.0.0" } }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "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": { - "escape-string-regexp": "^1.0.5" + "fast-json-stable-stringify": "2.x" } }, - "file-entry-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", - "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", + "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": { - "flat-cache": "^3.0.4" + "node-int64": "^0.4.0" } }, - "filename-reserved-regex": { + "btoa-lite": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", - "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", "dev": true }, - "filenamify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", - "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "byline": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", + "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", + "dev": true + }, + "byte-size": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-5.0.1.tgz", + "integrity": "sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw==", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "dev": true, "requires": { - "filename-reserved-regex": "^1.0.0", - "strip-outer": "^1.0.0", - "trim-repeated": "^1.0.0" + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } } }, - "filenamify-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", - "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "filenamify": "^1.0.0", - "humanize-url": "^1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "pump": "^3.0.0" } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true } } }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "cachedir": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", + "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", + "dev": true + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } } }, - "find-node-modules": { + "caller-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.0.0.tgz", - "integrity": "sha512-8MWIBRgJi/WpjjfVXumjPKCtmQ10B+fjx6zmSA+770GMJirLhWIzg8l763rhjl9xaeaHbnxPNRQKq2mgMhr+aw==", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, "requires": { - "findup-sync": "^3.0.0", - "merge": "^1.2.1" + "caller-callsite": "^2.0.0" } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, - "find-up": { + "camelcase": { "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" - } + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true }, - "find-versions": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", - "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "requires": { - "semver-regex": "^2.0.0" + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } } }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "caniuse-lite": { + "version": "1.0.30001083", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001083.tgz", + "integrity": "sha512-CnYJ27awX4h7yj5glfK7r1TOI13LBytpLzEgfj0s4mY75/F8pnQcYjL+oVpmS38FB59+vU0gscQ9D8tc+lIXvA==", + "dev": true + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", "dev": true, "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" + "rsvp": "^4.8.4" } }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", + "dev": true + }, + "cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", "dev": true, "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" } }, - "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", "dev": true, "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "ansi-styles": "^3.2.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.2.0" } }, - "for-in": { + "char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "minipass": "^2.6.0" + "restore-cursor": "^2.0.0" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "colors": "1.0.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + } } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" }, "dependencies": { "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "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==", + "dev": true, + "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==", "dev": true }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "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==", + "dev": true + }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.0" } } } }, - "genfun": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "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==", + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "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==" + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } }, - "get-intrinsic": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", - "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "mimic-response": "^1.0.0" } }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "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==", + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, - "get-pkg-repo": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", - "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "meow": "^3.3.0", - "normalize-package-data": "^2.3.0", - "parse-github-repo-url": "^1.3.0", - "through2": "^2.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "map-visit": "^1.0.0", + "object-visit": "^1.0.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "columnify": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", + "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "dev": true, + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "ansi-regex": "^2.0.0" } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + } + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commitizen": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.1.tgz", + "integrity": "sha512-nZsp8IThkDu7C+93BFD/mLShb9Gd6Wsaf90tpKE3x/6u5y/Q52kzanIJpGr0qvIsJ5bCMpgKtr3Lbu3miEJfaA==", + "dev": true, + "requires": { + "cachedir": "2.2.0", + "cz-conventional-changelog": "3.2.0", + "dedent": "0.7.0", + "detect-indent": "6.0.0", + "find-node-modules": "2.0.0", + "find-root": "1.1.0", + "fs-extra": "8.1.0", + "glob": "7.1.4", + "inquirer": "6.5.2", + "is-utf8": "^0.2.1", + "lodash": "^4.17.20", + "minimist": "1.2.5", + "strip-bom": "4.0.0", + "strip-json-comments": "3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "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": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "cz-conventional-changelog": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz", + "integrity": "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" } }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "ansi-regex": "^4.1.0" } }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", "dev": true } } }, - "get-port": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", - "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", - "dev": true - }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, "requires": { - "pump": "^3.0.0" + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "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==", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "gh-pages": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.1.0.tgz", - "integrity": "sha512-3b1rly9kuf3/dXsT8+ZxP0UhNLOo1CItj+3e31yUVcaph/yDsJ9RzD7JOw5o5zpBTJVQLlJAASNkUfepi9fe2w==", + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", "dev": true, "requires": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", - "filenamify-url": "^1.0.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "globby": "^6.1.0" + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dot-prop": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", + "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "is-obj": "^1.0.0" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.6" + "pify": "^3.0.0" } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true } } }, - "git-raw-commits": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.8.tgz", - "integrity": "sha512-6Gk7tQHGMLEL1bSnrMJTCVt2AQl4EmCcJDtzs/JJacCb2+TNEyHM67Gp7Ri9faF7OcGpjGGRjHLvs/AG7QKZ2Q==", + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "conventional-changelog-angular": { + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.11.tgz", + "integrity": "sha512-nSLypht/1yEflhuTogC03i7DX7sOrXGsRn14g131Potqi6cbGbGEE9PSDEHKldabB6N76HiSyw9Ph+kLmC04Qw==", "dev": true, "requires": { - "dargs": "^7.0.0", - "lodash.template": "^4.0.2", - "meow": "^8.0.0", - "split2": "^2.0.0", - "through2": "^4.0.0" + "compare-func": "^2.0.0", + "q": "^1.5.1" } }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "conventional-changelog-conventionalcommits": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.4.0.tgz", + "integrity": "sha512-ybvx76jTh08tpaYrYn/yd0uJNLt5yMrb1BphDe4WBredMlvPisvMghfpnJb6RmRNcqXeuhR6LfGZGewbkRm9yA==", "dev": true, "requires": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" } }, - "git-semver-tags": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz", - "integrity": "sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==", + "conventional-changelog-core": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.3.tgz", + "integrity": "sha512-LMMX1JlxPIq/Ez5aYAYS5CpuwbOk6QFp8O4HLAcZxe3vxoCtABkhfjetk8IYdRB9CDQGwJFLR3Dr55Za6XKgUQ==", "dev": true, "requires": { - "meow": "^4.0.0", - "semver": "^6.0.0" + "conventional-changelog-writer": "^4.0.6", + "conventional-commits-parser": "^3.0.3", + "dateformat": "^3.0.0", + "get-pkg-repo": "^1.0.0", + "git-raw-commits": "2.0.0", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^2.0.3", + "lodash": "^4.2.1", + "normalize-package-data": "^2.3.5", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^3.0.0" }, "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, "camelcase-keys": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", @@ -7119,6 +8102,15 @@ "quick-lru": "^1.0.0" } }, + "dargs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -7128,11 +8120,30 @@ "locate-path": "^2.0.0" } }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true + "git-raw-commits": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", + "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", + "dev": true, + "requires": { + "dargs": "^4.0.1", + "lodash.template": "^4.0.2", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } }, "indent-string": { "version": "3.2.0", @@ -7195,26 +8206,6 @@ "is-plain-obj": "^1.1.0" } }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -7249,27 +8240,6 @@ "json-parse-better-errors": "^1.0.1" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, "quick-lru": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", @@ -7307,12 +8277,6 @@ "strip-indent": "^2.0.0" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -7333,1083 +8297,1193 @@ } } }, - "git-up": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.2.tgz", - "integrity": "sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ==", + "conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "dev": true + }, + "conventional-changelog-writer": { + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.17.tgz", + "integrity": "sha512-IKQuK3bib/n032KWaSb8YlBFds+aLmzENtnKtxJy3+HqDq5kohu3g/UdNbIHeJWygfnEbZjnCKFxAW0y7ArZAw==", "dev": true, "requires": { - "is-ssh": "^1.3.0", - "parse-url": "^5.0.0" + "compare-func": "^2.0.0", + "conventional-commits-filter": "^2.0.6", + "dateformat": "^3.0.0", + "handlebars": "^4.7.6", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^7.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^3.0.0" } }, - "git-url-parse": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.4.0.tgz", - "integrity": "sha512-KlIa5jvMYLjXMQXkqpFzobsyD/V2K5DRHl5OAf+6oDFPlPLxrGDVQlIdI63c4/Kt6kai4kALENSALlzTGST3GQ==", + "conventional-commit-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", + "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", + "dev": true + }, + "conventional-commits-filter": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz", + "integrity": "sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw==", "dev": true, "requires": { - "git-up": "^4.0.0" + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" } }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", - "dev": true, - "requires": { - "ini": "^1.3.2" - } - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "dev": true, - "requires": { - "ini": "^1.3.4" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "conventional-commits-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz", + "integrity": "sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA==", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.1", + "lodash": "^4.17.15", + "meow": "^7.0.0", + "split2": "^2.0.0", + "through2": "^3.0.0", + "trim-off-newlines": "^1.0.0" } }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "conventional-recommended-bump": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-5.0.1.tgz", + "integrity": "sha512-RVdt0elRcCxL90IrNP0fYCpq1uGt2MALko0eyeQ+zQuDVWtMGAy9ng6yYn3kax42lCj9+XBxQ8ZN6S9bdKxDhQ==", "dev": true, "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.1.1", + "conventional-commits-filter": "^2.0.2", + "conventional-commits-parser": "^3.0.3", + "git-raw-commits": "2.0.0", + "git-semver-tags": "^2.0.3", + "meow": "^4.0.0", + "q": "^1.5.1" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "dargs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "git-raw-commits": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", + "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", + "dev": true, + "requires": { + "dargs": "^4.0.1", + "lodash.template": "^4.0.2", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", "dev": true - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "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 - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { + }, + "load-json-file": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "meow": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" + } + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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" + } + } } + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true } } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "safe-buffer": "~5.1.1" } }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { - "whatwg-encoding": "^1.0.5" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "core-js": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", "dev": true }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "core-js-compat": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", "dev": true, "requires": { - "agent-base": "4", - "debug": "3.1.0" + "browserslist": "^4.8.5", + "semver": "7.0.0" }, "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true } } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" }, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "dev": true, "requires": { - "ms": "^2.1.1" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true } } }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "coveralls": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", + "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", "dev": true, "requires": { - "ms": "^2.0.0" + "js-yaml": "^3.13.1", + "lcov-parse": "^1.0.0", + "log-driver": "^1.2.7", + "minimist": "^1.2.5", + "request": "^2.88.2" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } } }, - "humanize-url": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", - "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "normalize-url": "^1.0.0", - "strip-url-auth": "^1.0.0" + "capture-stack-trace": "^1.0.0" } }, - "husky": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.5.tgz", - "integrity": "sha512-E5S/1HMoDDaqsH8kDF5zeKEQbYqe3wL9zJDyqyYqc8I4vHBtAoxkDBGXox0lZ9RI+k5GyB728vZdmnM4bYap+g==", + "cross-env": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^7.0.0", - "find-versions": "^3.2.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^4.2.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" + "cross-spawn": "^7.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, - "i": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", - "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + } } }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", "dev": true }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "cssom": "~0.3.6" }, "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true } } }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" + "array-find-index": "^1.0.1" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", "dev": true }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "cz-conventional-changelog": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", + "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + }, + "dependencies": { + "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" + } + } } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } }, - "init-package-json": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", - "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", "dev": true, "requires": { - "glob": "^7.1.1", - "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "1 || 2", - "semver": "2.x || 3.x || 4 || 5", - "validate-npm-package-license": "^3.0.1", - "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" } }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "ms": "2.0.0" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "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" - } } } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", "dev": true }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "mimic-response": "^1.0.0" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "deep-equal": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", + "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=", "dev": true }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { - "ci-info": "^2.0.0" + "clone": "^1.0.2" } }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "has": "^1.0.3" + "object-keys": "^1.0.12" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "kind-of": "^6.0.0" } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } } } }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true, - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", "dev": true }, - "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==", + "detect-indent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", "dev": true }, - "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==", + "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 }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "asap": "^2.0.0", + "wrappy": "1" } }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "diff-sequences": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", + "dev": true + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "path-type": "^3.0.0" + } + }, + "doctrine": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", + "dev": true, + "requires": { + "esutils": "^1.1.6", + "isarray": "0.0.1" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "esutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", + "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", - "dev": true - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } } }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, - "is-ssh": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz", - "integrity": "sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ==", + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "dev": true, "requires": { - "protocols": "^1.1.0" + "is-obj": "^2.0.0" + }, + "dependencies": { + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "readable-stream": "^2.0.2" } }, - "is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, "requires": { - "text-extensions": "^1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, - "optional": true, "requires": { - "is-docker": "^2.0.0" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "electron-to-chromium": { + "version": "1.3.473", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.473.tgz", + "integrity": "sha512-smevlzzMNz3vMz6OLeeCq5HRWEj2AcgccNPYnAx4Usx0IOciq9DU36RJcICcS09hXoY7t7deRfVYKD14IrGb9A==", "dev": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", "dev": true }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "emittery": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz", + "integrity": "sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ==", "dev": true }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "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==", "dev": true }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "iconv-lite": "^0.6.2" }, "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", "dev": true, "requires": { - "ms": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3.0.0" } - }, - "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 - }, - "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 } } }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "once": "^1.4.0" } }, - "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "dependencies": { - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - } - } + "ansi-colors": "^4.1.1" } }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "env-ci": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.0.2.tgz", + "integrity": "sha512-Xc41mKvjouTXD3Oy9AqySz1IeyvJvHZ20Twf5ZLYbNpPPIuCnL/qHCmNlD01LoNy0JTunw9HPYVptD19Ac7Mbw==", "dev": true, "requires": { - "@jest/types": "^26.6.2", "execa": "^4.0.0", - "throat": "^5.0.0" + "java-properties": "^1.0.0" }, "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -8465,1880 +9539,10999 @@ "requires": { "mimic-fn": "^2.1.0" } - } - } - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "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==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "shebang-regex": "^3.0.0" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "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==", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { - "is-number": "^7.0.0" + "isexe": "^2.0.0" } } } }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } + "env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "dev": true }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "envinfo": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.2.tgz", + "integrity": "sha512-k3Eh5bKuQnZjm49/L7H4cHzs2FlL5QjbTB3JrPxoTI8aJG7hVMe4uKyJxSYH4ahseby2waUwk5OaKX/nAsaYgg==", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "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": { - "detect-newline": "^3.0.0" + "is-arrayish": "^0.2.1" } }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + } } }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "es6-promise": "^4.0.3" } }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "fill-range": "^7.0.1" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "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, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } + "optional": 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==", + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "is-number": "^7.0.0" + "prelude-ls": "~1.1.2" } } } }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "eslint": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.10.0.tgz", + "integrity": "sha512-BDVffmqWl7JJXqCjAK6lWtcQThZB/aP1HXSH1JKwGwv0LQEdvpR7qzNrUT487RM39B5goWuboFad5ovMBmD8yA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", + "@eslint/eslintrc": "^0.1.3", + "ajv": "^6.10.0", "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^1.3.0", + "espree": "^7.3.0", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "color-convert": "^2.0.1" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "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==", + "dev": true, + "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==", "dev": true }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "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==", + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "is-number": "^7.0.0" + "ms": "2.1.2" } - } - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "esutils": "^2.0.2" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "type-fest": "^0.8.1" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "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 }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "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 + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "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==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "shebang-regex": "^3.0.0" } }, - "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==", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "is-number": "^7.0.0" + "ansi-regex": "^5.0.0" } - } - } - }, - "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + }, + "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 - } - } - }, - "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + }, + "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": { - "type-fest": "^0.11.0" + "has-flag": "^4.0.0" } }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "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==", + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "eslint-visitor-keys": "^1.1.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, - "jsdom": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", - "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "espree": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", + "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", "dev": true, "requires": { - "abab": "^2.0.3", - "acorn": "^7.1.1", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.2.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.0", - "domexception": "^2.0.1", - "escodegen": "^1.14.1", - "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", - "nwsapi": "^2.2.0", - "parse5": "5.1.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "saxes": "^5.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", - "ws": "^7.2.3", - "xml-name-validator": "^3.0.0" + "acorn": "^7.4.0", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.3.0" + } + }, + "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 + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" }, "dependencies": { - "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", - "dev": true, - "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" - } + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true } } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "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==", + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", "dev": true }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "minimist": "^1.2.5" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "homedir-polyfill": "^1.0.1" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", - "dev": true - }, - "lerna": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.22.1.tgz", - "integrity": "sha512-vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg==", + "expect": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.5.2.tgz", + "integrity": "sha512-ccTGrXZd8DZCcvCz4htGXTkd/LOoy6OEtiDS38x3/VVf6E4AQL0QoeksBiw7BtGR5xDNiRYPB8GN6pfbuTOi7w==", "dev": true, "requires": { - "@lerna/add": "3.21.0", - "@lerna/bootstrap": "3.21.0", - "@lerna/changed": "3.21.0", - "@lerna/clean": "3.21.0", - "@lerna/cli": "3.18.5", - "@lerna/create": "3.22.0", - "@lerna/diff": "3.21.0", - "@lerna/exec": "3.21.0", - "@lerna/import": "3.22.0", - "@lerna/info": "3.21.0", - "@lerna/init": "3.21.0", - "@lerna/link": "3.21.0", - "@lerna/list": "3.21.0", - "@lerna/publish": "3.22.1", - "@lerna/run": "3.21.0", - "@lerna/version": "3.22.1", - "import-local": "^2.0.0", - "npmlog": "^4.1.2" + "@jest/types": "^26.5.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.5.2", + "jest-message-util": "^26.5.2", + "jest-regex-util": "^26.0.0" }, "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" } }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "@types/istanbul-lib-report": "*" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "color-convert": "^2.0.1" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "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==", "dev": true, "requires": { - "find-up": "^3.0.0" + "color-name": "~1.1.4" } }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "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==", + "dev": true + }, + "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 + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "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": { - "resolve-from": "^3.0.0" + "has-flag": "^4.0.0" } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "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==", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } }, - "lint-staged": { - "version": "10.5.3", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.3.tgz", - "integrity": "sha512-TanwFfuqUBLufxCc3RUtFEkFraSPNR3WzWcGF39R3f2J7S9+iF9W0KTVLfSy09lYGmZS5NDCxjNvhGMSJyFCWg==", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "commander": "^6.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", - "dedent": "^0.7.0", - "enquirer": "^2.3.6", - "execa": "^4.1.0", - "listr2": "^3.2.2", - "log-symbols": "^4.0.0", - "micromatch": "^4.0.2", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "commander": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", - "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "pump": "^3.0.0" + "is-descriptor": "^1.0.0" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "is-extendable": "^0.1.0" } }, - "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 - }, - "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 - }, - "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==", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "path-key": "^3.0.0" + "kind-of": "^6.0.0" } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "mimic-fn": "^2.1.0" + "kind-of": "^6.0.0" } }, - "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==", + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-number": "^7.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } }, - "listr2": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.3.tgz", - "integrity": "sha512-vUb80S2dSUi8YxXahO8/I/s29GqnOL8ozgHVLjfWQXa03BNEeS1TpBLjh2ruaqq5ufx46BRGvfymdBSuoXET5w==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "figures": "^3.2.0", - "indent-string": "^4.0.0", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rxjs": "^6.6.3", - "through": "^2.3.8" - }, - "dependencies": { - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - } - } + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true }, - "load-json-file": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "dev": true, "requires": { - "graceful-fs": "^4.1.15", - "parse-json": "^4.0.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0", - "type-fest": "^0.3.0" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" }, "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "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": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", + "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 }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true + "fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", - "dev": true + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", "dev": true }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" + "escape-string-regexp": "^1.0.5" } }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { - "lodash._reinterpolate": "^3.0.0" + "flat-cache": "^2.0.1" } }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", "dev": true }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true + "filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", + "dev": true, + "requires": { + "filename-reserved-regex": "^1.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "filenamify-url": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", + "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", "dev": true, "requires": { - "chalk": "^4.0.0" + "filenamify": "^1.0.0", + "humanize-url": "^1.0.0" } }, - "log-update": { + "fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "type-fest": "^0.11.0" + "is-extendable": "^0.1.0" } - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "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 - }, - "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" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true } } }, - "longest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", - "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", - "dev": true - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "find-node-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.0.0.tgz", + "integrity": "sha512-8MWIBRgJi/WpjjfVXumjPKCtmQ10B+fjx6zmSA+770GMJirLhWIzg8l763rhjl9xaeaHbnxPNRQKq2mgMhr+aw==", "dev": true, "requires": { - "yallist": "^4.0.0" + "findup-sync": "^3.0.0", + "merge": "^1.2.1" } }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "macos-release": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", - "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==", + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", "dev": true }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "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": { - "semver": "^6.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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 } } }, - "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 + "find-versions": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "dev": true, + "requires": { + "semver-regex": "^2.0.0" + } }, - "make-fetch-happen": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", - "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^12.0.0", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" }, "dependencies": { - "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==", + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "yallist": "^3.0.2" + "glob": "^7.1.3" } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true } } }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, "requires": { - "tmpl": "1.0.x" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, - "map-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", - "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "object-visit": "^1.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, - "marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", - "dev": true - }, - "meow": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.0.0.tgz", - "integrity": "sha512-nbsTRz2fwniJBFgUkcdISq8y/q9n9VbiHYbfwklFh5V4V2uAcxtKQkDc0yCLPM/kP0d+inZBewn3zJqewHE7kg==", + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" + "map-cache": "^0.2.2" } }, - "merge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", - "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", - "dev": true - }, - "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 - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, "requires": { - "mime-db": "1.44.0" + "minipass": "^2.6.0" } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } + "optional": true }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "requires": { - "minipass": "^2.9.0" - } + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" }, "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "number-is-nan": "^1.0.0" } - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "is-plain-object": "^2.0.4" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "dev": true, - "requires": { - "mkdirp": "*" - } - }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "glob": "^7.1.3" + "ansi-regex": "^2.0.0" } } } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", "dev": true }, - "multimatch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz", - "integrity": "sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==", - "dev": true, - "requires": { - "array-differ": "^2.0.3", - "array-union": "^1.0.2", - "arrify": "^1.0.1", - "minimatch": "^3.0.4" - } + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "ncp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", - "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", "dev": true }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "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 }, - "node-fetch-npm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", - "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", - "dev": true, - "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - } - }, - "node-gyp": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", - "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", + "get-pkg-repo": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", + "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", "dev": true, "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "mkdirp": "^0.5.1", - "nopt": "^4.0.1", - "npmlog": "^4.1.2", - "request": "^2.88.0", - "rimraf": "^2.6.3", - "semver": "^5.7.1", - "tar": "^4.4.12", - "which": "^1.3.1" + "hosted-git-info": "^2.1.4", + "meow": "^3.3.0", + "normalize-package-data": "^2.3.0", + "parse-github-repo-url": "^1.3.0", + "through2": "^2.0.0" }, "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "glob": "^7.1.3" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", "dev": true - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + } + } + }, + "get-port": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", + "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", + "dev": true + }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gh-pages": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.1.0.tgz", + "integrity": "sha512-3b1rly9kuf3/dXsT8+ZxP0UhNLOo1CItj+3e31yUVcaph/yDsJ9RzD7JOw5o5zpBTJVQLlJAASNkUfepi9fe2w==", + "dev": true, + "requires": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify-url": "^1.0.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "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" + } + } + } + }, + "git-log-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", + "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", + "dev": true, + "requires": { + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "~0.6.6" + }, + "dependencies": { + "split2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", + "dev": true, + "requires": { + "through2": "~2.0.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "git-raw-commits": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.7.tgz", + "integrity": "sha512-SkwrTqrDxw8y0G1uGJ9Zw13F7qu3LF8V4BifyDeiJCxSnjRGZD9SaoMiMqUvvXMXh6S3sOQ1DsBN7L2fMUZW/g==", + "dev": true, + "requires": { + "dargs": "^7.0.0", + "lodash.template": "^4.0.2", + "meow": "^7.0.0", + "split2": "^2.0.0", + "through2": "^3.0.0" + } + }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "dev": true, + "requires": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "git-semver-tags": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.3.tgz", + "integrity": "sha512-tj4FD4ww2RX2ae//jSrXZzrocla9db5h0V7ikPl1P/WwoZar9epdUhwR7XHXSgc+ZkNq72BEEerqQuicoEQfzA==", + "dev": true, + "requires": { + "meow": "^4.0.0", + "semver": "^6.0.0" + }, + "dependencies": { + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "meow": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" + } + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + } + } + }, + "git-up": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.2.tgz", + "integrity": "sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ==", + "dev": true, + "requires": { + "is-ssh": "^1.3.0", + "parse-url": "^5.0.0" + } + }, + "git-url-parse": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.3.tgz", + "integrity": "sha512-GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA==", + "dev": true, + "requires": { + "git-up": "^4.0.0" + } + }, + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", + "dev": true, + "requires": { + "ini": "^1.3.2" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "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 + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true, + "optional": true + }, + "handlebars": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "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 + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "highlight.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.2.1.tgz", + "integrity": "sha512-A+sckVPIb9zQTUydC9lpRX1qRFO/N0OKEh0NwIr65ckvWA/oMY8v9P3+kGRK3w2ULSh9E8v5MszXafodQ6039g==", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hook-std": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz", + "integrity": "sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "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-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "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 + } + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "humanize-url": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", + "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", + "dev": true, + "requires": { + "normalize-url": "^1.0.0", + "strip-url-auth": "^1.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + } + } + }, + "husky": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.0.tgz", + "integrity": "sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "ci-info": "^2.0.0", + "compare-versions": "^3.6.0", + "cosmiconfig": "^7.0.0", + "find-versions": "^3.2.0", + "opencollective-postinstall": "^2.0.2", + "pkg-dir": "^4.2.0", + "please-upgrade-node": "^3.2.0", + "slash": "^3.0.0", + "which-pm-runs": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "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 + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "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" + } + }, + "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" + } + } + } + }, + "i": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", + "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "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==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "init-package-json": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz", + "integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "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" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "into-stream": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz", + "integrity": "sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==", + "dev": true, + "requires": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + }, + "dependencies": { + "p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true + } + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true, + "optional": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "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.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + } + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "dev": true + }, + "is-ssh": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz", + "integrity": "sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ==", + "dev": true, + "requires": { + "protocols": "^1.1.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + } + } + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "issue-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", + "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", + "dev": true, + "requires": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + } + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/core": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", + "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.6", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.5", + "@babel/types": "^7.11.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "dev": true, + "requires": { + "@babel/types": "^7.11.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/template": "^7.10.4", + "@babel/types": "^7.11.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0" + } + }, + "@babel/helpers": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", + "dev": true + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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 + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "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" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + }, + "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 + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "java-properties": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", + "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", + "dev": true + }, + "jest": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.5.2.tgz", + "integrity": "sha512-4HFabJVwsgDwul/7rhXJ3yFAF/aUkVIXiJWmgFxb+WMdZG39fVvOwYAs8/3r4AlFPc4m/n5sTMtuMbOL3kNtrQ==", + "dev": true, + "requires": { + "@jest/core": "^26.5.2", + "import-local": "^3.0.2", + "jest-cli": "^26.5.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "jest-cli": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.5.2.tgz", + "integrity": "sha512-usm48COuUvRp8YEG5OWOaxbSM0my7eHn3QeBWxiGUuFhvkGVBvl1fic4UjC02EAEQtDv8KrNQUXdQTV6ZZBsoA==", + "dev": true, + "requires": { + "@jest/core": "^26.5.2", + "@jest/test-result": "^26.5.2", + "@jest/types": "^26.5.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.5.2", + "jest-util": "^26.5.2", + "jest-validate": "^26.5.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + }, + "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" + } + } + } + }, + "jest-changed-files": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.5.2.tgz", + "integrity": "sha512-qSmssmiIdvM5BWVtyK/nqVpN3spR5YyvkvPqz1x3BR1bwIxsWmU/MGwLoCrPNLbkG2ASAKfvmJpOduEApBPh2w==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "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 + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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 + }, + "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" + } + }, + "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" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "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" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "jest-config": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.5.2.tgz", + "integrity": "sha512-dqJOnSegNdE5yDiuGHsjTM5gec7Z4AcAMHiW+YscbOYJAlb3LEtDSobXCq0or9EmGQI5SFmKy4T7P1FxetJOfg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.5.2", + "@jest/types": "^26.5.2", + "babel-jest": "^26.5.2", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.5.2", + "jest-environment-node": "^26.5.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.5.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.5.2", + "jest-util": "^26.5.2", + "jest-validate": "^26.5.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.5.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "pretty-format": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", + "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "jest-diff": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } + } + } + }, + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.5.2.tgz", + "integrity": "sha512-w7D9FNe0m2D3yZ0Drj9CLkyF/mGhmBSULMQTypzAKR746xXnjUrK8GUJdlLTWUF6dd0ks3MtvGP7/xNFr9Aphg==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.5.2", + "pretty-format": "^26.5.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", + "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "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" + } + } + } + }, + "jest-environment-jsdom": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.5.2.tgz", + "integrity": "sha512-fWZPx0bluJaTQ36+PmRpvUtUlUFlGGBNyGX1SN3dLUHHMcQ4WseNEzcGGKOw4U5towXgxI4qDoI3vwR18H0RTw==", + "dev": true, + "requires": { + "@jest/environment": "^26.5.2", + "@jest/fake-timers": "^26.5.2", + "@jest/types": "^26.5.2", + "@types/node": "*", + "jest-mock": "^26.5.2", + "jest-util": "^26.5.2", + "jsdom": "^16.4.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } + } + } + }, + "jest-environment-node": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.5.2.tgz", + "integrity": "sha512-YHjnDsf/GKFCYMGF1V+6HF7jhY1fcLfLNBDjhAOvFGvt6d8vXvNdJGVM7uTZ2VO/TuIyEFhPGaXMX5j3h7fsrA==", + "dev": true, + "requires": { + "@jest/environment": "^26.5.2", + "@jest/fake-timers": "^26.5.2", + "@jest/types": "^26.5.2", + "@types/node": "*", + "jest-mock": "^26.5.2", + "jest-util": "^26.5.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } + } + } + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-haste-map": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.5.2.tgz", + "integrity": "sha512-lJIAVJN3gtO3k4xy+7i2Xjtwh8CfPcH08WYjZpe9xzveDaqGw9fVNCpkYu6M525wKFVkLmyi7ku+DxCAP1lyMA==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.5.0", + "jest-util": "^26.5.2", + "jest-worker": "^26.5.0", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "jest-jasmine2": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.5.2.tgz", + "integrity": "sha512-2J+GYcgLVPTkpmvHEj0/IDTIAuyblGNGlyGe4fLfDT2aktEPBYvoxUwFiOmDDxxzuuEAD2uxcYXr0+1Yw4tjFA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.5.2", + "@jest/source-map": "^26.5.0", + "@jest/test-result": "^26.5.2", + "@jest/types": "^26.5.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.5.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.5.2", + "jest-matcher-utils": "^26.5.2", + "jest-message-util": "^26.5.2", + "jest-runtime": "^26.5.2", + "jest-snapshot": "^26.5.2", + "jest-util": "^26.5.2", + "pretty-format": "^26.5.2", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "pretty-format": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", + "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "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" + } + } + } + }, + "jest-leak-detector": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.5.2.tgz", + "integrity": "sha512-h7ia3dLzBFItmYERaLPEtEKxy3YlcbcRSjj0XRNJgBEyODuu+3DM2o62kvIFvs3PsaYoIIv+e+nLRI61Dj1CNw==", + "dev": true, + "requires": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.5.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", + "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "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" + } + } + } + }, + "jest-matcher-utils": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.5.2.tgz", + "integrity": "sha512-W9GO9KBIC4gIArsNqDUKsLnhivaqf8MSs6ujO/JDcPIQrmY+aasewweXVET8KdrJ6ADQaUne5UzysvF/RR7JYA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.5.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.5.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "diff-sequences": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.5.0.tgz", + "integrity": "sha512-ZXx86srb/iYy6jG71k++wBN9P9J05UNQ5hQHQd9MtMPvcqXPx/vKU69jfHV637D00Q2gSgPk2D+jSx3l1lDW/Q==", + "dev": true + }, + "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 + }, + "jest-diff": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.5.2.tgz", + "integrity": "sha512-HCSWDUGwsov5oTlGzrRM+UPJI/Dpqi9jzeV0fdRNi3Ch5bnoXhnyJMmVg2juv9081zLIy3HGPI5mcuGgXM2xRA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.5.0", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.5.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", + "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "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" + } + } + } + }, + "jest-message-util": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.5.2.tgz", + "integrity": "sha512-Ocp9UYZ5Jl15C5PNsoDiGEk14A4NG0zZKknpWdZGoMzJuGAkVt10e97tnEVMYpk7LnQHZOfuK2j/izLBMcuCZw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.5.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "jest-mock": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.5.2.tgz", + "integrity": "sha512-9SiU4b5PtO51v0MtJwVRqeGEroH66Bnwtq4ARdNP7jNXbpT7+ByeWNAk4NeT/uHfNSVDXEXgQo1XRuwEqS6Rdw==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "@types/node": "*" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } + } + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "dev": true + }, + "jest-resolve": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.5.2.tgz", + "integrity": "sha512-XsPxojXGRA0CoDD7Vis59ucz2p3cQFU5C+19tz3tLEAlhYKkK77IL0cjYjikY9wXnOaBeEdm1rOgSJjbZWpcZg==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.5.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.17.0", + "slash": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "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" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.5.2.tgz", + "integrity": "sha512-LLkc8LuRtxqOx0AtX/Npa2C4I23WcIrwUgNtHYXg4owYF/ZDQShcwBAHjYZIFR06+HpQcZ43+kCTMlQ3aDCYTg==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.5.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } + } + } + }, + "jest-runner": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.5.2.tgz", + "integrity": "sha512-GKhYxtSX5+tXZsd2QwfkDqPIj5C2HqOdXLRc2x2qYqWE26OJh17xo58/fN/mLhRkO4y6o60ZVloan7Kk5YA6hg==", + "dev": true, + "requires": { + "@jest/console": "^26.5.2", + "@jest/environment": "^26.5.2", + "@jest/test-result": "^26.5.2", + "@jest/types": "^26.5.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.5.2", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.5.2", + "jest-leak-detector": "^26.5.2", + "jest-message-util": "^26.5.2", + "jest-resolve": "^26.5.2", + "jest-runtime": "^26.5.2", + "jest-util": "^26.5.2", + "jest-worker": "^26.5.0", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "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" + } + } + } + }, + "jest-runtime": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.5.2.tgz", + "integrity": "sha512-zArr4DatX/Sn0wswX/AnAuJgmwgAR5rNtrUz36HR8BfMuysHYNq5sDbYHuLC4ICyRdy5ae/KQ+sczxyS9G6Qvw==", + "dev": true, + "requires": { + "@jest/console": "^26.5.2", + "@jest/environment": "^26.5.2", + "@jest/fake-timers": "^26.5.2", + "@jest/globals": "^26.5.2", + "@jest/source-map": "^26.5.0", + "@jest/test-result": "^26.5.2", + "@jest/transform": "^26.5.2", + "@jest/types": "^26.5.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.5.2", + "jest-haste-map": "^26.5.2", + "jest-message-util": "^26.5.2", + "jest-mock": "^26.5.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.5.2", + "jest-snapshot": "^26.5.2", + "jest-util": "^26.5.2", + "jest-validate": "^26.5.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "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" + } + } + } + }, + "jest-serializer": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.5.0.tgz", + "integrity": "sha512-+h3Gf5CDRlSLdgTv7y0vPIAoLgX/SI7T4v6hy+TEXMgYbv+ztzbg5PSN6mUXAT/hXYHvZRWm+MaObVfqkhCGxA==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + } + } + }, + "jest-snapshot": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.5.2.tgz", + "integrity": "sha512-MkXIDvEefzDubI/WaDVSRH4xnkuirP/Pz8LhAIDXcVQTmcEfwxywj5LGwBmhz+kAAIldA7XM4l96vbpzltSjqg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.5.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.5.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.5.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.5.2", + "jest-matcher-utils": "^26.5.2", + "jest-message-util": "^26.5.2", + "jest-resolve": "^26.5.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.5.2", + "semver": "^7.3.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "diff-sequences": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.5.0.tgz", + "integrity": "sha512-ZXx86srb/iYy6jG71k++wBN9P9J05UNQ5hQHQd9MtMPvcqXPx/vKU69jfHV637D00Q2gSgPk2D+jSx3l1lDW/Q==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "jest-diff": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.5.2.tgz", + "integrity": "sha512-HCSWDUGwsov5oTlGzrRM+UPJI/Dpqi9jzeV0fdRNi3Ch5bnoXhnyJMmVg2juv9081zLIy3HGPI5mcuGgXM2xRA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.5.0", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.5.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", + "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "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" + } + } + } + }, + "jest-util": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.5.2.tgz", + "integrity": "sha512-WTL675bK+GSSAYgS8z9FWdCT2nccO1yTIplNLPlP0OD8tUk/H5IrWKMMRudIQQ0qp8bb4k+1Qa8CxGKq9qnYdg==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "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 + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "jest-validate": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.5.2.tgz", + "integrity": "sha512-FmJks0zY36mp6Af/5sqO6CTL9bNMU45yKCJk3hrz8d2aIqQIlN1pr9HPIwZE8blLaewOla134nt5+xAmWsx3SQ==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.5.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", + "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.5.2.tgz", + "integrity": "sha512-VizyV669eqESlkOikKJI8Ryxl/kPpbdLwNdPs2GrbQs18MpySB5S0Yo0N7zkg2xTRiFq4CFw8ct5Vg4a0xP0og==", + "dev": true, + "requires": { + "@jest/types": "^26.5.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "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" + } + } + } + }, + "jest-watcher": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.5.2.tgz", + "integrity": "sha512-i3m1NtWzF+FXfJ3ljLBB/WQEp4uaNhX7QcQUWMokcifFTUQBDFyUMEwk0JkJ1kopHbx7Een3KX0Q7+9koGM/Pw==", + "dev": true, + "requires": { + "@jest/test-result": "^26.5.2", + "@jest/types": "^26.5.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.5.2", + "string-length": "^4.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.5.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.5.2.tgz", + "integrity": "sha512-QDs5d0gYiyetI8q+2xWdkixVQMklReZr4ltw7GFDtb4fuJIBCE6mzj2LnitGqCuAlLap6wPyb8fpoHgwZz5fdg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "jest-worker": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.5.0.tgz", + "integrity": "sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "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 + }, + "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" + } + } + } + }, + "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.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", + "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "lcov-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", + "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", + "dev": true + }, + "lerna": { + "version": "3.22.1", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.22.1.tgz", + "integrity": "sha512-vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg==", + "dev": true, + "requires": { + "@lerna/add": "3.21.0", + "@lerna/bootstrap": "3.21.0", + "@lerna/changed": "3.21.0", + "@lerna/clean": "3.21.0", + "@lerna/cli": "3.18.5", + "@lerna/create": "3.22.0", + "@lerna/diff": "3.21.0", + "@lerna/exec": "3.21.0", + "@lerna/import": "3.22.0", + "@lerna/info": "3.21.0", + "@lerna/init": "3.21.0", + "@lerna/link": "3.21.0", + "@lerna/list": "3.21.0", + "@lerna/publish": "3.22.1", + "@lerna/run": "3.21.0", + "@lerna/version": "3.22.1", + "import-local": "^2.0.0", + "npmlog": "^4.1.2" + }, + "dependencies": { + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "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 + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "lint-staged": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.4.0.tgz", + "integrity": "sha512-uaiX4U5yERUSiIEQc329vhCTDDwUcSvKdRLsNomkYLRzijk3v8V9GWm2Nz0RMVB87VcuzLvtgy6OsjoH++QHIg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "cli-truncate": "^2.1.0", + "commander": "^6.0.0", + "cosmiconfig": "^7.0.0", + "debug": "^4.1.1", + "dedent": "^0.7.0", + "enquirer": "^2.3.6", + "execa": "^4.0.3", + "listr2": "^2.6.0", + "log-symbols": "^4.0.0", + "micromatch": "^4.0.2", + "normalize-path": "^3.0.0", + "please-upgrade-node": "^3.2.0", + "string-argv": "0.3.1", + "stringify-object": "^3.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "commander": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz", + "integrity": "sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "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 + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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 + }, + "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 + }, + "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" + } + }, + "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" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "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" + } + }, + "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==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "listr2": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-2.6.2.tgz", + "integrity": "sha512-6x6pKEMs8DSIpA/tixiYY2m/GcbgMplMVmhQAaLFxEtNSKLeWTGjtmU57xvv6QCm2XcqzyNXL/cTSVf4IChCRA==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "cli-truncate": "^2.1.0", + "figures": "^3.2.0", + "indent-string": "^4.0.0", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rxjs": "^6.6.2", + "through": "^2.3.8" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "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 + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "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" + } + } + } + }, + "load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "dependencies": { + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "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": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.capitalize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", + "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "lodash.uniqby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", + "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", + "dev": true + }, + "log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", + "dev": true + }, + "log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "requires": { + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } + } + } + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "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 + }, + "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" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "macos-release": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz", + "integrity": "sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==", + "dev": true + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "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 + }, + "make-fetch-happen": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "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" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.x" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", + "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.0.tgz", + "integrity": "sha512-tiRxakgbNPBr301ihe/785NntvYyhxlqcL3YaC8CaxJQh7kiaEtrN9B/eK2I2943Yjkh5gw25chYFDQhOMCwMA==", + "dev": true + }, + "marked-terminal": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.1.0.tgz", + "integrity": "sha512-5KllfAOW02WS6hLRQ7cNvGOxvKW1BKuXELH4EtbWfyWgxQhROoMxEvuQ/3fTgkNjledR0J48F4HbapvYp1zWkQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.1", + "cardinal": "^2.1.1", + "chalk": "^4.0.0", + "cli-table": "^0.3.1", + "node-emoji": "^1.10.0", + "supports-hyperlinks": "^2.1.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "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" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "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 + } + } + }, + "meow": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.0.tgz", + "integrity": "sha512-kq5F0KVteskZ3JdfyQFivJEj2RaA8NFsS4+r9DaMKLcUHpk5OcHS3Q0XkCXONB1mZRPsu/Y/qImKri0nwSEZog==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + } + }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true + }, + "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 + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "dev": true, + "requires": { + "mkdirp": "*" + } + }, + "modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multimatch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz", + "integrity": "sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==", + "dev": true, + "requires": { + "array-differ": "^2.0.3", + "array-union": "^1.0.2", + "arrify": "^1.0.1", + "minimatch": "^3.0.4" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "ncp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", + "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nerf-dart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", + "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-emoji": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", + "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", + "dev": true, + "requires": { + "lodash.toarray": "^4.4.0" + } + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-gyp": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-5.1.1.tgz", + "integrity": "sha512-WH0WKGi+a4i4DUt2mHnvocex/xPLp9pYt5R6M2JdFB7pJ7Z34hveZ4nDTGTiLXCkitA9T8HFZjhinBCiVHYcWw==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-notifier": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", + "dev": true, + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "optional": true + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true, + "optional": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "optional": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-releases": { + "version": "1.1.58", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", + "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==", + "dev": true + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, + "npm": { + "version": "6.14.8", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.8.tgz", + "integrity": "sha512-HBZVBMYs5blsj94GTeQZel7s9odVuuSUHy1+AlZh7rPVux1os2ashvEGLy/STNK7vUjbrCg5Kq9/GXisJgdf6A==", + "dev": true, + "requires": { + "JSONStream": "^1.3.5", + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "^2.0.0", + "archy": "~1.0.0", + "bin-links": "^1.1.8", + "bluebird": "^3.5.5", + "byte-size": "^5.0.1", + "cacache": "^12.0.3", + "call-limit": "^1.1.1", + "chownr": "^1.1.4", + "ci-info": "^2.0.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.1", + "cmd-shim": "^3.0.3", + "columnify": "~1.5.4", + "config-chain": "^1.1.12", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "~1.0.3", + "editor": "~1.0.0", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.3.1", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.8.8", + "iferr": "^1.0.2", + "imurmurhash": "*", + "infer-owner": "^1.0.4", + "inflight": "~1.0.6", + "inherits": "^2.0.4", + "ini": "^1.3.5", + "init-package-json": "^1.10.3", + "is-cidr": "^3.0.0", + "json-parse-better-errors": "^1.0.2", + "lazy-property": "~1.0.0", + "libcipm": "^4.0.8", + "libnpm": "^3.0.1", + "libnpmaccess": "^3.0.2", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "libnpx": "^10.2.4", + "lock-verify": "^2.1.0", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^5.1.1", + "meant": "^1.0.2", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.5", + "move-concurrently": "^1.0.1", + "node-gyp": "^5.1.0", + "nopt": "^4.0.3", + "normalize-package-data": "^2.5.0", + "npm-audit-report": "^1.3.3", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "^3.0.2", + "npm-lifecycle": "^3.1.5", + "npm-package-arg": "^6.1.1", + "npm-packlist": "^1.4.8", + "npm-pick-manifest": "^3.0.2", + "npm-profile": "^4.0.4", + "npm-registry-fetch": "^4.0.7", + "npm-user-validate": "~1.0.0", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.1", + "osenv": "^0.1.5", + "pacote": "^9.5.12", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.8.2", + "qw": "~1.0.1", + "read": "~1.0.7", + "read-cmd-shim": "^1.0.5", + "read-installed": "~4.0.3", + "read-package-json": "^2.1.1", + "read-package-tree": "^5.3.1", + "readable-stream": "^3.6.0", + "readdir-scoped-modules": "^1.1.0", + "request": "^2.88.0", + "retry": "^0.12.0", + "rimraf": "^2.7.1", + "safe-buffer": "^5.1.2", + "semver": "^5.7.1", + "sha": "^3.0.0", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.1", + "stringify-package": "^1.0.1", + "tar": "^4.4.13", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "^1.1.1", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.3.3", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.7.0", + "write-file-atomic": "^2.4.3" + }, + "dependencies": { + "JSONStream": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "bundled": true, + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "5.5.2", + "bundled": true, + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-align": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "bundled": true, + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "ansistyles": { + "version": "0.1.3", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "asap": { + "version": "2.0.6", + "bundled": true, + "dev": true + }, + "asn1": { + "version": "0.2.4", + "bundled": true, + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "bundled": true, + "dev": true + }, + "aws4": { + "version": "1.8.0", + "bundled": true, + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bin-links": { + "version": "1.1.8", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cmd-shim": "^3.0.0", + "gentle-fs": "^2.3.0", + "graceful-fs": "^4.1.15", + "npm-normalize-package-bin": "^1.0.0", + "write-file-atomic": "^2.3.0" + } + }, + "bluebird": { + "version": "3.5.5", + "bundled": true, + "dev": true + }, + "boxen": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "builtins": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "byline": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "byte-size": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "cacache": { + "version": "12.0.3", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "call-limit": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "chalk": { + "version": "2.4.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chownr": { + "version": "1.1.4", + "bundled": true, + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "cidr-regex": { + "version": "2.0.10", + "bundled": true, + "dev": true, + "requires": { + "ip-regex": "^2.1.0" + } + }, + "cli-boxes": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "cli-columns": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" + } + }, + "cli-table3": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "cmd-shim": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "color-convert": { + "version": "1.9.1", + "bundled": true, + "dev": true, + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "bundled": true, + "dev": true + }, + "colors": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true + }, + "columnify": { + "version": "1.5.4", + "bundled": true, + "dev": true, + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "combined-stream": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "bundled": true, + "dev": true, + "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.6", + "bundled": true, + "dev": true, + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "config-chain": { + "version": "1.1.12", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "3.1.5", + "bundled": true, + "dev": true, + "requires": { + "dot-prop": "^4.2.1", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "create-error-class": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + } + } + }, + "crypto-random-string": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "cyclist": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "debuglog": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true + }, + "defaults": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "detect-indent": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "dot-prop": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "duplexify": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editor": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "bundled": true, + "dev": true + }, + "encoding": { + "version": "0.1.12", + "bundled": true, + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "2.2.0", + "bundled": true, + "dev": true + }, + "err-code": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "errno": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "bundled": true, + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.8", + "bundled": true, + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "fast-deep-equal": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "figgy-pudding": { + "version": "3.5.1", + "bundled": true, + "dev": true + }, + "find-npm-prefix": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "flush-write-stream": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true + }, + "form-data": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^2.6.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "fs-vacuum": { + "version": "1.2.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "genfun": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "gentle-fs": { + "version": "2.3.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2", + "chownr": "^1.1.2", + "cmd-shim": "^3.0.3", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "infer-owner": "^1.0.4", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "got": { + "version": "6.7.1", + "bundled": true, + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.4", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "har-validator": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "hosted-git-info": { + "version": "2.8.8", + "bundled": true, + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "bundled": true, + "dev": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + } + }, + "http-signature": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, + "humanize-ms": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "bundled": true, + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true + }, + "init-package-json": { + "version": "1.10.3", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "ip": { + "version": "1.1.5", + "bundled": true, + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "bundled": true, + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "ci-info": "^1.5.0" + }, + "dependencies": { + "ci-info": { + "version": "1.6.0", + "bundled": true, + "dev": true + } + } + }, + "is-cidr": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "cidr-regex": "^2.0.10" + } + }, + "is-date-object": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-redirect": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-retry-allowed": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-symbol": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "bundled": true, + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "bundled": true, + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "latest-version": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lazy-property": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "libcipm": { + "version": "4.0.8", + "bundled": true, + "dev": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "ini": "^1.3.5", + "lock-verify": "^2.1.0", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^9.1.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" + } + }, + "libnpm": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.3", + "find-npm-prefix": "^1.0.2", + "libnpmaccess": "^3.0.2", + "libnpmconfig": "^1.2.1", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmpublish": "^1.1.2", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "lock-verify": "^2.0.2", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "npm-profile": "^4.0.2", + "npm-registry-fetch": "^4.0.0", + "npmlog": "^4.1.2", + "pacote": "^9.5.3", + "read-package-json": "^2.0.13", + "stringify-package": "^1.0.0" + } + }, + "libnpmaccess": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmconfig": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "bundled": true, + "dev": true + } + } + }, + "libnpmhook": { + "version": "5.0.3", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmorg": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmpublish": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "lodash.clonedeep": "^4.5.0", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0", + "semver": "^5.5.1", + "ssri": "^6.0.1" + } + }, + "libnpmsearch": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmteam": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpx": { + "version": "10.2.4", + "bundled": true, + "dev": true, + "requires": { + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^14.2.3" + } + }, + "lock-verify": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "npm-package-arg": "^6.1.0", + "semver": "^5.4.1" + } + }, + "lockfile": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "signal-exit": "^3.0.2" + } + }, + "lodash._baseindexof": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "requires": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "lodash._bindcallback": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "lodash._createcache": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0" + } + }, + "lodash._createset": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "bundled": true, + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "bundled": true, + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.without": { + "version": "4.4.0", + "bundled": true, + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "5.0.2", + "bundled": true, + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "meant": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "mime-db": { + "version": "1.35.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.19", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "bundled": true, + "dev": true + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^2.9.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "mississippi": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "bundled": true, + "dev": true, + "requires": { + "minimist": "^1.2.5" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "bundled": true, + "dev": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "bundled": true, + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-gyp": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + } + }, + "nopt": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "resolve": { + "version": "1.10.0", + "bundled": true, + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "npm-audit-report": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "requires": { + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-cache-filename": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "npm-install-checks": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "npm-lifecycle": { + "version": "3.1.5", + "bundled": true, + "dev": true, + "requires": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.15", + "node-gyp": "^5.0.2", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "npm-logical-tree": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "npm-package-arg": { + "version": "6.1.1", + "bundled": true, + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.4.8", + "bundled": true, + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-profile": { + "version": "4.0.4", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2 || 2", + "figgy-pudding": "^3.4.1", + "npm-registry-fetch": "^4.0.0" + } + }, + "npm-registry-fetch": { + "version": "4.0.7", + "bundled": true, + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "bundled": true, + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npm-user-validate": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "object-keys": { + "version": "1.0.12", + "bundled": true, + "dev": true + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opener": { + "version": "1.5.1", + "bundled": true, + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "package-json": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "pacote": { + "version": "9.5.12", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "pify": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "bundled": true, + "dev": true + } + } + }, + "promzard": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "read": "1" + } + }, + "proto-list": { + "version": "1.2.4", + "bundled": true, + "dev": true + }, + "protoduck": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "prr": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "psl": { + "version": "1.1.29", + "bundled": true, + "dev": true + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "bundled": true, + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true + }, + "qrcode-terminal": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "qs": { + "version": "6.5.2", + "bundled": true, + "dev": true + }, + "query-string": { + "version": "6.8.2", + "bundled": true, + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "qw": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read": { + "version": "1.0.7", + "bundled": true, + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-cmd-shim": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "read-installed": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + } + }, + "read-package-json": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "bundled": true, + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "registry-auth-token": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "request": { + "version": "2.88.0", + "bundled": true, + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "retry": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-queue": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "sha": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "socks": { + "version": "2.3.3", + "bundled": true, + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "sorted-object": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "sorted-union-stream": { + "version": "2.1.3", + "bundled": true, + "dev": true, + "requires": { + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + }, + "dependencies": { + "from2": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "isarray": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "bundled": true, + "dev": true + }, + "split-on-first": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "sshpk": { + "version": "1.14.2", + "bundled": true, + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-iterate": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-shift": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strict-uri-encode": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "bundled": true, + "dev": true + } + } + }, + "stringify-package": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "term-size": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "through": { + "version": "2.3.8", + "bundled": true, + "dev": true + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "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" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "timed-out": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "tiny-relative-date": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "bundled": true, + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "typedarray": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "umask": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "unzip-response": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "update-notifier": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "util-extend": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "util-promisify": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "uuid": { + "version": "3.3.3", + "bundled": true, + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.2" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "worker-farm": { + "version": "1.7.0", + "bundled": true, + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "2.4.3", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "xtend": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "y18n": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "14.2.3", + "bundled": true, "dev": true, - "optional": true + "requires": { + "cliui": "^5.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^15.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "yargs-parser": { + "version": "15.0.1", + "bundled": true, "dev": true, - "optional": true, "requires": { - "isexe": "^2.0.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "bundled": true, + "dev": true + } } } } }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "dev": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "normalize-package-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz", - "integrity": "sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==", - "dev": true, - "requires": { - "hosted-git-info": "^3.0.6", - "resolve": "^1.17.0", - "semver": "^7.3.2", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, "npm-bundled": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", @@ -10390,12 +20583,6 @@ "validate-npm-package-name": "^3.0.0" }, "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -10441,14 +20628,6 @@ "dev": true, "requires": { "path-key": "^2.0.0" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - } } }, "npmlog": { @@ -10519,9 +20698,9 @@ } }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true }, "object-keys": { @@ -10540,26 +20719,25 @@ } }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" } }, "object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { - "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.17.0-next.1" } }, "object.pick": { @@ -10595,32 +20773,6 @@ "mimic-fn": "^1.0.0" } }, - "onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - }, - "dependencies": { - "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" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, "opencollective-postinstall": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", @@ -10647,6 +20799,17 @@ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, "os-name": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", @@ -10673,18 +20836,45 @@ "os-tmpdir": "^1.0.0" } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", + "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==", "dev": true }, + "p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "requires": { + "p-map": "^2.0.0" + } + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -10739,6 +20929,16 @@ "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", "dev": true }, + "p-retry": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz", + "integrity": "sha512-jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==", + "dev": true, + "requires": { + "@types/retry": "^0.12.0", + "retry": "^0.12.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -10754,6 +20954,76 @@ "p-reduce": "^1.0.0" } }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + } + } + }, "parallel-transform": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", @@ -10781,14 +21051,14 @@ "dev": true }, "parse-json": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", - "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", + "json-parse-better-errors": "^1.0.1", "lines-and-columns": "^1.1.6" } }, @@ -10847,9 +21117,9 @@ "dev": true }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { @@ -10858,10 +21128,16 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { @@ -10871,10 +21147,13 @@ "dev": true }, "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } }, "performance-now": { "version": "2.1.0", @@ -10889,9 +21168,9 @@ "dev": true }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pinkie": { @@ -10909,22 +21188,204 @@ "pinkie": "^2.0.0" } }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { - "node-modules-regexp": "^1.0.0" + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^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 + } } }, - "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==", + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", "dev": true, "requires": { - "find-up": "^4.0.0" + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } } }, "pkginfo": { @@ -10955,29 +21416,67 @@ "dev": true }, "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^25.5.0", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" + "react-is": "^16.12.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + } } }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -11004,6 +21503,14 @@ "requires": { "err-code": "^1.0.0", "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } } }, "prompt": { @@ -11021,13 +21528,13 @@ } }, "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", + "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", "dev": true, "requires": { "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "sisteransi": "^1.0.4" } }, "promzard": { @@ -11060,6 +21567,12 @@ "genfun": "^5.0.0" } }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", @@ -11133,10 +21646,22 @@ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, "read": { @@ -11158,41 +21683,16 @@ } }, "read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz", + "integrity": "sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==", "dev": true, "requires": { "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", "normalize-package-data": "^2.0.0", "npm-normalize-package-bin": "^1.0.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } } }, "read-package-tree": { @@ -11218,30 +21718,6 @@ "type-fest": "^0.6.0" }, "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, "type-fest": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", @@ -11315,12 +21791,46 @@ "strip-indent": "^3.0.0" } }, + "redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "dev": true, + "requires": { + "esprima": "~4.0.0" + } + }, + "regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, "regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true }, + "regenerator-transform": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", + "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" + } + }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -11337,6 +21847,61 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", + "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -11375,18 +21940,54 @@ "yargs": "^15.3.1" }, "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "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 + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } } } @@ -11442,20 +22043,21 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { - "is-core-module": "^2.1.0", "path-parse": "^1.0.6" } }, @@ -11499,6 +22101,15 @@ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -11516,9 +22127,15 @@ "dev": true }, "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "revalidator": { @@ -11580,24 +22197,50 @@ "tslib": "2.0.1" }, "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "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": { - "graceful-fs": "^4.1.6" + "find-up": "^4.0.0" } }, "resolve": { @@ -11614,19 +22257,13 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true } } }, "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz", + "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==", "dev": true, "requires": { "estree-walker": "^0.6.1" @@ -11644,6 +22281,12 @@ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, "run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", @@ -11654,9 +22297,9 @@ } }, "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -11702,38 +22345,312 @@ "dependencies": { "anymatch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "semantic-release": { + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.2.3.tgz", + "integrity": "sha512-MY1MlowGQrkOR7+leOD8ICkVOC6i1szbwDODdbJ0UdshtMx8Ms0bhpRQmEEliqYKEb5PLv/dqs6zKKuHT7UxTg==", + "dev": true, + "requires": { + "@semantic-release/commit-analyzer": "^8.0.0", + "@semantic-release/error": "^2.2.0", + "@semantic-release/github": "^7.0.0", + "@semantic-release/npm": "^7.0.0", + "@semantic-release/release-notes-generator": "^9.0.0", + "aggregate-error": "^3.0.0", + "cosmiconfig": "^6.0.0", + "debug": "^4.0.0", + "env-ci": "^5.0.0", + "execa": "^4.0.0", + "figures": "^3.0.0", + "find-versions": "^3.0.0", + "get-stream": "^5.0.0", + "git-log-parser": "^1.2.0", + "hook-std": "^2.0.0", + "hosted-git-info": "^3.0.0", + "lodash": "^4.17.15", + "marked": "^1.0.0", + "marked-terminal": "^4.0.0", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "p-reduce": "^2.0.0", + "read-pkg-up": "^7.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.3.2", + "semver-diff": "^3.1.1", + "signale": "^1.2.1", + "yargs": "^15.0.1" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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 + }, + "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 + }, + "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" + } + }, + "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-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "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==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "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==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "shebang-regex": "^3.0.0" } }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "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==", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "is-number": "^7.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "semver-compare": { @@ -11742,6 +22659,23 @@ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "semver-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", @@ -11751,7 +22685,8 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "set-value": { "version": "2.0.1", @@ -11786,18 +22721,18 @@ } }, "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==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^3.0.0" + "shebang-regex": "^1.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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "shelljs": { @@ -11818,22 +22753,36 @@ "dev": true, "optional": true }, - "shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "signale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", + "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", "dev": true, "requires": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" + }, + "dependencies": { + "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" + } + } } }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -11855,38 +22804,6 @@ "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.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" - } - }, - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } } }, "slide": { @@ -12091,6 +23008,12 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "spawn-error-forwarder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", + "integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=", + "dev": true + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -12118,9 +23041,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "split": { @@ -12201,9 +23124,9 @@ "dev": true }, "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz", + "integrity": "sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -12244,6 +23167,16 @@ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", "dev": true }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, "stream-each": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", @@ -12273,44 +23206,60 @@ "dev": true }, "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", + "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", "dev": true, "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, "string_decoder": { @@ -12331,23 +23280,15 @@ "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" - }, - "dependencies": { - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - } } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^3.0.0" } }, "strip-bom": { @@ -12378,9 +23319,9 @@ } }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "strip-outer": { @@ -12410,12 +23351,12 @@ } }, "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==", + "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": "^4.0.0" + "has-flag": "^3.0.0" } }, "supports-hyperlinks": { @@ -12426,6 +23367,23 @@ "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" + }, + "dependencies": { + "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 + }, + "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" + } + } } }, "symbol-tree": { @@ -12458,12 +23416,6 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -12537,11 +23489,96 @@ "requires": { "pify": "^3.0.0" } + } + } + }, + "tempy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.0.tgz", + "integrity": "sha512-eLXG5B1G0mRPHmgH2WydPl5v4jH35qEn3y/rA/aahKhIa91Pn119SsU7n7v/433gtT9ONzC8ISvNHIh2JSTm0w==", + "dev": true, + "requires": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "dependencies": { + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true + }, + "type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + } + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } }, - "pify": { + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true } } @@ -12621,33 +23658,27 @@ "dev": true }, "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" } }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -12689,6 +23720,12 @@ } } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -12730,6 +23767,113 @@ "punycode": "^2.1.1" } }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true + }, + "travis-deploy-once": { + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/travis-deploy-once/-/travis-deploy-once-5.0.11.tgz", + "integrity": "sha512-iyctEtFvgXxin3Ur6jqqM9QdUqUKU8DShdVlRMDFwhLZ8+IGt3PnYPNZDSW45iDKCiUNJ0tGVidNpVDBG2ioKQ==", + "dev": true, + "requires": { + "@babel/core": "^7.0.0", + "@babel/polyfill": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "@babel/register": "^7.0.0", + "chalk": "^2.1.0", + "execa": "^1.0.0", + "got": "^9.1.0", + "p-retry": "^3.0.0", + "semver": "^5.4.1", + "update-notifier": "^2.3.0", + "url-join": "^4.0.0", + "yargs": "^12.0.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, "trim-newlines": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", @@ -12751,10 +23895,16 @@ "escape-string-regexp": "^1.0.2" } }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, "ts-jest": { - "version": "26.4.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", - "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", + "version": "26.4.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.1.tgz", + "integrity": "sha512-F4aFq01aS6mnAAa0DljNmKr/Kk9y4HVZ1m6/rtJ0ED56cuxINGq3Q9eVAh+z5vcYKe5qnTMvv90vE8vUMFxomg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -12775,17 +23925,28 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-yYsjuSkjbLMBp16eaOt7/siKTjNVjMm3SoJnIg3sEh/JsvqVVDyjRKmaJV4cl+lNIgq6QEco2i3gDebJl7/vLA==", + "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -12793,9 +23954,9 @@ } }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, "tslint": { @@ -12819,61 +23980,11 @@ "tsutils": "^2.29.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "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" - } } } }, @@ -12903,28 +24014,6 @@ "tsutils": "^3.0.0" }, "dependencies": { - "doctrine": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", - "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", - "dev": true, - "requires": { - "esutils": "^1.1.6", - "isarray": "0.0.1" - } - }, - "esutils": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", - "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, "tslib": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", @@ -12982,9 +24071,9 @@ "dev": true }, "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "dev": true }, "typedarray": { @@ -13003,40 +24092,88 @@ } }, "typedoc": { - "version": "0.20.32", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.32.tgz", - "integrity": "sha512-GSopd/tiqoKE3fEdvhoaEpR9yrEPsR9tknAjkoeSPL6p1Rq5aVsKxBhhF6cwoDJ7oWjpvnm8vs0rQN0BxEHuWQ==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.19.2.tgz", + "integrity": "sha512-oDEg1BLEzi1qvgdQXc658EYgJ5qJLVSeZ0hQ57Eq4JXy6Vj2VX4RVo18qYxRWz75ifAaYuYNBUCnbhjd37TfOg==", "dev": true, "requires": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", + "fs-extra": "^9.0.1", + "handlebars": "^4.7.6", + "highlight.js": "^10.2.0", + "lodash": "^4.17.20", "lunr": "^2.3.9", - "marked": "^2.0.1", + "marked": "^1.1.1", "minimatch": "^3.0.0", "progress": "^2.0.3", + "semver": "^7.3.2", "shelljs": "^0.8.4", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.9" + "typedoc-default-themes": "^0.11.4" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } } }, "typedoc-default-themes": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.9.tgz", - "integrity": "sha512-Jd5fYTiqzinZdoIY382W7tQXTwAzWRdg8KbHfaxmb78m1/3jL9riXtk23oBOKwhi8GFVykCOdPzEJKY87/D0LQ==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.11.4.tgz", + "integrity": "sha512-Y4Lf+qIb9NTydrexlazAM46SSLrmrQRqWiD52593g53SsmUFioAsMWt8m834J6qsp+7wHRjxCXSZeiiW5cMUdw==", + "dev": true + }, + "typedoc-plugin-lerna-packages": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/typedoc-plugin-lerna-packages/-/typedoc-plugin-lerna-packages-0.3.1.tgz", + "integrity": "sha512-azeP5DVv4Me+C32RoGbMAzXo7JeYmeEstMAx4mdtVGHLtrXjitlaf0pS562vogofwyIcyVnjL6BlZWvbPQ3hmw==", "dev": true }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz", + "integrity": "sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==", "dev": true }, "uglify-js": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.1.tgz", - "integrity": "sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.1.tgz", + "integrity": "sha512-RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q==", "dev": true, "optional": true }, @@ -13052,6 +24189,34 @@ "integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=", "dev": true }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -13082,6 +24247,15 @@ "imurmurhash": "^0.1.4" } }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, "universal-user-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz", @@ -13092,9 +24266,9 @@ } }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, "unset-value": { @@ -13108,101 +24282,86 @@ }, "dependencies": { "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==" - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "requires": { - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, "requires": { - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } } }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true } } }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, "upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + } + } + }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -13214,6 +24373,21 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, + "url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -13273,15 +24447,15 @@ "dev": true }, "v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz", + "integrity": "sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -13327,12 +24501,6 @@ "extsprintf": "^1.2.0" } }, - "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -13391,9 +24559,9 @@ "dev": true }, "whatwg-url": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", - "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.3.0.tgz", + "integrity": "sha512-BQRf/ej5Rp3+n7k0grQXZj9a1cHtsp4lqj01p59xBWFKdezR8sO37XnpafwNqiFac/v2Il12EIMjX/Y4VZtT8Q==", "dev": true, "requires": { "lodash.sortby": "^4.7.0", @@ -13413,7 +24581,8 @@ "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, "which-pm-runs": { "version": "1.0.0", @@ -13428,39 +24597,15 @@ "dev": true, "requires": { "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" } }, "windows-release": { @@ -13520,14 +24665,50 @@ "dev": true }, "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } } }, "wrappy": { @@ -13536,16 +24717,24 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, "requires": { + "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "signal-exit": "^3.0.2" } }, "write-json-file": { @@ -13568,28 +24757,12 @@ "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", "dev": true }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, "sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", @@ -13598,17 +24771,6 @@ "requires": { "is-plain-obj": "^1.0.0" } - }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } } } }, @@ -13637,12 +24799,6 @@ "pify": "^3.0.0" } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, "sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", @@ -13652,17 +24808,6 @@ "is-plain-obj": "^1.0.0" } }, - "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, "write-json-file": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz", @@ -13680,9 +24825,15 @@ } }, "ws": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", - "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", + "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", + "dev": true + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", "dev": true }, "xml-name-validator": { @@ -13704,14 +24855,15 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yaml": { @@ -13739,35 +24891,122 @@ "yargs-parser": "^18.1.2" }, "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "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==", + "dev": true, + "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==", + "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 + }, + "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==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": 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/package.json b/package.json index a3f83e474f..1036e2363e 100644 --- a/package.json +++ b/package.json @@ -6,15 +6,12 @@ "bootstrap": "lerna bootstrap", "test": "jest --collectCoverage", "lint": "lerna run lint", - "clean": "lerna clean --yes", "commit": "git-cz", "precommit": "lerna run --concurrency 1 --stream precommit", "example": "cd example && npm run example", "lerna": "lerna", "build-docs": "typedoc", - "gh-pages": "gh-pages", - "netlify:preview": "netlify deploy --site $NETLIFY_SITE_ID --auth $NETLIFY_AUTH_TOKEN --json --alias=$short_sha --message 'Deployment for $GITHUB_REF'", - "netlify:publish": "netlify deploy --site $NETLIFY_SITE_ID --auth $NETLIFY_AUTH_TOKEN --json --prod --message 'Deployment for $GITHUB_REF'" + "gh-pages": "gh-pages" }, "workspaces": [ "packages/*" @@ -42,9 +39,7 @@ "^@taquito/http-utils$": "<rootDir>/packages/taquito-http-utils/src/taquito-http-utils.ts", "^@taquito/utils$": "<rootDir>/packages/taquito-utils/src/taquito-utils.ts", "^@taquito/signer$": "<rootDir>/packages/taquito-signer/src/taquito-signer.ts", - "^@taquito/local-forging$": "<rootDir>/packages/taquito-local-forging/src/taquito-local-forging.ts", - "^@taquito/tzip16$": "<rootDir>/packages/taquito-tzip16/src/taquito-tzip16.ts", - "^@taquito/tzip12$": "<rootDir>/packages/taquito-tzip12/src/taquito-tzip12.ts" + "^@taquito/local-forging$": "<rootDir>/packages/taquito-local-forging/src/taquito-local-forging.ts" }, "coveragePathIgnorePatterns": [ "/node_modules/", @@ -67,8 +62,8 @@ "eslint": "^7.10.0", "gh-pages": "^3.1.0", "husky": "^4.3.0", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lerna": "^3.22.1", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", @@ -79,14 +74,17 @@ "rollup-plugin-json": "^4.0.0", "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", + "semantic-release": "^17.2.3", "shelljs": "^0.8.4", + "travis-deploy-once": "^5.0.11", "ts-jest": "^26.4.1", "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.32", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typedoc-plugin-lerna-packages": "^0.3.1", + "typescript": "^4.0.3" }, "config": { "commitizen": { diff --git a/packages/taquito-beacon-wallet/package-lock.json b/packages/taquito-beacon-wallet/package-lock.json index 865dd974b1..735d270157 100644 --- a/packages/taquito-beacon-wallet/package-lock.json +++ b/packages/taquito-beacon-wallet/package-lock.json @@ -1,17 +1,17 @@ { "name": "@taquito/beacon-wallet", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@airgap/beacon-sdk": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@airgap/beacon-sdk/-/beacon-sdk-2.2.5.tgz", - "integrity": "sha512-4DNh4aPl92+zFD/E5dC4WgAGYOjcJnSxzkBiQGR/oW74GTJe6hL9p0TBnJFqp5fHnqjBQSjT1zQmXG5TIZ3efw==", + "version": "2.0.0-beta.13", + "resolved": "https://registry.npmjs.org/@airgap/beacon-sdk/-/beacon-sdk-2.0.0-beta.13.tgz", + "integrity": "sha512-NzxwbL863UVYxIUSFzwvmrO/mwuaHdo7pKWg6t1UficwIbid0BYBfgN2l1NMpgsXuM6emG+bTyWE8jRyzEERAg==", "requires": { "@types/chrome": "0.0.115", "@types/libsodium-wrappers": "0.7.7", - "axios": "0.21.1", + "axios": "0.19.2", "bignumber.js": "9.0.0", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.8", @@ -35,37 +35,52 @@ } }, "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -75,12 +90,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -94,129 +109,127 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -225,7 +238,6 @@ "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" } @@ -234,7 +246,6 @@ "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", @@ -245,7 +256,6 @@ "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" } @@ -253,20 +263,17 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "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" } @@ -274,9 +281,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -298,12 +305,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -379,49 +386,66 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + } } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -644,7 +668,6 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -662,12 +685,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -682,6 +713,86 @@ "@sinonjs/commons": "^1.7.0" } }, + "@taquito/http-utils": { + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/http-utils/-/http-utils-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-mHmtIOZUmDKlL1OV/9Xbxo0ipZGqNjwasJLdSyDjaoMWY2F+X/m4tQWqyPZZ4lSYxKgoaHs+rS37KZbweTqykA==", + "requires": { + "xhr2-cookies": "^1.1.0" + } + }, + "@taquito/michel-codec": { + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/michel-codec/-/michel-codec-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-0wka0USOtM9qBvLVpszVJIvgW3/qyqe92GFPQjeEUl8uHExgMk/ShnB/kxcKnWaH08aO2LF7Mad/dkQkcxAoxA==" + }, + "@taquito/michelson-encoder": { + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/michelson-encoder/-/michelson-encoder-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-S+sGejQZLHvLD2w6ki0flmJy6Fa7TQMJAwDGTI4a4JJ/rKnphU7QFN6JFKYdhBg7+1Hi1mLdd42mvKgZdK0l8A==", + "requires": { + "@taquito/rpc": "^7.1.0-preview-lambdaview.0", + "@taquito/utils": "^7.1.0-preview-lambdaview.0", + "bignumber.js": "^9.0.1", + "fast-json-stable-stringify": "^2.1.0" + }, + "dependencies": { + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + } + } + }, + "@taquito/rpc": { + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/rpc/-/rpc-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-je2gQmVPYxPQdYIOPvPWQhNaHVkMws5q8YyTxacWU93Y5IBw1a3hKX7J1dymomlfeP3fJWHViYuwJKPQdmifXg==", + "requires": { + "@taquito/http-utils": "^7.1.0-preview-lambdaview.0", + "bignumber.js": "^9.0.1", + "lodash": "^4.17.20" + }, + "dependencies": { + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + } + } + }, + "@taquito/taquito": { + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/taquito/-/taquito-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-bqjyzuZm1v6MyOGXTuudcgQqGni6v8L5q5q2u4grtMi14T6WYOAyBLI7Mu7jcM6E4zVhc+7v7525Y4Ukl9ee/w==", + "requires": { + "@taquito/http-utils": "^7.1.0-preview-lambdaview.0", + "@taquito/michel-codec": "^7.1.0-preview-lambdaview.0", + "@taquito/michelson-encoder": "^7.1.0-preview-lambdaview.0", + "@taquito/rpc": "^7.1.0-preview-lambdaview.0", + "@taquito/utils": "^7.1.0-preview-lambdaview.0", + "bignumber.js": "^9.0.1", + "rx-sandbox": "^1.0.3", + "rxjs": "^6.6.3" + }, + "dependencies": { + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + } + } + }, + "@taquito/utils": { + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/utils/-/utils-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-Nm2v8TO+jho2ZsV3IGqymPkkiaZXVBVB6eMTDzqRx3BGzn2lTrYT5XqVoRCWZdkeavnrnu75ntMBrhMNpfDfLA==", + "requires": { + "blakejs": "^1.1.0", + "bs58check": "^2.1.2", + "buffer": "^5.6.0" + } + }, "@types/babel__core": { "version": "7.1.12", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", @@ -715,18 +826,18 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" } }, "@types/chrome": { - "version": "0.0.126", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.126.tgz", - "integrity": "sha512-191z7uoyfbGU+z7/m45j9XbWugWqVHVPMM4hJV5cZ+3YzGCT9wFjMUHO3Wr3Xvo8aVodvRNu28u7lvEaAnfbzg==", + "version": "0.0.124", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.124.tgz", + "integrity": "sha512-0UmDQ6A9gaahvztKryIonSTyUMEhuhKNyyJAnBB7ZJN/YXP7YRkL4onPFSTxnIbXcMnYsQFo8TxsGP8jY2mdEw==", "dev": true, "requires": { "@types/filesystem": "*", @@ -769,14 +880,12 @@ "@types/istanbul-lib-coverage": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" }, "@types/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" } @@ -785,15 +894,14 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -801,16 +909,15 @@ } }, "@types/libsodium-wrappers": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", - "integrity": "sha512-LisgKLlYQk19baQwjkBZZXdJL0KbeTpdEnrAfz5hQACbklCY0gVFnsKUyjfNWF1UQsCSjw93Sj5jSbiO8RPfdw==", + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", + "integrity": "sha512-vkDSj6enD3K0+Ep83wnoGUk+f7sqsO4alsqxxEZ8BcTJhFmcY4UehYH3rTf4M3JGHXNhdpGFDdMbWFMgyvw/fA==", "dev": true }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", - "dev": true + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -825,16 +932,15 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", - "dev": true + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==" }, "@types/ws": { "version": "7.4.0", @@ -846,19 +952,17 @@ } }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", - "dev": true, + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", - "dev": true + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" }, "abab": { "version": "2.0.5", @@ -923,19 +1027,25 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -1047,11 +1157,11 @@ "dev": true }, "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", "requires": { - "follow-redirects": "^1.10.0" + "follow-redirects": "1.5.10" } }, "babel-jest": { @@ -1096,9 +1206,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1154,6 +1264,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1165,6 +1304,11 @@ "safe-buffer": "^5.0.1" } }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -1179,6 +1323,11 @@ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" }, + "blakejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1193,7 +1342,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -1240,6 +1388,15 @@ "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.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -1300,7 +1457,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1353,63 +1509,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1447,19 +1546,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1488,7 +1574,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -1496,8 +1581,7 @@ "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==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colors": { "version": "1.4.0", @@ -1515,9 +1599,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1555,6 +1639,11 @@ } } }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -1605,16 +1694,10 @@ "sha.js": "^2.4.0" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1681,12 +1764,11 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { - "ms": "2.1.2" + "ms": "2.0.0" } }, "decamelize": { @@ -1739,6 +1821,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1762,8 +1875,7 @@ "diff-sequences": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" }, "doctrine": { "version": "0.7.2", @@ -1780,6 +1892,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1849,17 +1967,10 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { "version": "1.14.3", @@ -1887,9 +1998,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1905,138 +2016,112 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "shebang-regex": "^1.0.0" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "isexe": "^2.0.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "ms": "2.0.0" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "is-descriptor": "^0.1.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, @@ -2044,7 +2129,6 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, "requires": { "@jest/types": "^26.6.2", "ansi-styles": "^4.0.0", @@ -2068,6 +2152,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -2104,11 +2199,34 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -2133,8 +2251,7 @@ "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 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -2164,7 +2281,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -2191,9 +2307,12 @@ } }, "follow-redirects": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz", - "integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==" + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } }, "for-in": { "version": "1.0.2", @@ -2245,9 +2364,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2282,9 +2401,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2326,10 +2445,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "growly": { "version": "1.3.0", @@ -2366,8 +2484,7 @@ "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 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-value": { "version": "1.0.0", @@ -2484,10 +2601,15 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2552,12 +2674,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2582,32 +2715,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2618,13 +2770,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2641,8 +2790,7 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-obj": { "version": "1.0.1", @@ -2672,9 +2820,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2700,9 +2848,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2769,6 +2917,23 @@ "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + } } }, "istanbul-reports": { @@ -2790,6 +2955,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2801,27 +2989,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -2854,7 +3064,6 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, "requires": { "chalk": "^4.0.0", "diff-sequences": "^26.6.2", @@ -2916,8 +3125,7 @@ "jest-get-type": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" }, "jest-haste-map": { "version": "26.6.2", @@ -2981,7 +3189,6 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, "requires": { "chalk": "^4.0.0", "jest-diff": "^26.6.2", @@ -2993,7 +3200,6 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@jest/types": "^26.6.2", @@ -3025,8 +3231,7 @@ "jest-regex-util": { "version": "26.0.0", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==" }, "jest-resolve": { "version": "26.6.2", @@ -3153,13 +3358,10 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true } } }, @@ -3228,13 +3430,12 @@ "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 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3279,6 +3480,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -3312,9 +3526,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3395,9 +3609,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3415,12 +3629,70 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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 + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3430,8 +3702,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3446,8 +3717,7 @@ "lodash": { "version": "4.17.20", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, "lodash.camelcase": { "version": "4.3.0", @@ -3455,6 +3725,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3498,29 +3774,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -3588,25 +3844,24 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3638,19 +3893,32 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "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 + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "mute-stream": { "version": "0.0.8", @@ -3708,9 +3976,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3723,14 +3991,18 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true, + "optional": true } } }, @@ -3753,12 +4025,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -3793,43 +4073,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3946,9 +4189,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -4008,8 +4251,7 @@ "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pirates": { "version": "4.0.1", @@ -4029,6 +4271,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -4051,16 +4299,15 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, "requires": { "@jest/types": "^26.6.2", "ansi-regex": "^5.0.0", @@ -4069,16 +4316,17 @@ } }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -4127,8 +4375,7 @@ "react-is": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", - "dev": true + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" }, "read": { "version": "1.0.7", @@ -4168,14 +4415,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "readable-stream": { @@ -4226,48 +4465,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4296,24 +4501,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4334,18 +4521,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4432,12 +4607,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4457,6 +4641,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4480,6 +4676,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4490,14 +4692,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4506,21 +4700,21 @@ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", "dev": true }, + "rx-sandbox": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/rx-sandbox/-/rx-sandbox-1.0.4.tgz", + "integrity": "sha512-+/9MHDYNoF9ca/2RR+L2LloXXeQyIR3k/wjK03IicrxxlbkhmKF4ejPiWeafMWDg7otF+pnX5NE/8v/rX6ICJA==", + "requires": { + "expect": "^26.6.1", + "jest-matcher-utils": "^26.6.1" + } + }, "rxjs": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "safe-buffer": { @@ -4599,34 +4793,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4650,21 +4816,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4685,12 +4836,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4721,36 +4866,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4760,15 +4875,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4819,12 +4925,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4885,8 +4985,7 @@ "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "slice-ansi": { "version": "3.0.0", @@ -4942,93 +5041,11 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -5051,6 +5068,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -5081,13 +5127,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -5101,9 +5150,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -5133,9 +5182,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5180,7 +5229,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, "requires": { "escape-string-regexp": "^2.0.0" }, @@ -5188,8 +5236,7 @@ "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 + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" } } }, @@ -5211,63 +5258,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5354,7 +5344,6 @@ "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" } @@ -5456,18 +5445,16 @@ "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==", - "dev": true, "requires": { "is-number": "^7.0.0" } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5482,9 +5469,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5493,32 +5480,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5526,10 +5521,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tslint": { "version": "6.1.3", @@ -5599,15 +5593,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5616,12 +5601,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5638,34 +5617,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5677,14 +5654,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5718,9 +5687,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5733,9 +5702,9 @@ } }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "union-value": { @@ -5748,14 +5717,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5801,19 +5762,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -5850,15 +5805,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5871,16 +5817,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -5992,9 +5937,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -6002,6 +5947,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -6016,6 +5962,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -6026,9 +5978,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -6055,11 +6007,19 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, + "xhr2-cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", + "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "requires": { + "cookiejar": "^2.1.1" + } + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", @@ -6073,15 +6033,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -6107,25 +6061,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-beacon-wallet/package.json b/packages/taquito-beacon-wallet/package.json index 72bdeabacb..d830db5ca8 100644 --- a/packages/taquito-beacon-wallet/package.json +++ b/packages/taquito-beacon-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/beacon-wallet", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "Beacon wallet provider", "keywords": [ "tezos", @@ -30,9 +30,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -61,21 +60,21 @@ ] }, "dependencies": { - "@airgap/beacon-sdk": "^2.2.5", - "@taquito/taquito": "^9.0.0", - "@taquito/utils": "^9.0.0" + "@airgap/beacon-sdk": "^2.0.0-beta.13", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1" }, "devDependencies": { - "@types/chrome": "0.0.126", - "@types/jest": "^26.0.16", + "@types/chrome": "0.0.124", + "@types/jest": "^26.0.14", "@types/libsodium-wrappers": "^0.7.8", - "@types/node": "^14.14.10", - "@types/ws": "^7.4.0", + "@types/node": "^14.11.5", + "@types/ws": "^7.2.7", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -87,12 +86,12 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-beacon-wallet/signature.json b/packages/taquito-beacon-wallet/signature.json index 75d0308d36..bd47ace04f 100644 --- a/packages/taquito-beacon-wallet/signature.json +++ b/packages/taquito-beacon-wallet/signature.json @@ -6,31 +6,31 @@ "files": [ { "path": "dist/taquito-beacon-wallet.es5.js", - "sha512": "658a1ea5cec9a5a9ff0b67d8cdc4faf66af004c2e294522ba780d88f22dd7c245b5f63cd6866752203fb9408dd7948b73a9b2e979b8c6119507821e178a72ae2" + "sha512": "6de9836b5add6007c6643b22d697f1036a2b293956551094ff3e75a050cd3c242401c11fd9d0aa1e369e90a4cf39e677f94c041e10c441f0ac5e878c8e8485d0" }, { "path": "dist/lib/taquito-beacon-wallet.js", - "sha512": "0a161618b9beb820232a5446162ffaa02f7bf3ea74b4d3f8a5aaa08b780c8265aa50bd362d82a97db773c466e55c8254ac2655741ec8e76772cf5cb5b3fb75e2" + "sha512": "44730fcb4d7d1c8a70de6156c86446952530eebad47bd6b4a17694cffb5fc05e8938cbfdf25a4bc75bd0861f03e5c87d5ce5b42452ada83f505cc89e887bff3b" }, { "path": "dist/taquito-beacon-wallet.umd.js", - "sha512": "a725f6e9c038a73ea2e0961c66defa964a05d3ac036aa75b0c583263b50063e75fa85d1adeb47f5c04eca604e38ef66ace3241374e9860e1d7e1e951b3764c59" + "sha512": "079eeb69421074f3f3bf80ec8a0083706bef3c96ce94cf70d119e3f7eea476f6952ea01729124d095b45fa5f281ac002e7cee8e0ed7f9fc8273758ae1926fdbc" }, { "path": "dist/taquito-beacon-wallet.es5.js.map", - "sha512": "fe50738a39b96d628188c1cb4994506aab5740b2e713a8a5574c5c10f6961500855c82ffca66c484ba15c45a6c6c8f7302c95e3db23c1b2fdd6bd602a9d74c0a" + "sha512": "eca924625e2b654f9b614179fc8aecf9fd574bbfd15aa4416e04f959ed89e86e297475598753cbbc20370b7aeb0e9aa148db4d70866256e45e8c6738fc03fe7c" }, { "path": "dist/lib/taquito-beacon-wallet.js.map", - "sha512": "9c4e154190c12e1586501d6f83cf68fa115a9f723213c7d37b8f6337d1a2583daf55dff5c1003949f5af889f98c9c4e0190866f12d9d5200865f3ed094da1961" + "sha512": "62e593e942f182f0f5c90d1e63d5bd541bb8915dd399cf6c6e197129e6905149fd67370108090d5f184ecff9223155a635d509d95f27fffe3890dcc377b7fcab" }, { "path": "dist/taquito-beacon-wallet.umd.js.map", - "sha512": "c431f7badafa5d0ac145a51d04cb8d12460fd27a7a4676b08a9a1278933cc4d82e664b6bdebfe1cf87c0e081f3cf27123fcfd1277effdade1da4e6d43f90c6dd" + "sha512": "6802e902621c4a26ecb35924d5bb982f867165562e3965755ebd8552a204ec912908b4a0aed7b6327b0005b9e95cc720273da4bb77a3a2abb2e387a29e51063b" }, { "path": "dist/types/taquito-beacon-wallet.d.ts", - "sha512": "72f96db06619b57573d9323b808f1d89baa70310485ed33b197c0b241b31e8790d88db91e9a35d016e34f0f5f082c7544e899f76a4a95565affd45915b7ac718" + "sha512": "ba31c31ecd6467de02a816e95685400b61b719f9e61880d569f0d5a4500f2c27188b1fb2d0d19c6b4f143bb67741b3cc657b9e168728e7763cf69738aabd73f2" } ] } @@ -67,7 +67,7 @@ "typings", "version" ], - "sha512": "67c296fde031aa5011bad581cb975edc3d5fbe2afbf299b1e6d7f1c527d7a3047dc0958fbc92d9b4f563b52189fd58cd948bf00bcd1d67a9173f7862d8926dfc" + "sha512": "2abff7cf1cf1d9b32700d4d68fc74c60d2cd3b554b419081668b6eadf48cf6086e82b659c036691069488332e62eb214dc0b754e1664402437be1af8cb847b83" } }, { @@ -75,7 +75,7 @@ "value": { "packageJson": { "name": "@taquito/beacon-wallet", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "Beacon wallet provider", "keywords": [ "tezos", @@ -135,21 +135,21 @@ ] }, "dependencies": { - "@airgap/beacon-sdk": "^2.2.1", - "@taquito/taquito": "^8.0.4-beta.0", - "@taquito/utils": "^8.0.4-beta.0" + "@airgap/beacon-sdk": "^2.0.0-beta.12", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1" }, "devDependencies": { - "@types/chrome": "0.0.126", - "@types/jest": "^26.0.16", + "@types/chrome": "0.0.124", + "@types/jest": "^26.0.14", "@types/libsodium-wrappers": "^0.7.8", - "@types/node": "^14.14.10", - "@types/ws": "^7.4.0", + "@types/node": "^14.11.5", + "@types/ws": "^7.2.7", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -161,17 +161,17 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/T9CRAD9Qy5GYHsngAAh7sQAJX0r3AUmD/9aOlRG0QHN9J8\nmR+y7rc1xPXHSk2JREYv+qeRY6yM8hoThbYf3UXtywqSK8qGtiu2rjxgMtOJBurq\ng+RNFs6tG1L3q6rmM3A0g030JfQWKO9QvY7E8144kfXJM1CnlLGp8W6T8VIC5Mr5\nNH24DrLaOChD31vHt/tWUVn8ljQNFEzQmf2s50S9c2yud9QnUIyVz1n5QhzwHUpU\nP9XlSpbOw4MLrbrblWHGn1NvrnG1SOevwHqCH6t620uwZcpR1x5qdldVioIAobDh\nKnl4D22gANal7x/of8DQ1kDMXf/r4houuR5HPoSyRtlnbQdOtm4A8xOi8pk2D8VQ\n66NBkHYcDhckQnTzpwpCWlC3q5tR/JZoUY5T9JJuizPdEjwQyBGOjnjN2r02aIFg\nZmxH51vz1QWRDYO7Q02mO2u+bT0T6ojWtDkHGbmFcm6U0ONkXntlRsTzAL8LEjC8\nTzKWDsYBXHi6J30dWBtwfD3PKyq7sEri3+29ktOkbhyg2UeBfCyNNjQq+NTEYeFS\nzGRrbEslFO8EWhkX9VZIwRyJa7VUPRzADNC8W6Iqq6Fu3APaqibDqnm4B5jGHZpK\nHXiYgUuZkHI5pgfjempYULh9v4FHDdcumrCHPxihTxhYGfSZxvG3rc8/St/1bAIl\nFEUWaENtLRCqLLqpHrw7\n=nmc6\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSlCRAD9Qy5GYHsngAAUsMQAFrhUopTxyCkWL+5fXpioWkn\nQ/woePkO2w5iGSLGF30q42n1Q4W9uUtJd3cS8dhrEns56BdKkAbC9rdzodxlvr6Z\nFu3H9O7TJNt84eHoRME7VFd4ZewKqS70jwEGSWdwa3EarC6PBscBhu8B9n4QSLWC\nA7EFlxB9thEWSSF3mpGLLXbKiCXFpliRUnagLvySOzmWWEMBdn+tEFHu5Tcvx7A6\nwsBwWIC/zOoT+4QvTqch6IO5uynuOFniSdKk45U0eoJOSs2dHTCvPgLN4Vklwc5X\nqx4I9cHBp1rTgPqRsU+sumQF84sxFmbIbW/UwrZ1bwmcgBsjKUu8gP7CSWkAR2T2\nCOw02xK7ZK/Pw+FStNgyowxhv5QanqXayG+5oJz1kPQX/Q5S6P/CuUvnPuvx68vM\nPHS3Gh7bR3EevkBwXScDd8Qm8MzSQQo9ZdF6VdWA/TAo2x4U8iA6+AZVLpyfs6id\nBBW+1NVmCmK28krZj07qxb7HwdDFv09SYpUctgowJddEzGPx9FA3faTTW6YGGkXA\n7C445qQku/qDYKCCYFkVvD+dOd7Un98vnhu5x08+fDvI7eTOSWekpR6jNNjpFshx\nTLxbWs76UT4AGyJCa8+/p05azn48JG/+mLzI0n662cYd3+l+7Lx5bOLHhhAf7q6H\nEQ0q3IpZz08Q9GB+sGeM\n=4Q2i\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-beacon-wallet/src/taquito-beacon-wallet.ts b/packages/taquito-beacon-wallet/src/taquito-beacon-wallet.ts index 5c84e80084..08efb7c7ba 100644 --- a/packages/taquito-beacon-wallet/src/taquito-beacon-wallet.ts +++ b/packages/taquito-beacon-wallet/src/taquito-beacon-wallet.ts @@ -1,12 +1,8 @@ -/** - * @packageDocumentation - * @module @taquito/beacon-wallet - */ - import { DAppClient, DAppClientOptions, RequestPermissionInput, + PermissionResponseOutput, PermissionScope, } from '@airgap/beacon-sdk'; @@ -20,8 +16,6 @@ import { WalletTransferParams, } from '@taquito/taquito'; -export { VERSION } from './version'; - export class BeaconWalletNotInitialized implements Error { name = 'BeaconWalletNotInitialized'; message = 'You need to initialize BeaconWallet by calling beaconWallet.requestPermissions first'; @@ -39,17 +33,27 @@ export class MissingRequiredScopes implements Error { export class BeaconWallet implements WalletProvider { public client: DAppClient; + private permissions?: PermissionResponseOutput; + constructor(options: DAppClientOptions) { this.client = new DAppClient(options); } + private getPermissionOrFail() { + if (!this.permissions) { + throw new BeaconWalletNotInitialized(); + } + + return this.permissions; + } + private validateRequiredScopesOrFail( - permissionScopes: PermissionScope[], + permission: PermissionResponseOutput, requiredScopes: PermissionScope[] ) { const mandatoryScope = new Set(requiredScopes); - for (const scope of permissionScopes) { + for (const scope of permission.scopes) { if (mandatoryScope.has(scope)) { mandatoryScope.delete(scope); } @@ -61,7 +65,15 @@ export class BeaconWallet implements WalletProvider { } async requestPermissions(request?: RequestPermissionInput) { - await this.client.requestPermissions(request); + const activeAccount = await this.client.getActiveAccount(); + + if (activeAccount) { + this.permissions = activeAccount; + return; + } + + const result = await this.client.requestPermissions(request); + this.permissions = result; } private removeFeeAndLimit<T extends { gas_limit: any; storage_limit: any; fee: any }>(op: T) { @@ -69,12 +81,9 @@ export class BeaconWallet implements WalletProvider { return rest; } - async getPKH() { - const account = await this.client.getActiveAccount(); - if (!account) { - throw new BeaconWalletNotInitialized(); - } - return account.address; + getPKH() { + const { address } = this.getPermissionOrFail(); + return Promise.resolve(address); } mapTransferParamsToWalletParams(params: WalletTransferParams) { @@ -90,11 +99,7 @@ export class BeaconWallet implements WalletProvider { } async sendOperations(params: any[]) { - const account = await this.client.getActiveAccount(); - if (!account) { - throw new BeaconWalletNotInitialized(); - } - const permissions = account.scopes; + const permissions = this.getPermissionOrFail(); this.validateRequiredScopesOrFail(permissions, [PermissionScope.OPERATION_REQUEST]); const { transactionHash } = await this.client.requestOperation({ @@ -116,9 +121,43 @@ export class BeaconWallet implements WalletProvider { /** * - * @description This method removes the active account from local storage by setting it to undefined. + * @description Allows to remove an account from the local storage + * @param accountIdentifier optional identifier of the account to remove from the storage. + * If none is specified, the active account (if defined) will be removed from the storage. + */ + async removeAccount(accountIdentifier?: string) { + const accountInfo = accountIdentifier + ? await this.client.getAccount(accountIdentifier) + : await this.client.getActiveAccount(); + + if (accountInfo) { + await this.client.removeAccount(accountInfo.accountIdentifier); + } + } + + /** + * + * @description Allows to remove all accounts and set active account to undefined + */ + async removeAllAccounts() { + await this.client.removeAllAccounts(); + } + + /** + * + * @description Return the active account + */ + async getActiveAccount() { + const activeAccount = await this.client.getActiveAccount(); + return activeAccount; + } + + /** + * + * @description Return all accounts in storage */ - async clearActiveAccount() { - await this.client.setActiveAccount(); + async getAccounts() { + const activeAccount = await this.client.getAccounts(); + return activeAccount; } } diff --git a/packages/taquito-beacon-wallet/src/version.ts b/packages/taquito-beacon-wallet/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-beacon-wallet/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-http-utils/package-lock.json b/packages/taquito-http-utils/package-lock.json index f70d50be69..909f6ee3ec 100644 --- a/packages/taquito-http-utils/package-lock.json +++ b/packages/taquito-http-utils/package-lock.json @@ -1,37 +1,38 @@ { "name": "@taquito/http-utils", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -64,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -244,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -268,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -349,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -632,12 +633,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -685,9 +694,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -739,9 +748,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -749,9 +758,9 @@ } }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", "dev": true }, "@types/normalize-package-data": { @@ -767,9 +776,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -789,18 +798,18 @@ } }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, "abab": { @@ -866,6 +875,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1031,9 +1048,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1089,6 +1106,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1248,63 +1294,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1342,19 +1331,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1410,9 +1386,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1440,6 +1416,14 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==", + "dev": true + } } }, "cookiejar": { @@ -1485,16 +1469,10 @@ "request": "^2.88.2" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1561,9 +1539,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1619,6 +1597,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1660,6 +1669,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1729,12 +1744,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1767,9 +1776,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1785,20 +1794,63 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "exit": { @@ -1849,69 +1901,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1948,6 +1937,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -1984,24 +1984,47 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, "fast-deep-equal": { @@ -2120,9 +2143,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2157,9 +2180,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2201,9 +2224,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2350,9 +2373,9 @@ } }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2418,12 +2441,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2448,32 +2482,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2484,13 +2537,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2538,9 +2588,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2566,9 +2616,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2656,6 +2706,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2667,27 +2740,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -3019,13 +3114,10 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true } } }, @@ -3098,9 +3190,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3145,6 +3237,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -3178,9 +3283,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3248,9 +3353,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3268,12 +3373,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3283,8 +3431,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3308,6 +3455,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3351,29 +3504,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -3438,18 +3571,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3481,13 +3614,27 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "ms": { "version": "2.1.2", @@ -3551,9 +3698,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3566,14 +3713,18 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true, + "optional": true } } }, @@ -3596,12 +3747,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -3636,43 +3795,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3789,9 +3911,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3872,6 +3994,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -3894,9 +4022,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -3912,16 +4040,17 @@ } }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -4006,14 +4135,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "rechoir": { @@ -4054,48 +4175,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4124,24 +4211,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4162,18 +4231,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4251,12 +4308,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4276,6 +4342,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4299,6 +4377,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4309,14 +4393,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4332,20 +4408,12 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "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==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-regex": { @@ -4419,34 +4487,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4470,21 +4510,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4505,12 +4530,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4541,36 +4560,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4580,15 +4569,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4639,12 +4619,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4753,69 +4727,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4827,19 +4738,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -4862,6 +4760,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -4892,13 +4819,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -4912,9 +4842,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -4944,9 +4874,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5022,63 +4952,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5265,12 +5138,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5285,9 +5157,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5296,32 +5168,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5329,9 +5209,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -5402,15 +5282,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5419,12 +5290,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5441,34 +5306,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5480,14 +5343,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5521,9 +5376,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5536,9 +5391,9 @@ } }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "union-value": { @@ -5551,14 +5406,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5604,19 +5451,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -5648,15 +5489,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5669,16 +5501,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -5790,9 +5621,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -5800,6 +5631,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -5814,6 +5646,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -5824,9 +5662,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -5853,9 +5691,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xhr2-cookies": { @@ -5879,15 +5717,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -5913,25 +5745,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-http-utils/package.json b/packages/taquito-http-utils/package.json index 178753e28a..b611463cfa 100644 --- a/packages/taquito-http-utils/package.json +++ b/packages/taquito-http-utils/package.json @@ -1,10 +1,8 @@ { "name": "@taquito/http-utils", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "", - "keywords": [ - "tezos" - ], + "keywords": [], "main": "dist/taquito-http-utils.umd.js", "module": "dist/taquito-http-utils.es5.js", "typings": "dist/types/taquito-http-utils.d.ts", @@ -28,9 +26,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -62,14 +59,14 @@ "xhr2-cookies": "^1.1.0" }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", "@types/superagent": "^4.1.10", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -81,12 +78,12 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-http-utils/signature.json b/packages/taquito-http-utils/signature.json index 4464344de5..dbac740e2f 100644 --- a/packages/taquito-http-utils/signature.json +++ b/packages/taquito-http-utils/signature.json @@ -10,15 +10,15 @@ }, { "path": "dist/taquito-http-utils.es5.js", - "sha512": "477b796699411c9cefe85b876b7f7c706a45ca02614ba91410162b58ef50761e209cf156ebea4aab50b9176199a5c29614bdb8100991947c746e3b5f8ad6b078" + "sha512": "e6edd4b8afea8dc55685c427bda9141758b8f842000bab217e4ce6695285b9e830b08d2ca1dba89c9712b493ba94ba38f70d6780e91f938eb3ea7e208fa76634" }, { "path": "dist/lib/taquito-http-utils.js", - "sha512": "06ad24314d33a408a5908a9c1b90615f86c72dbb52b3185a499dceed8d31f97c5e017f7e921ceddf1bd6a817cd599be0ceefd07ebbdb36e30853d3ad08f097ad" + "sha512": "a5fcedd1c17ae43b67aa458ec882c03c8ee75982aa6599469dee803845d680fa75fe4d865fc04548c9b3cb41ae92db7e7c82dbb5b922b09043ca5bbc4ad86ef9" }, { "path": "dist/taquito-http-utils.umd.js", - "sha512": "6f54f7c97d82399752150e639048c55dba9ec05e89dfe72b88bc2a3fded344a8ab1058f0f95d72002791a26bf4f623eed65acdadcba82261fd7996e6c76d9e83" + "sha512": "9e372842707aa15a970c32c032d382a118820984d03cbfd5841d7180f0680cca75df5ae2f9a82c7ba5273e71ed2aadc2de2e855a3e802a0369da948bcc19d98d" }, { "path": "dist/lib/status_code.js.map", @@ -26,15 +26,15 @@ }, { "path": "dist/taquito-http-utils.es5.js.map", - "sha512": "c54b81dec94e12e4be14bc4c7c7aea6f10f02018ac51b1585bce319fe4d7aca83419c6136159ebdcb512d58b3e5c4ac3c4c72a1470bccea9bc50e370bcf22f6b" + "sha512": "11990b8fc9cc0b247265df6c4dc6f7ab0ccdf9132cc60ff1256494d6a696dab5ecfa79587a5bf3ff4f464a746b0a43a26ebe53f4962d5a40e2022264d5eaff79" }, { "path": "dist/lib/taquito-http-utils.js.map", - "sha512": "3bd30baee0089e2d22c2fff9ebd236d392b0a81f6671fdf6202b573caa11e2d9a3f69a4a095afb5f89a3ae2273a7e1575f5788b1be3163fc5026e773c31ad6ac" + "sha512": "a927b2114c78f9e62bee20a1759f0fcfac1b2a1ae525daf360dd118fc17d9eb525a6001162f01a84e5d0dbab1c755b533bb0450731ec07f1d6e4ff4e87a8afb3" }, { "path": "dist/taquito-http-utils.umd.js.map", - "sha512": "0181128f981fa00465ce346941ed84d8e9bc8da775dde390ac33151970bb9f9aad4cc8d26558e91284f9038da46ed38bfaf0a1c1c998a30a7ed93ec3a355ff3a" + "sha512": "b8281e67a01c781377129f1c6a8a98193e6c467526459bdd5309b1913fe3ae6ac9724e7ec0051ca26fa0aa27d6b1d7b7da9aadd6b3931810e81a1f7c3c7450de" }, { "path": "dist/types/status_code.d.ts", @@ -42,7 +42,7 @@ }, { "path": "dist/types/taquito-http-utils.d.ts", - "sha512": "e135f5382f57cb169697d871dba086d6f29e92ba1fe8398ac3a8b6e8c49bc990f295372360c6e49b6f6423efcd522536edac1e4c755ffa976019da994ecbc770" + "sha512": "1c137b7befe1964d5409ac612e485e517b117b2a777aaf62a60965b998f039d0319e22d3a78d0f6ac7a5621a39253dbdc2bc2dc95bb4332418f51a1a3ecf2a46" } ] } @@ -79,7 +79,7 @@ "typings", "version" ], - "sha512": "a9899eccd917013582e020f078d0c6291226f0d89fa1d91d9401927d080f971b5e02f9e951b0f0e1da6d4ecf5e9833d7b04387a4c263021061b10dcd9c13bcb7" + "sha512": "31c54bcf230f36f74029877d16d91c3d89d55628ebf164deb2273fc2fd7031b879f45404060789e6de7f196c903ecbb305e1a1c2ad414e36bf1b49e20357ab9d" } }, { @@ -87,7 +87,7 @@ "value": { "packageJson": { "name": "@taquito/http-utils", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "", "keywords": [], "main": "dist/taquito-http-utils.umd.js", @@ -146,14 +146,14 @@ "xhr2-cookies": "^1.1.0" }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", "@types/superagent": "^4.1.10", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -165,17 +165,17 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/T/CRAD9Qy5GYHsngAA2rcQAHQ7oAbelULhQtJcDIxHxN47\nAzzaEXexR7/af5fFtgr2F84dI85zI3RXXRtATLjHiDuodbhGIN6E5nhpkqmEDO0g\nsET2bGWcHBlqbfIUWE8PUg0pybEKbbS5zHRqrZK/ywEp+OjTnr8TKHZGN/6oXe1o\ngdJGFJgAlKmZ9vssE0MAMnqpELF4VSQ427JjlRx91Lvbokfm39+vwb1mOW+vnGG9\ngdKB/6CWrjtjCJQ7rItyA/dgLbxCPrIAu/80JOnpVaSrM5rArRJd4y6tB6qcB4/7\nmFioJrAzBeIUXvoINyr4+JaWanxCurYK9Mlmtn7A3f5m7K/rs/haC0W1xBxb400C\ndOFPmdfqEmbEMY4I6sawequkBrnHvPGRYB3QnUdWnnqMAt7nzjyhaR0iIv5CQQAK\nq4Ao81a3sEUlFnOFx0PojQwMA+HsTHb/jnYSAlPFwEWZOPHkQO8GdeL/S/wQqPwz\nGDixESwM/pQGpn+neZPOsfWqDQfG0alT+ZKm+Zo6jRePJjkC0hy+pLRBLDw9bEQz\nv1fZuWAOyQI+LGgeIpiQhF3V7wBqg3NSCoO5juqyic0TMcVdgCLxle8Vw9EERw0r\nIpf1slEiSS1iJdKE3IJ0NnRpKabo0arDg8pldbYQsVZrB9GP1yaziiFMpr1OdMC6\n2z18RnCBXzS7YGEcODZP\n=dhWE\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSmCRAD9Qy5GYHsngAAA6MQAC5pPTlANBDr+nYXWh/M5Alt\njbcuDo5Wiw7Hhax/+lWNzC7pm25lABes9CzSMY+xzf8tdlOGzBJBEPSjhwDBym1x\ns3Y/R/teEFb/oW+JBgKB1VHwTucBgV/BT8xp/EXosyKk80ZwYqodl/P/qFkALZRe\n0DzaQHbbTh0IFsQ71H6QPr8D0oyhE7h73Vm8OcdJRFn74nR5nH4svCGNgbFRUmtd\neC/NtOo+iMRNWmqT2NCbm9xIT6+JPbnzLu63IwSvtoLkp+vPMZEQB+6agXPGzVKG\n3uS07Lu4cuxT1RUqafRroDE6ntucgTBYQpgyMUD8E6YuGfy3wZg/ob5zF/k3OgCb\nLoRNCTs/W5hi66lJVLpEgq09dPosuLlN6rTOU0NiTgoUmooo2FYyRr5GqQF84oOt\ntIGclxQ4Z9aUIFQOsCh+ynnkeaWdD767X0GaonexRngsmJlzmPz3okzULe3QZpqy\nR6LOpUH6RmTsAriTlVa5oOJxMV2fIZQjN1fJBZyEZHSey1jRcbHVJEYP0ivAiVi7\nOF9pDBop6CqGwKrBejWiGgnVB37WoFjbppa9gxZhtNV8nPyL/XICNw2yx/tDh72g\ngyxYhHaPU0AD6oRT6L8Ea6JTZYIvJo14dQcUpdGjepjWPNvCpbwQmwF9RrZ032rR\nTMeX8uBxPuUUsJTnmXwc\n=aHZd\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-http-utils/src/taquito-http-utils.ts b/packages/taquito-http-utils/src/taquito-http-utils.ts index 770b9ebc95..0d5f3503f5 100644 --- a/packages/taquito-http-utils/src/taquito-http-utils.ts +++ b/packages/taquito-http-utils/src/taquito-http-utils.ts @@ -1,8 +1,3 @@ -/** - * @packageDocumentation - * @module @taquito/http-utils - */ - import { STATUS_CODE } from './status_code'; // tslint:disable: strict-type-predicates @@ -14,8 +9,6 @@ const XMLHttpRequestCTOR = isNode ? require('xhr2-cookies').XMLHttpRequest : XML export * from './status_code'; -export { VERSION } from './version'; - const defaultTimeout = 30000; interface HttpRequestOptions { @@ -57,7 +50,7 @@ export class HttpBackend { const str = []; for (const p in obj) { - if (obj.hasOwnProperty(p) && typeof obj[p] !== 'undefined') { + if (obj.hasOwnProperty(p) && obj[p]) { const prop = typeof obj[p].toJSON === 'function' ? obj[p].toJSON() : obj[p]; // query arguments can have no value so we need some way of handling that // example https://domain.com/query?all @@ -104,12 +97,7 @@ export class HttpBackend { const request = this.createXHR(); request.open(method || 'GET', `${url}${this.serialize(query)}`); - if (!headers['Content-Type']) { - request.setRequestHeader('Content-Type', 'application/json'); - } - if (mimeType){ - request.overrideMimeType(`${mimeType}`); - } + request.setRequestHeader('Content-Type', 'application/json'); for (const k in headers) { request.setRequestHeader(k, headers[k]); } diff --git a/packages/taquito-http-utils/src/version.ts b/packages/taquito-http-utils/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-http-utils/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-http-utils/test/taquito-http-utils.spec.ts b/packages/taquito-http-utils/test/taquito-http-utils.spec.ts deleted file mode 100644 index b99996368a..0000000000 --- a/packages/taquito-http-utils/test/taquito-http-utils.spec.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { HttpBackend } from '../src/taquito-http-utils'; - -describe('HttpBackend test', () => { - const httpBackend: HttpBackend = new HttpBackend(); - - it('Should serialize object while repsecting non-zero values.', async done => { - const httpRequestQuery = { - delegate: [ - 'tz3VEZ4k6a4Wx42iyev6i2aVAptTRLEAivNN', - 'tz1NMdMmWZN8QPB8pY4ddncACDg1cHi1xD2e', - ], - max_priority: 1 - }; - const response = httpBackend['serialize'](httpRequestQuery); - expect(response).toEqual("?delegate=tz3VEZ4k6a4Wx42iyev6i2aVAptTRLEAivNN&delegate=tz1NMdMmWZN8QPB8pY4ddncACDg1cHi1xD2e&max_priority=1"); - done(); - }); - - it('Should serialize object while repsecting zero values.', async done => { - const httpRequestQuery = { - delegate: [ - 'tz3VEZ4k6a4Wx42iyev6i2aVAptTRLEAivNN', - 'tz1NMdMmWZN8QPB8pY4ddncACDg1cHi1xD2e', - ], - max_priority: 0 - }; - const response = httpBackend['serialize'](httpRequestQuery); - expect(response).toEqual("?delegate=tz3VEZ4k6a4Wx42iyev6i2aVAptTRLEAivNN&delegate=tz1NMdMmWZN8QPB8pY4ddncACDg1cHi1xD2e&max_priority=0"); - done(); - }); -}); \ No newline at end of file diff --git a/packages/taquito-ledger-signer/package-lock.json b/packages/taquito-ledger-signer/package-lock.json index 9d39153f94..2adfe5625c 100644 --- a/packages/taquito-ledger-signer/package-lock.json +++ b/packages/taquito-ledger-signer/package-lock.json @@ -1,47 +1,42 @@ { "name": "@taquito/ledger-signer", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -51,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -70,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -250,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -274,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -355,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -485,6 +480,23 @@ "rimraf": "^3.0.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "@jest/environment": { @@ -629,35 +641,61 @@ } }, "@ledgerhq/devices": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.43.0.tgz", - "integrity": "sha512-/M5ZLUBdBK7Vl2T4yNJbES3Z4w55LbPdxD9rcOBAKH/5V3V0obQv6MUasP9b7DSkwGSSLCOGZLohoT2NxK2D2A==", + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.30.0.tgz", + "integrity": "sha512-2ubefpOcw7SpU/6E1MM7JNLihOuwvQ73dCSPmxLloxPf1T4S6gOBh4RgB9mal/gwoOwWGVNaR3wGHvqJI8z1Gg==", "requires": { - "@ledgerhq/errors": "^5.43.0", - "@ledgerhq/logs": "^5.43.0", - "rxjs": "^6.6.3", - "semver": "^7.3.4" + "@ledgerhq/errors": "^5.30.0", + "@ledgerhq/logs": "^5.30.0", + "rxjs": "^6.6.3" } }, "@ledgerhq/errors": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.43.0.tgz", - "integrity": "sha512-ZjKlUQbIn/DHXAefW3Y1VyDrlVhVqqGnXzrqbOXuDbZ2OAIfSe/A1mrlCbWt98jP/8EJQBuCzBOtnmpXIL/nYg==" + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.30.0.tgz", + "integrity": "sha512-pSX50OEQqK56WiZG2lIxGijy5QUwiWNDFXzAoPCh2BOGGWhBq6LaYSKQyQaRIpUXzAubt0s1lUj3sHNYTOA9vg==" }, "@ledgerhq/hw-transport": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.43.0.tgz", - "integrity": "sha512-0S+TGmiEJOqgM2MWnolZQPVKU3oRtoDj4yUFUZts9Owbgby+hmo4dIKTvv0vs8mwknQbOZByUgh3MQOQiK70MQ==", + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.30.0.tgz", + "integrity": "sha512-86cKX9yIHP9C/wnVRhm5QnaBPqTWaSxb0Z2BlMLT0xWqQf0RVb9e4pUtfAsGNDhTyN2exQF54+G4IkspsplnKg==", "requires": { - "@ledgerhq/devices": "^5.43.0", - "@ledgerhq/errors": "^5.43.0", + "@ledgerhq/devices": "^5.30.0", + "@ledgerhq/errors": "^5.30.0", "events": "^3.2.0" } }, + "@ledgerhq/hw-transport-node-hid": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.30.0.tgz", + "integrity": "sha512-AfvU9ejc7hjnLUI7Ju2WXA+3yJuY9d8BbQVW/6gXUUy4cJbMxHyymNjX+xv6aYzDo1RdgGIXBDntxDbTlyjgPA==", + "requires": { + "@ledgerhq/devices": "^5.30.0", + "@ledgerhq/errors": "^5.30.0", + "@ledgerhq/hw-transport": "^5.30.0", + "@ledgerhq/hw-transport-node-hid-noevents": "^5.30.0", + "@ledgerhq/logs": "^5.30.0", + "lodash": "^4.17.20", + "node-hid": "1.3.0", + "usb": "^1.6.3" + } + }, + "@ledgerhq/hw-transport-node-hid-noevents": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.30.0.tgz", + "integrity": "sha512-pvApZQnIEJxHtOituz9ehbpTzDYwqUXRmqbUe757inkhQ3EhvmZzWmg2zJAt1yKLRcTs5Si/t7PTvK/UW4p20A==", + "requires": { + "@ledgerhq/devices": "^5.30.0", + "@ledgerhq/errors": "^5.30.0", + "@ledgerhq/hw-transport": "^5.30.0", + "@ledgerhq/logs": "^5.30.0", + "node-hid": "1.3.0" + } + }, "@ledgerhq/logs": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.43.0.tgz", - "integrity": "sha512-QWfQjea3ekh9ZU+JeL2tJC9cTKLZ/JrcS0JGatLejpRYxQajvnHvHfh0dbHOKXEaXfCskEPTZ3f1kzuts742GA==" + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.30.0.tgz", + "integrity": "sha512-wUhg2VTfUrWihjdGqKkH/s7TBzdIM1yyd2LiscYsfTX2I0xYDMnpE+NkMReeGU8PN3QhCPgnlg9/P9V6UWoJBA==" }, "@rollup/pluginutils": { "version": "3.1.0", @@ -668,12 +706,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -721,9 +767,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -766,9 +812,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "requires": { "jest-diff": "^26.0.0", "pretty-format": "^26.0.0" @@ -795,15 +841,15 @@ } }, "@types/libsodium-wrappers": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", - "integrity": "sha512-LisgKLlYQk19baQwjkBZZXdJL0KbeTpdEnrAfz5hQACbklCY0gVFnsKUyjfNWF1UQsCSjw93Sj5jSbiO8RPfdw==", + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", + "integrity": "sha512-vkDSj6enD3K0+Ep83wnoGUk+f7sqsO4alsqxxEZ8BcTJhFmcY4UehYH3rTf4M3JGHXNhdpGFDdMbWFMgyvw/fA==", "dev": true }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==" + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, "@types/node-hid": { "version": "1.3.0", @@ -827,9 +873,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -848,17 +894,17 @@ } }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" }, "abab": { "version": "2.0.5", @@ -923,12 +969,20 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "4.3.0", @@ -948,6 +1002,20 @@ "picomatch": "^2.0.4" } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -1086,9 +1154,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1144,6 +1212,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1161,6 +1258,36 @@ "tweetnacl": "^0.14.3" } }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", + "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1284,6 +1411,11 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -1316,63 +1448,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1399,6 +1474,40 @@ "requires": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "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==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "cliui": { @@ -1412,16 +1521,37 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "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==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } } } }, @@ -1431,6 +1561,11 @@ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, "collect-v8-coverage": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", @@ -1476,9 +1611,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1499,6 +1634,11 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", @@ -1517,8 +1657,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { "version": "7.0.0", @@ -1546,16 +1685,10 @@ "request": "^2.88.2" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1622,9 +1755,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1648,6 +1781,14 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "requires": { + "mimic-response": "^2.0.0" + } + }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -1660,6 +1801,11 @@ "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=", "dev": true }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -1680,6 +1826,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1688,6 +1865,16 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -1720,6 +1907,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1766,7 +1959,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -1789,12 +1981,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1827,9 +2013,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1850,132 +2036,112 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "extend-shallow": { + "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "shebang-regex": "^1.0.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "isexe": "^2.0.0" } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "ms": "2.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-descriptor": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } }, "ms": { "version": "2.0.0", @@ -1985,6 +2151,11 @@ } } }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" + }, "expect": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", @@ -2013,6 +2184,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -2049,11 +2231,34 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -2105,6 +2310,11 @@ "escape-string-regexp": "^1.0.5" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -2167,6 +2377,11 @@ "map-cache": "^0.2.2" } }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -2185,9 +2400,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2197,6 +2412,21 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -2222,9 +2452,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2245,6 +2475,11 @@ "assert-plus": "^1.0.0" } }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -2266,9 +2501,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2308,6 +2543,11 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -2419,9 +2659,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2471,8 +2711,12 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "interpret": { "version": "1.4.0", @@ -2487,12 +2731,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2517,32 +2772,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2553,19 +2827,18 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "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==", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } }, "is-generator-fn": { "version": "2.1.0", @@ -2607,9 +2880,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2635,10 +2908,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", @@ -2725,6 +2997,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2736,27 +3031,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -3083,6 +3400,14 @@ "natural-compare": "^1.4.0", "pretty-format": "^26.6.2", "semver": "^7.3.2" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } } }, "jest-util": { @@ -3154,9 +3479,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3201,10 +3526,23 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "jsesc": { + "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true @@ -3234,9 +3572,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3298,16 +3636,16 @@ } }, "libsodium": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.9.tgz", - "integrity": "sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A==" + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz", + "integrity": "sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ==" }, "libsodium-wrappers": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", - "integrity": "sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==", + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", + "integrity": "sha512-PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg==", "requires": { - "libsodium": "^0.7.0" + "libsodium": "0.7.8" } }, "lines-and-columns": { @@ -3317,9 +3655,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3337,12 +3675,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3352,8 +3733,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3368,8 +3748,7 @@ "lodash": { "version": "4.17.20", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, "lodash.camelcase": { "version": "4.3.0", @@ -3377,6 +3756,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3410,6 +3795,12 @@ "wrap-ansi": "^6.2.0" }, "dependencies": { + "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==", + "dev": true + }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -3420,28 +3811,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -3506,18 +3878,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3526,6 +3898,11 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -3538,8 +3915,7 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mixin-deep": { "version": "1.3.2", @@ -3549,13 +3925,32 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, "ms": { "version": "2.1.2", @@ -3569,6 +3964,11 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -3588,6 +3988,11 @@ "to-regex": "^3.0.1" } }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3606,6 +4011,25 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node-abi": { + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", + "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", + "requires": { + "semver": "^5.4.1" + } + }, + "node-hid": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-1.3.0.tgz", + "integrity": "sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g==", + "requires": { + "bindings": "^1.5.0", + "nan": "^2.14.0", + "node-abi": "^2.18.0", + "prebuild-install": "^5.3.4" + } + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -3619,9 +4043,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3631,8 +4055,29 @@ "shellwords": "^0.1.1", "uuid": "^8.3.0", "which": "^2.0.2" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "optional": true + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true, + "optional": true + } } }, + "noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" + }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -3643,14 +4088,6 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } } }, "normalize-path": { @@ -3660,14 +4097,38 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -3680,6 +4141,11 @@ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -3700,43 +4166,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3770,7 +4199,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -3853,9 +4281,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3936,6 +4364,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -3951,6 +4385,28 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, + "prebuild-install": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", + "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.7.0", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0", + "which-pm-runs": "^1.0.0" + } + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -3958,9 +4414,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -3972,19 +4428,32 @@ "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + } } }, + "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==" + }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -4007,7 +4476,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -4025,6 +4493,17 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, "react-is": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", @@ -4068,14 +4547,20 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" } }, "rechoir": { @@ -4116,48 +4601,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4186,24 +4637,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4224,18 +4657,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4313,12 +4734,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4338,6 +4768,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4361,6 +4803,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4371,14 +4819,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4393,20 +4833,12 @@ "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } } }, "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==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", @@ -4479,34 +4911,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4530,25 +4934,10 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -4565,12 +4954,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4601,42 +4984,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4646,15 +4993,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4668,12 +5006,9 @@ } }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "requires": { - "lru-cache": "^6.0.0" - } + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "semver-compare": { "version": "1.0.0", @@ -4684,8 +5019,7 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-value": { "version": "2.0.1", @@ -4707,12 +5041,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4752,8 +5080,22 @@ "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } }, "sisteransi": { "version": "1.0.5", @@ -4776,6 +5118,14 @@ "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "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==", + "dev": true + } } }, "snapdragon": { @@ -4821,69 +5171,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4895,19 +5182,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -4930,6 +5204,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -4960,13 +5263,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -4980,9 +5286,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -5012,9 +5318,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5090,63 +5396,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5170,17 +5419,41 @@ "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "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" } }, "stringify-object": { @@ -5195,12 +5468,11 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -5221,6 +5493,11 @@ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5245,6 +5522,41 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "tar-stream": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", + "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -5332,12 +5644,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5352,9 +5663,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5363,21 +5674,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5385,10 +5715,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tslint": { "version": "6.1.3", @@ -5458,21 +5787,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5481,12 +5795,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5503,34 +5811,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5542,21 +5848,12 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -5583,9 +5880,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5598,9 +5895,9 @@ } }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "union-value": { @@ -5613,14 +5910,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5666,19 +5955,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -5690,12 +5973,34 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, + "usb": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/usb/-/usb-1.6.3.tgz", + "integrity": "sha512-23KYMjaWydACd8wgGKMQ4MNwFspAT6Xeim4/9Onqe5Rz/nMb4TM/WHL+qPT0KNFxzNKzAs63n1xQWGEtgaQ2uw==", + "requires": { + "bindings": "^1.4.0", + "nan": "2.13.2", + "prebuild-install": "^5.3.3" + }, + "dependencies": { + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" + } + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "utile": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz", @@ -5710,15 +6015,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5731,16 +6027,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -5851,10 +6146,23 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -5862,6 +6170,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -5876,6 +6185,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -5886,21 +6201,54 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "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==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", @@ -5915,9 +6263,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -5933,15 +6281,10 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true }, "yaml": { "version": "1.10.0", @@ -5968,23 +6311,49 @@ "yargs-parser": "^18.1.2" }, "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "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==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "ansi-regex": "^5.0.0" } } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-ledger-signer/package.json b/packages/taquito-ledger-signer/package.json index aaea8201a9..23f5382f4a 100644 --- a/packages/taquito-ledger-signer/package.json +++ b/packages/taquito-ledger-signer/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/ledger-signer", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "Ledger signer provider", "keywords": [ "tezos", @@ -26,9 +26,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -57,24 +56,25 @@ ] }, "dependencies": { - "@ledgerhq/hw-transport": "^5.41.0", - "@taquito/taquito": "^9.0.0", - "@taquito/utils": "^9.0.0", - "@types/jest": "^26.0.16", + "@ledgerhq/hw-transport": "^5.25.0", + "@ledgerhq/hw-transport-node-hid": "^5.25.0", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", + "@types/jest": "^26.0.14", "buffer": "^5.6.0", "libsodium-wrappers": "^0.7.8" }, "devDependencies": { - "@types/jest": "^26.0.16", + "@types/jest": "^26.0.14", "@types/ledgerhq__hw-transport-node-hid": "^4.22.2", "@types/libsodium-wrappers": "^0.7.8", - "@types/node": "^14.14.10", - "@types/ws": "^7.4.0", + "@types/node": "^14.11.5", + "@types/ws": "^7.2.7", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -86,12 +86,12 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.2", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-ledger-signer/signature.json b/packages/taquito-ledger-signer/signature.json index 65ff7f8d38..16fed16229 100644 --- a/packages/taquito-ledger-signer/signature.json +++ b/packages/taquito-ledger-signer/signature.json @@ -6,15 +6,15 @@ "files": [ { "path": "dist/taquito-ledger-signer.es5.js", - "sha512": "f61454fb9e5885d98469c79c0ad023d9b277058cce9a5890527f0eec513e2fcd6c905ec317ddd3e1a763070f65f956d2d25393afae3516a10f1272871ce7347d" + "sha512": "73d9e17390c35f138e76f766de178eedf2aa088212c8b44aa9feba4a2bfa775e01276c96dcc8c425866ccac9dd9da7eb68c4698a5582442859ad7e26e39b5e9c" }, { "path": "dist/lib/taquito-ledger-signer.js", - "sha512": "7b78244062ba32732c26d58a24d2750f1167608f667f827a4f2309012760673afc579c9e615a1177d2fc61849e8fa16d65c46f2b4e64f5e6adec18f0bb1f50c8" + "sha512": "e9b6f3d93d0f018ac36225a17bccedbc01e1850725881c4469b6775c48ba3705c98b7280f1aa6cfd35f1389a1ceabf509d159140d813250caba70c511791af67" }, { "path": "dist/taquito-ledger-signer.umd.js", - "sha512": "e0f9e3e0424eaff78b9087440dc0f1963bd6bbe8fd3313773b0b9cf37dc5e344ee7ed3327e5193c2b22d6e2cfca3693210248505edc925f1a91ef3a75b91496c" + "sha512": "02392079be706ef29d0e14d2c3cd10de3097fcb3384bd422c71e1a0c378d66e3e20470695409d8c14000da0d36f6b39211b99eb73b7a4603436b541d306737fb" }, { "path": "dist/lib/utils.js", @@ -34,15 +34,15 @@ }, { "path": "dist/taquito-ledger-signer.es5.js.map", - "sha512": "4dcdbd4541ef2bdd79a12df530e5dbafb3cbe7da1d496f4873bd9f42dec75898c511eb68be05f6b04ae0fbb7cbe0b50b5b2456834d25e0c705855bcfef7cd325" + "sha512": "92e4b1fc247453a8d6c49a12ab846658434d313626c5449c5a6bad33caf3e5060e5c488d793a43ff0164df35e0ab32ae33e987892ec7c27fd5f04f690d134595" }, { "path": "dist/lib/taquito-ledger-signer.js.map", - "sha512": "c63458d6e9b211dbbf12ff5fa9a04382cff211c1ba778c4a88379510846c00c8a90671e4b8fcbbd10e35e9bfa8954edb91ed7b577748775165642c136fde3a8c" + "sha512": "4aa9efb9fd39cf6811ae8cf9596efb625e58ec91646a273e82b1ae540b513a57005b40966ce43fb967d1da27dee6d1821db64937e26a67b8c9f71fa822133b26" }, { "path": "dist/taquito-ledger-signer.umd.js.map", - "sha512": "d3299b1b2ebe2fbb6130f31d71b059290f4aed89164356c33cc3af86a5f658d63f7e7917042b196c6c9859c56e909ec91dc76e73847d007791a31782d27b3610" + "sha512": "604a0610000f418d83a465903f03f43e54d882ff8e930e4b679c374187ae6be03c69e498a5e42c663ec62c039dedc9f30b65e552c3e76b160770c9398f8059d5" }, { "path": "dist/lib/utils.js.map", @@ -58,7 +58,7 @@ }, { "path": "dist/types/taquito-ledger-signer.d.ts", - "sha512": "72cc61cd6ad1220a67bdde6a47678d28b6e820aaf706e70e59a0c2bebdadd236ff9f59181472554c963ae262b0ecba8cd8866bc9085a70bd97d444819f91fbeb" + "sha512": "f3bc88863e2edbd53f8e8834a65a76a5b57c36772ee69a413f7c86ce43530894bc9e2bcb5f9c50239d16f6a49c08aee57dd53360a599082fe1fc8bc8577ffc02" }, { "path": "test/taquito-ledger-signer.spec.ts", @@ -66,7 +66,7 @@ }, { "path": "src/taquito-ledger-signer.ts", - "sha512": "958d2f0b592370589ed82dc3e8301b7c278735734cc2789e1d4fa229cc7b6aa396737bb47084dfc90760d88892ec9805575b1eada4660a5862bbb495ab5ddfe4" + "sha512": "47fcfc8b5b817a68f657fbfd9ffa88cd8bbc39be0350e572acd39d3149dc970c7e19bb23157a320cd4c6aa8306699a1dd1846095f884aeffb055fe5898d5f74a" }, { "path": "src/types.d.ts", @@ -114,7 +114,7 @@ "typings", "version" ], - "sha512": "61227065b86f4d8ed1ed92a7cbf9ed6672dc1b9b56be550a3dc77884866a0d98ca0c78d7b62abcb1844ff7dfd474b45c664acef904a9047776ec1b9a1c906cd6" + "sha512": "a21ba5a2dcaca52bf5296489bc2170bbe9de0a371c1b4167f09b1874e7c5a5b90294bf2cb0fe8bc7ec4a9cab90ac05c7ba87913fa51d3cab891674d541990ebe" } }, { @@ -122,7 +122,7 @@ "value": { "packageJson": { "name": "@taquito/ledger-signer", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "Ledger signer provider", "keywords": [ "tezos", @@ -178,24 +178,25 @@ ] }, "dependencies": { - "@ledgerhq/hw-transport": "^5.41.0", - "@taquito/taquito": "^8.0.4-beta.0", - "@taquito/utils": "^8.0.4-beta.0", - "@types/jest": "^26.0.16", + "@ledgerhq/hw-transport": "^5.25.0", + "@ledgerhq/hw-transport-node-hid": "^5.25.0", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", + "@types/jest": "^26.0.14", "buffer": "^5.6.0", "libsodium-wrappers": "^0.7.8" }, "devDependencies": { - "@types/jest": "^26.0.16", + "@types/jest": "^26.0.14", "@types/ledgerhq__hw-transport-node-hid": "^4.22.2", "@types/libsodium-wrappers": "^0.7.8", - "@types/node": "^14.14.10", - "@types/ws": "^7.4.0", + "@types/node": "^14.11.5", + "@types/ws": "^7.2.7", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -207,17 +208,17 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.2", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UACRAD9Qy5GYHsngAA9XQQABq2uIAryqyJ3/NpS5p2bMlN\n1+/gSgyc9E3f/wqnIesf5Xuk8Ir/q7ZTzGdWb7xZydnf1Bu2KjwEBiv9VXUq8VYB\n8F67sxOpC82c/ANgILizzgQtnZicdE3no4M4QaiwHIeWaimhtI9w4gG0ZYBEooWF\nClZ+KFZ6Ww6axrCHeU6MamneEFDuuZVFqCHfZxfNHWLJLQuej3SjdmfPJigtvJ+U\n3M5Py8WUhE87HxfqM1eDyqll68o3a7o2vzIFb6/NiRzT+0IAiuYedhZRzoDOWwrS\nCawp9aiY/wvNwMjRarT/2diRLvYAymYBWV+NBqH3DZWNQ6vDSk2uzuV4Vo9w/Xu8\nEpSRFhTiGQJPh+OJfpRrrdGmQQVQmteiM0gZO+KiBfBiiK/7YLDXWjWGNsW21ZLX\nfQAwRE9UHeZjkCRFKTSVeA2pjtOPWK4kZe+TRiFq2WfjJNQF87b34M6nfkoH+tP4\nR33/GngnKFy7SLJDfHloYEtnjhUMSlUUrLO5qGwevYproSpYNEmUOHe0eWWBaPik\nBLBdmBv6lqxqFJlquuS7IteWHb+pEMfxsJF6IvP8qUh4brnIsyUhKqFH+s67EtBt\nkJaJMlH+zjgnI73ZkA30+jPqPSQm5vqmKvn9zzMnG/wMcA+FyYumizvuojZ81Apk\nTYoyMd2/Y5ujLM1K3qef\n=pZdQ\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSnCRAD9Qy5GYHsngAAobcQAGW4k+IySRJL43+VMi8e+6fo\nI18zxdYn97xDtTC/2xpfRq7yjI5vP3WcKmamdnO9koEzcOsoNTZS5wiA9kuNmn7F\nw7TE8AFWyGPkxVoITmOqsd2eF64jkDnl0FGM7e61ftHHWCjpEi8IzGj3ri37a0kF\n82SPZVzPK5fwOLFVlu5o6MjTJd6gEMfCQz7Dk2tB3zxmpMK+1oux1LGFyK3vVZp/\n8EMCQ8tThuX9cJCr41bNoG1VG5A2owIkCw4bxjzvnPTwDOm9FuQUAdWJZwWT2LnO\naFTCRTijUmggs7EVSmK78qBJnTEQIuRtsIL+mMEP7gzebV0DkUR383CA1YdVVZn1\nxmodj9cwIX9OVSJgesTGnmoTq1qzHFqI0g5Xc6ayQGBpyrcwzeIr2eVVHWPCbfAB\nuReJGlAgBtBbF0VRrIvuH47Ht3hKoqH/wwCJ2mIjVZFSCs9VEjgOWkpLIuXyIvB4\nabtIFfivZ2Pg0irz8GRUFMOl0Nkn7Gg24EG4CZInQYB7+xRJwFMDkLCg22ZAZ3fw\nl6kMfa3j/CVYMoQs6Q+eolzkBJqtRSHADot+NudKs5nmeRE+q+ZX1kZ4hBc+o/YZ\n/KjA56+N5D9Q5Zf3zzoFp3g7sHQ8pcn+tW10pGuwUFJnShDJU1ZNspBdaz3+4n6+\nHhU+hj0Pnmvy9EAN1o0N\n=dbBW\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-ledger-signer/src/taquito-ledger-signer.ts b/packages/taquito-ledger-signer/src/taquito-ledger-signer.ts index 5fe9d8163e..8ab22741a7 100644 --- a/packages/taquito-ledger-signer/src/taquito-ledger-signer.ts +++ b/packages/taquito-ledger-signer/src/taquito-ledger-signer.ts @@ -1,18 +1,13 @@ -/** - * @packageDocumentation - * @module @taquito/ledger-signer - */ - import { Signer } from '@taquito/taquito'; import Transport from '@ledgerhq/hw-transport'; import { b58cencode, prefix, Prefix } from '@taquito/utils'; -import { - appendWatermark, - transformPathToBuffer, - compressPublicKey, - chunkOperation, - validateResponse, - extractValue +import { + appendWatermark, + transformPathToBuffer, + compressPublicKey, + chunkOperation, + validateResponse, + extractValue } from './utils'; import sodium from 'libsodium-wrappers'; @@ -28,8 +23,6 @@ export const HDPathTemplate = (account: number) => { return `44'/1729'/${account}'/0'`; }; -export { VERSION } from './version'; - /** * * @description Implementation of the Signer interface that will allow signing operation from a Ledger Nano device @@ -63,58 +56,67 @@ export class LedgerSigner implements Signer { private readonly FIRST_MESSAGE_SEQUENCE = 0X00; private readonly LAST_MESSAGE_SEQUENCE = 0X81; private readonly OTHER_MESSAGE_SEQUENCE = 0X01; - + private _publicKey?: string; private _publicKeyHash?: string; - constructor( - private transport: LedgerTransport, - private path: string = "44'/1729'/0'/0'", - private prompt: boolean = true, - private derivationType: DerivationType = DerivationType.ED25519 - ) { - this.transport.setScrambleKey('XTZ') - if (!path.startsWith("44'/1729'")) { - throw new Error("The derivation path must start with 44'/1729'"); - } - if (!Object.values(DerivationType).includes(derivationType)) { - throw new Error("The derivation type must be DerivationType.ED25519, DerivationType.SECP256K1 or DerivationType.P256") - } - } - - async publicKeyHash(): Promise<string> { - if (!this._publicKeyHash) { - await this.publicKey(); - } - if (this._publicKeyHash) { - return this._publicKeyHash; - } - throw new Error(`Unable to get the public key hash.`) - } + constructor( + private transport: LedgerTransport, + private path: string = "44'/1729'/0'/0'", + private prompt: boolean = true, + private derivationType: DerivationType = DerivationType.ED25519 + ) { + this.transport.setScrambleKey('XTZ') + if(!path.startsWith("44'/1729'")) { + throw new Error("The derivation path must start with 44'/1729'"); + } + if(!Object.values(DerivationType).includes(derivationType)) { + throw new Error("The derivation type must be DerivationType.ED25519, DerivationType.SECP256K1 or DerivationType.P256") + } + } - async publicKey(): Promise<string> { - if (this._publicKey) { - return this._publicKey; + async publicKeyHash(): Promise<string> { + if (!this._publicKeyHash) { + await this.publicKey(); + } + if (this._publicKeyHash) { + return this._publicKeyHash; + } + throw new Error(`Unable to get the public key hash.`) + } + + async publicKey(): Promise<string> { + if (this._publicKey) { + return this._publicKey; + } + const responseLedger = await this.getLedgerpublicKey(); + const publicKeyLength = responseLedger[0]; + const rawPublicKey = responseLedger.slice(1, 1 + publicKeyLength); + const compressedPublicKey = compressPublicKey(rawPublicKey, this.derivationType); + + let prefPk = prefix[Prefix.EDPK]; + let prefPkh = prefix[Prefix.TZ1] + if (this.derivationType === DerivationType.SECP256K1){ + prefPk = prefix[Prefix.SPPK]; + prefPkh = prefix[Prefix.TZ2] + } + else if (this.derivationType === DerivationType.P256){ + prefPk = prefix[Prefix.P2PK]; + prefPkh = prefix[Prefix.TZ3] + } + const publicKey = b58cencode(compressedPublicKey, prefPk); + await sodium.ready; + const publicKeyHash = b58cencode(sodium.crypto_generichash(20, compressedPublicKey), prefPkh); + + this._publicKey = publicKey; + this._publicKeyHash = publicKeyHash; + return publicKey; } - const responseLedger = await this.getLedgerpublicKey(); - const publicKeyLength = responseLedger[0]; - const rawPublicKey = responseLedger.slice(1, 1 + publicKeyLength); - const compressedPublicKey = compressPublicKey(rawPublicKey, this.derivationType); - - const prefixes = this.getPrefixes(); - const publicKey = b58cencode(compressedPublicKey, prefixes.prefPk); - await sodium.ready; - const publicKeyHash = b58cencode(sodium.crypto_generichash(20, compressedPublicKey), prefixes.prefPkh); - this._publicKey = publicKey; - this._publicKeyHash = publicKeyHash; - return publicKey; - } - - private async getLedgerpublicKey(): Promise<Buffer> { - try { - let ins = this.INS_PROMPT_PUBLIC_KEY; - if (this.prompt === false) { - ins = this.INS_GET_PUBLIC_KEY; + private async getLedgerpublicKey(): Promise<Buffer> { + try{ + let ins = this.INS_PROMPT_PUBLIC_KEY; + if (this.prompt === false){ + ins = this.INS_GET_PUBLIC_KEY; } const responseLedger = await this.transport.send(this.CLA, ins, this.FIRST_MESSAGE_SEQUENCE, this.derivationType, transformPathToBuffer(this.path)); return responseLedger; @@ -122,72 +124,49 @@ export class LedgerSigner implements Signer { catch (error) { throw new Error("Unable to retrieve public key") } - } - - async secretKey(): Promise<string> { - throw new Error('Secret key cannot be exposed'); - } - - async sign(bytes: string, watermark?: Uint8Array) { - const watermarkedBytes = appendWatermark(bytes, watermark); - const watermarkedBytes2buff = Buffer.from(watermarkedBytes, "hex"); - let messageToSend = []; - messageToSend.push(transformPathToBuffer(this.path)); - messageToSend = chunkOperation(messageToSend, watermarkedBytes2buff) - let ledgerResponse = await this.signWithLedger(messageToSend); - let signature; - if (this.derivationType === DerivationType.ED25519) { - signature = ledgerResponse.slice(0, ledgerResponse.length - 2).toString('hex'); - } else { - if (!validateResponse(ledgerResponse)) { - throw new Error('Cannot parse ledger response.'); - } - const idxLengthRVal = 3; // Third element of response is length of r value - const rValue = extractValue(idxLengthRVal, ledgerResponse) - let idxLengthSVal = rValue.idxValueStart + rValue.length + 1; - const sValue = extractValue(idxLengthSVal, ledgerResponse); - const signatureBuffer = Buffer.concat([rValue.buffer, sValue.buffer]) - signature = signatureBuffer.toString('hex'); + } + + async secretKey(): Promise<string> { + throw new Error('Secret key cannot be exposed'); } - return { - bytes, - sig: b58cencode(signature, prefix[Prefix.SIG]), - prefixSig: b58cencode(signature, this.getPrefixes().prefSig), - sbytes: bytes + signature - }; - } - - private async signWithLedger(message: any): Promise<Buffer> { - // first element of the message represents the path - let ledgerResponse = await this.transport.send(this.CLA, this.INS_SIGN, this.FIRST_MESSAGE_SEQUENCE, this.derivationType, message[0]); - for (let i = 1; i < message.length; i++) { - let p1 = (i === message.length - 1) ? this.LAST_MESSAGE_SEQUENCE : this.OTHER_MESSAGE_SEQUENCE; - ledgerResponse = await this.transport.send(this.CLA, this.INS_SIGN, p1, this.derivationType, message[i]); + async sign(bytes: string, watermark?: Uint8Array) { + const watermarkedBytes = appendWatermark(bytes, watermark); + const watermarkedBytes2buff = Buffer.from(watermarkedBytes, "hex"); + let messageToSend = []; + messageToSend.push(transformPathToBuffer(this.path)); + messageToSend = chunkOperation(messageToSend, watermarkedBytes2buff) + let ledgerResponse = await this.signWithLedger(messageToSend); + let signature; + if (this.derivationType === DerivationType.ED25519) { + signature = ledgerResponse.slice(0, ledgerResponse.length - 2).toString('hex'); + } else { + if(!validateResponse(ledgerResponse)) { + throw new Error('Cannot parse ledger response.'); + } + const idxLengthRVal = 3; // Third element of response is length of r value + const rValue = extractValue(idxLengthRVal, ledgerResponse) + let idxLengthSVal = rValue.idxValueStart + rValue.length + 1; + const sValue = extractValue(idxLengthSVal, ledgerResponse); + const signatureBuffer = Buffer.concat([rValue.buffer, sValue.buffer]) + signature = signatureBuffer.toString('hex'); + } + + return { + bytes, + sig: b58cencode(signature, prefix[Prefix.SIG]), + prefixSig: b58cencode(signature, prefix[Prefix.SIG]), + sbytes: bytes + signature + }; } - return ledgerResponse; - } - private getPrefixes() { - if (this.derivationType === DerivationType.ED25519) { - return { - prefPk: prefix[Prefix.EDPK], - prefPkh: prefix[Prefix.TZ1], - prefSig: prefix[Prefix.EDSIG] - } - } else if (this.derivationType === DerivationType.SECP256K1) { - return { - prefPk: prefix[Prefix.SPPK], - prefPkh: prefix[Prefix.TZ2], - prefSig: prefix[Prefix.SPSIG] - } - } else { - return { - prefPk: prefix[Prefix.P2PK], - prefPkh: prefix[Prefix.TZ3], - prefSig: prefix[Prefix.P2SIG] + private async signWithLedger(message: any): Promise<Buffer> { + // first element of the message represents the path + let ledgerResponse = await this.transport.send(this.CLA, this.INS_SIGN, this.FIRST_MESSAGE_SEQUENCE, this.derivationType, message[0]); + for (let i = 1; i < message.length; i++) { + let p1 = (i === message.length - 1) ? this.LAST_MESSAGE_SEQUENCE : this.OTHER_MESSAGE_SEQUENCE; + ledgerResponse = await this.transport.send(this.CLA, this.INS_SIGN, p1, this.derivationType, message[i]); } + return ledgerResponse; } - - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/packages/taquito-ledger-signer/src/version.ts b/packages/taquito-ledger-signer/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-ledger-signer/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-ledger-signer/test/taquito-ledger-signer.spec.ts b/packages/taquito-ledger-signer/test/taquito-ledger-signer.spec.ts index 596c588ad7..6950501d57 100644 --- a/packages/taquito-ledger-signer/test/taquito-ledger-signer.spec.ts +++ b/packages/taquito-ledger-signer/test/taquito-ledger-signer.spec.ts @@ -110,7 +110,7 @@ it('Should get public key and public key hash for default path and tz1 curve', a bytes: '367325bbba406bc3f8c1bf12b27b6e8081064722d3342e34142c172b322ba0426b00c9fc72e8491bd2973e196f04ec6918ad5bcee22d8c0bbcb98d01e85200006760ff228c2c16cbca18bb782a106e51c43a131776f5dfad30ecb5d5e43eccbd6c00c9fc72e8491bd2973e196f04ec6918ad5bcee22dea0abdb98d01c35000a0c21e0000eadc0855adb415fa69a76fc10397dc2fb37039a000', prefixSig: - 'edsigteqgHGYbzsxxFmQjGSf9eeNjTML4g6GBqryKvy7uy6y2XczT6C3ehhfzCBgQBdAMy9NLoD6MZVzCUbtSUoSC1iWAgPXGdW', + 'sigV2DADKhiwmvCaRS8QoxhM6DgXF8hTPbUBDbCd7vxkx5Do3rbJ8ZceS59b4c69z1XbtishJzit2RjorEpf6DpfS4paStBK', sbytes: '367325bbba406bc3f8c1bf12b27b6e8081064722d3342e34142c172b322ba0426b00c9fc72e8491bd2973e196f04ec6918ad5bcee22d8c0bbcb98d01e85200006760ff228c2c16cbca18bb782a106e51c43a131776f5dfad30ecb5d5e43eccbd6c00c9fc72e8491bd2973e196f04ec6918ad5bcee22dea0abdb98d01c35000a0c21e0000eadc0855adb415fa69a76fc10397dc2fb37039a00035c1f3340121965a1350af2082af3c83d4338c23c254591ec7a12fef5d4e9fc2a63f7051508cc41255894fe511cfd11af827e8f8e6c3730c3dd0775aff33dc02', sig: @@ -131,7 +131,7 @@ it('Should get public key and public key hash for default path and tz1 curve', a bytes: '0372a589146bff99c31469fde4a7ac539e0ea5d926cbea4b72f2ae048fefacdaa16c01cc70a574e52e16028ce0fead32e8b2d8cc1440aca40e9bba8d01ed760000016ca589ff04efc7f657ded2a796631183b3d3709a00ffff09696e6372656d656e74000000020007', prefixSig: - 'spsig19TzJiKZN8xDGw2qBGyR5FLMAgPamCEpYBXiq7JNzN9WaSkdZbhjWuFK7f1tg4c1h8AHdyrktPYa2UFn1a6YsaLKSRMwiC', + 'sigReJyeiJtnz4tm35D8RGRLeyFrc1h8c84cQQ4K95BUDo9P6pP2dMZmmTRHSocfY9cQR8u218TFPqwBYfVhR3xMoCzr7hYu', sbytes: '0372a589146bff99c31469fde4a7ac539e0ea5d926cbea4b72f2ae048fefacdaa16c01cc70a574e52e16028ce0fead32e8b2d8cc1440aca40e9bba8d01ed760000016ca589ff04efc7f657ded2a796631183b3d3709a00ffff09696e6372656d656e740000000200071bf0d530c35c70dacddfc14c2073e6666df839dca23ff18f0b2a375493fe06a436992c38fd5c3e88d6381208744c859dab96de0d8d221ead65b08b553680eee5', sig: @@ -152,7 +152,7 @@ it('Should get public key and public key hash for default path and tz1 curve', a bytes: '038e1824a75961255a36e47d354733d6923c5849579d6abb4bd8c2a929ab5d393a6b02bd2cbb50fb2bfd7237b474a25b1b4ae447c577208c0babbc8d01e8520002022937a7444d7a00cb29f353058444d26d19382f0079e34b5aaf0eda4cec6665f16d02bd2cbb50fb2bfd7237b474a25b1b4ae447c577209310acbc8d01bb78c2030000000000b702000000b205000764045b0000000a2564656372656d656e74045b0000000a25696e6372656d656e740501035b0502020000008303210317057000010321057100020316072e020000002b032105700002032105710003034203210317057000010321057100020316034b051f020000000405200002020000002b0321057000020321057100030342032103170570000103210571000203160312051f020000000405200002053d036d0342051f020000000405200002000000020000', prefixSig: - 'p2sigN4XTiSicEot77bsR9BvpnDtSm4KDm2YyRew4isqiqxhN6fJpQeYFu8acN8NSDJCxPrqgpqyML3M7ubfBicRfqNz7oGhnX', + 'sigNkJcdMAWmsqeBM7ARbQ3Gm74NQ5xfc8kyt5gKRQRdWQpZPXW2bT2cxAKBBrCn6ddmqKfkc31q62kWujT8AEEZgeAquYy5', sbytes: '038e1824a75961255a36e47d354733d6923c5849579d6abb4bd8c2a929ab5d393a6b02bd2cbb50fb2bfd7237b474a25b1b4ae447c577208c0babbc8d01e8520002022937a7444d7a00cb29f353058444d26d19382f0079e34b5aaf0eda4cec6665f16d02bd2cbb50fb2bfd7237b474a25b1b4ae447c577209310acbc8d01bb78c2030000000000b702000000b205000764045b0000000a2564656372656d656e74045b0000000a25696e6372656d656e740501035b0502020000008303210317057000010321057100020316072e020000002b032105700002032105710003034203210317057000010321057100020316034b051f020000000405200002020000002b0321057000020321057100030342032103170570000103210571000203160312051f020000000405200002053d036d0342051f02000000040520000200000002000005ccc37c4c434b39054a68d15f9f4d4d279699dd3a406cb235e0b3bf62a6ec174f72794ad3f06dd3ebb21b36b63eb44b98f5607e8751513741d73660b7952c39', sig: diff --git a/packages/taquito-local-forging/package-lock.json b/packages/taquito-local-forging/package-lock.json index f968057067..f5ef0fc9a1 100644 --- a/packages/taquito-local-forging/package-lock.json +++ b/packages/taquito-local-forging/package-lock.json @@ -1,37 +1,38 @@ { "name": "@taquito/local-forging", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -64,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -244,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -268,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -349,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -632,12 +633,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -685,9 +694,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -733,9 +742,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -743,9 +752,9 @@ } }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", "dev": true }, "@types/normalize-package-data": { @@ -761,9 +770,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -773,18 +782,18 @@ "dev": true }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, "abab": { @@ -850,6 +859,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1021,9 +1038,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1079,6 +1096,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1243,63 +1289,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1337,19 +1326,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1405,9 +1381,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1435,6 +1411,14 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==", + "dev": true + } } }, "copy-descriptor": { @@ -1475,16 +1459,10 @@ "request": "^2.88.2" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1551,9 +1529,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1609,6 +1587,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1650,6 +1659,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1719,12 +1734,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1757,9 +1766,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1775,20 +1784,63 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "exit": { @@ -1839,69 +1891,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1938,6 +1927,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -1974,24 +1974,47 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, "fast-deep-equal": { @@ -2110,9 +2133,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2147,9 +2170,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2191,9 +2214,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2204,9 +2227,9 @@ "optional": true }, "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", "dev": true, "requires": { "minimist": "^1.2.5", @@ -2299,6 +2322,12 @@ } } }, + "highlight.js": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.0.tgz", + "integrity": "sha512-EfrUGcQ63oLJbj0J0RI9ebX6TAITbsDBLbsjr881L/X5fMO9+oadKzEF21C7R3ULKG6Gv3uoab2HiqVJa/4+oA==", + "dev": true + }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", @@ -2353,9 +2382,9 @@ } }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2421,12 +2450,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2451,32 +2491,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2487,13 +2546,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2541,9 +2597,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2569,9 +2625,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2659,6 +2715,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2670,27 +2749,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -3021,28 +3122,10 @@ "semver": "^7.3.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } @@ -3116,9 +3199,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3163,6 +3246,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -3196,9 +3292,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3266,9 +3362,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3286,12 +3382,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3301,8 +3440,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3326,6 +3464,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3369,29 +3513,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "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" - } - }, "lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -3446,9 +3570,9 @@ } }, "marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.4.tgz", + "integrity": "sha512-6x5TFGCTKSQBLTZtOburGxCxFEBJEGYVLwCMTBCxzvyuisGcC20UNzDSJhCr/cJ/Kmh6ulfJm10g6WWEAJ3kvg==", "dev": true }, "merge-stream": { @@ -3468,18 +3592,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3511,13 +3635,27 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "ms": { "version": "2.1.2", @@ -3587,9 +3725,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3601,30 +3739,17 @@ "which": "^2.0.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", "dev": true, "optional": true } @@ -3649,12 +3774,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -3689,43 +3822,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3773,15 +3869,6 @@ "mimic-fn": "^2.1.0" } }, - "onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } - }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -3851,9 +3938,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3934,6 +4021,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -3956,9 +4049,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -3980,16 +4073,17 @@ "dev": true }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -4074,14 +4168,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "rechoir": { @@ -4122,48 +4208,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4192,24 +4244,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4230,18 +4264,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4319,12 +4341,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4344,6 +4375,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4367,6 +4410,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4377,14 +4426,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4400,20 +4441,12 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "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==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-regex": { @@ -4487,34 +4520,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4538,21 +4543,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4573,12 +4563,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4609,36 +4593,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4648,15 +4602,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4707,12 +4652,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4749,16 +4688,6 @@ "dev": true, "optional": true }, - "shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", - "dev": true, - "requires": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" - } - }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -4831,69 +4760,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4905,19 +4771,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -4940,6 +4793,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -4970,13 +4852,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -4990,9 +4875,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -5022,9 +4907,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5100,63 +4985,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5343,12 +5171,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5363,9 +5190,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5374,47 +5201,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5422,9 +5242,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -5495,15 +5315,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5512,12 +5323,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5534,34 +5339,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5573,14 +5376,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5614,9 +5409,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5629,34 +5424,34 @@ } }, "typedoc": { - "version": "0.20.32", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.32.tgz", - "integrity": "sha512-GSopd/tiqoKE3fEdvhoaEpR9yrEPsR9tknAjkoeSPL6p1Rq5aVsKxBhhF6cwoDJ7oWjpvnm8vs0rQN0BxEHuWQ==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.19.2.tgz", + "integrity": "sha512-oDEg1BLEzi1qvgdQXc658EYgJ5qJLVSeZ0hQ57Eq4JXy6Vj2VX4RVo18qYxRWz75ifAaYuYNBUCnbhjd37TfOg==", "dev": true, "requires": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", + "fs-extra": "^9.0.1", + "handlebars": "^4.7.6", + "highlight.js": "^10.2.0", + "lodash": "^4.17.20", "lunr": "^2.3.9", - "marked": "^2.0.1", + "marked": "^1.1.1", "minimatch": "^3.0.0", "progress": "^2.0.3", + "semver": "^7.3.2", "shelljs": "^0.8.4", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.9" + "typedoc-default-themes": "^0.11.4" }, "dependencies": { "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "universalify": "^1.0.0" } }, "jsonfile": { @@ -5667,38 +5462,46 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } }, "typedoc-default-themes": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.9.tgz", - "integrity": "sha512-Jd5fYTiqzinZdoIY382W7tQXTwAzWRdg8KbHfaxmb78m1/3jL9riXtk23oBOKwhi8GFVykCOdPzEJKY87/D0LQ==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.11.4.tgz", + "integrity": "sha512-Y4Lf+qIb9NTydrexlazAM46SSLrmrQRqWiD52593g53SsmUFioAsMWt8m834J6qsp+7wHRjxCXSZeiiW5cMUdw==", "dev": true }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-EWhx3fHy3M9JbaeTnO+rEqzCe1wtyQClv6q3YWq0voOj4E+bMZBErVS1GAHPDiRGONYq34M1/d8KuQMgvi6Gjw==", + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.6.tgz", + "integrity": "sha512-oASI1FOJ7BBFkSCNDZ446EgkSuHkOZBuqRFrwXIKWCoXw8ZXQETooTQjkAcBS03Acab7ubCKsXnwuV2svy061g==", "dev": true, "optional": true }, @@ -5712,14 +5515,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5765,19 +5560,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -5809,15 +5598,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5830,16 +5610,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -5876,12 +5655,6 @@ "extsprintf": "^1.2.0" } }, - "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -5957,9 +5730,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -5967,6 +5740,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -5981,6 +5755,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -5997,9 +5777,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -6026,9 +5806,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -6044,15 +5824,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -6078,25 +5852,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-local-forging/package.json b/packages/taquito-local-forging/package.json index d93352b455..af27a77fbe 100644 --- a/packages/taquito-local-forging/package.json +++ b/packages/taquito-local-forging/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/local-forging", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "Provide local forging functionality to be with taquito", "keywords": [ "tezos", @@ -33,9 +33,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -67,18 +66,18 @@ ] }, "dependencies": { - "@taquito/utils": "^9.0.0", + "@taquito/utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1" }, "devDependencies": { - "@taquito/taquito": "^9.0.0", - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", + "@taquito/taquito": "^7.1.0-preview.1", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -90,13 +89,13 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.32", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-local-forging/signature.json b/packages/taquito-local-forging/signature.json index 3e534c06ed..f237737857 100644 --- a/packages/taquito-local-forging/signature.json +++ b/packages/taquito-local-forging/signature.json @@ -6,15 +6,15 @@ "files": [ { "path": "dist/lib/codec.js", - "sha512": "90a2afb1c93d47794fc9682a4ae9c8b4e9cae52919f5ac0ec23e1efb19e64c3b7aadaa7c1b84ab3cf1489630e60dd10e49c55f7517fb7426d23fb2e2c271f180" + "sha512": "9c17dffbcb011d42253528523847a746923cb0dcdde0092ded6f5690dfb0254bb248d9c16ca12e386a080a49c8c1d56dc238b56a39c0daa8b15bc8ce7b7b08b1" }, { "path": "dist/lib/michelson/codec.js", - "sha512": "546c79a29758d21373c92da0df1bf8e67cbd8e8a701426ce6c757d1d6febe37af1d2959385620afe18155edd132ad30eb8a9eb7376cb7e7a098dc807497f76c4" + "sha512": "19df4052400bf774e050d519dce61368fcc7a940df747b283e0f8e206e217f897f266cc7bcb82c322172546c41788bb2f07d34576a73628c305243743efce9de" }, { "path": "dist/lib/constants.js", - "sha512": "3557f46b383437a083db703e0e29c36296c6237eb43aba3d35d9a132bf372bbe1c8e62807a73fb266fbbd2c994bb90068071e38fc0be2f63a8e59f07a3c95dab" + "sha512": "7c07a5a5d002e4561e310054fc90ac05615f37a6796f3ed413f24d691162bbf5d365503c694edac0594d325dbba7cd7164b6db10a9be214646a4085924b7ed0a" }, { "path": "dist/lib/decoder.js", @@ -26,19 +26,19 @@ }, { "path": "dist/lib/schema/operation.js", - "sha512": "4c874b398d21a6749634fd547070b74b46f1413610c1d04966c96812acb0d0d7c0d69c7551924d7348c668b190cf8c1b745c4ec8c2651fc6216d5e19fbe323d8" + "sha512": "630a06020555130d1d77d81ae1e355600f51075d65752fa1ab741cada2c159fd057703f9887fa70ff367507571731b65bc6f06a55031e8dfeb691ff6d2ac0531" }, { "path": "dist/taquito-local-forging.es5.js", - "sha512": "4ca98a63f73870d9292b579734efa4901d9058c4ee53e887ac3b421dc167d6c242777651823a7b6a0ffb4772c0e9eda101a9b65fe13de567978539adf39d8ca3" + "sha512": "93d21506f507bcc6ecd595c2f5cbd5be97de385e8962e63a8fd19a88067d149452858b0205fa82cb131e44c00e79b05a5dbb409c7f77cee310a30d2c7eda47b5" }, { "path": "dist/lib/taquito-local-forging.js", - "sha512": "3c83096d11d493f7c27ee09035bbd7b3e9d9f409058f57f98d678e3bd724d5203f34674a1d4a6868329dad2801b083538f5f51922d754d918b4653e40b4ae180" + "sha512": "0cdb476e185d9c9be482f6a9740c14b89967ae3b1530ff8ce2f1b6dd42e516f84e82e7113aec6be9a83c6bac6c5b61ceb7e37b6646e76d527e7146424702f5c7" }, { "path": "dist/taquito-local-forging.umd.js", - "sha512": "710b9e20ec1e8f4052774babb79fe230d96bea3fc3c1844db1120c8debb4aa26ae036c5243bfb91f82f241e00af42f72a9c5e6be4de144ab07eff363dbb66d26" + "sha512": "f9c5365cd96bb6a7fa09cb3c8c1c42bd86fe23642c92a3962e1a27554abeb79c9b3f70aac778ade9d99eeef7ca5253b4252691802c07238650df79125498f751" }, { "path": "dist/lib/uint8array-consumer.js", @@ -46,19 +46,19 @@ }, { "path": "dist/lib/utils.js", - "sha512": "92eda230f95b8d0b907507dd02afc8edf99b5ca31c3d34f0b22e9fa5714050c3815a8d5af9256b70e5abd2d6aa7915a5e9521985044fe7cb1dd9bb594865725a" + "sha512": "9001fe385511441b3cbea73db60159422a98602c10e4a8f7204cdfba19e2709d3a18b01755d7fea292451e323653e7866d0cb8e6e2b6860cadf34b1ab82b4304" }, { "path": "dist/lib/codec.js.map", - "sha512": "d9f000de63fc3bd62328318db50ffdd5000f6839e9a2da3e09df03c0ebce52137918340cc724d2fe8a9a2c903b82df990d07203c15680d51c6b6e6f83005c2ab" + "sha512": "a2f83868bd36b073cd998d8431872aa321abbb5550fac65cf2bc51b8a309094c24539b8adb66c1d4bcd9c92faa9da8d51958adeee492aeae237c7cd2f718c736" }, { "path": "dist/lib/michelson/codec.js.map", - "sha512": "6d3094bddade0c75b3d9174d47b44fcb3e20c935a16826dd5147df4fe900cf178d07c00ed263f5e4e3845bf0b9ab66c99aa61601906a5f3dc4841aa622285506" + "sha512": "48c1c81120ffb634974cc1f398b0ad6909247943ed77f72f83745fe54abc7be11ff85d4ed141391ecdaea0db4de118be821ae55230d7016394214000373d912f" }, { "path": "dist/lib/constants.js.map", - "sha512": "8efa2d18251e60a85da4f62d173e79fe1d7ab70a586d5ddae8eb68fc2f5344bcb5086ac2a6b84ec8f10c538ebb139c49ccbc47ca64a01d507ad45bd2b564dd06" + "sha512": "9af33533459c79ba9cb053223ce76be6bf92f9237dc25c35e6068e1a453e84f0a178bb95c0d2d3ba73982411d4bfb9a915efa10fd3c3ffbd6cde1d88d7e0e85f" }, { "path": "dist/lib/decoder.js.map", @@ -70,19 +70,19 @@ }, { "path": "dist/lib/schema/operation.js.map", - "sha512": "0bb0ac22a7299a3d24ab6520d5548921fbd1e274bc30411422e17826943f96d61ab1d4de1829129f7fac097a9cc2c2d44bb79a62dced1a7838dd80af575c38dc" + "sha512": "eec1e0c4863980d2a10627fa0ab95533fcbaff365be324b01849ecb54aa27a149c6a837cac5a8af73d6bd9e5bfea10187605b4a3b5ade5f49695fd56b180254a" }, { "path": "dist/taquito-local-forging.es5.js.map", - "sha512": "02087319fb8242d616d3b774f85340b0643902d0495cc3aa3c073e9d78bedb12ac8466ad93bd48d241e13514daa2401a6110fb175110facb433dfea8be5d54e6" + "sha512": "17459ff7cb387f8c37efcace63cfc2c6a4f6ac93c36fc7d8b44d33e9e24a2a92dab7b27e85f2a4cc7039474a0c3ed5dbf80871b6c702addbbf608884fa752c75" }, { "path": "dist/lib/taquito-local-forging.js.map", - "sha512": "13ff8ee728c794af90a190244444871a05df2dabc0caef2ef2c3bd1aca022f5e5d69e7f049651abdb4eb12ca2378c9568ee3b26ed2acce9b0b74ccfe26b04065" + "sha512": "7437986cc4686d304e2c1ca4bd96fa3dc73a5c750ecdd7ff426789652f57cde6155faac4c908756237862bc8b40fcde86c9301c9414e60954d6973957ce7ea4b" }, { "path": "dist/taquito-local-forging.umd.js.map", - "sha512": "fae453af2e9dd23f07e48d11777c7f48f5603343b3c286bc954942b9123ee79f1debd803702bbe978b2e23b52c8ae9a95d8c544d31f80f0d162796ec9c9bda71" + "sha512": "f002b7812c1b6d023c51153f3941819f25f30d7d6f54723fc0364f0698a3c0d756020118a2a34770526d6cb1bd10ce6a1bd78b10742e83fb32057bf48582481c" }, { "path": "dist/lib/uint8array-consumer.js.map", @@ -90,7 +90,7 @@ }, { "path": "dist/lib/utils.js.map", - "sha512": "f744f0d6982cd2a05881b60b8a4b757defccd3c28ffd48b84f327ff2f5908f3af22c9d268601d612825c40f1829828bab88f3bef1a09a0daa7cf36e29382a1fa" + "sha512": "8a42cc5f0b8d3a759aaf932d81437971c432708d370041e4af96b2654e0b0ccf21d157a5fe94c79bb90a21fb35e36b9c81e2428d791fc855659290d2205f9e5f" }, { "path": "README.md", @@ -102,7 +102,7 @@ }, { "path": "dist/types/michelson/codec.d.ts", - "sha512": "31d7c6d0e4e2527d733cbc642263ecc4a2145ce6b74d11449b5337bd2ec110c09ccba5a96f958945e48eb0efc0d9b60a15bb1710c0e1304cda1bb6ea8c19a647" + "sha512": "5d95634ba9f34fc1697a2d9ae491bbbf0453f3af6afa9b921364b8219cd898b7946582f5d8989dc7f88c84b02a5c902082f97b5bc1a9beea77255ffa745741bc" }, { "path": "dist/types/constants.d.ts", @@ -122,7 +122,7 @@ }, { "path": "dist/types/taquito-local-forging.d.ts", - "sha512": "442fce692be5ff35d118895d90b6229b6d3d55c9a41c30082f29e9091df3dfccb09c2f139a5c780e1aaec05b735a69984ab8efd9817293bdba040e070cd3db9b" + "sha512": "e73b425fea1185aa9234c0d8144f05643bd6db68f22067b8dd8bf6e8306f99973513556558babd5d45bfea80c43355087224576c5a6a551584d8bb1badb1a242" }, { "path": "dist/types/uint8array-consumer.d.ts", @@ -167,7 +167,7 @@ "typings", "version" ], - "sha512": "baf2e0c2fccb40a62d12f578566b8b1fc42b8ef63f0d9071203478466f6836acb93c964bff355b26332f6cf2ae5ba79ed74470d83e007e470d61e5d9468c5e32" + "sha512": "5defdd1ca99b06481b4508f0bc895de059f8c19ec185a2ffb5c2b9ac0893612b5aaf6627a079a9537614ca8c1d23c3747accb26f983e3e052b92f8096d3e37e4" } }, { @@ -175,7 +175,7 @@ "value": { "packageJson": { "name": "@taquito/local-forging", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "Provide local forging functionality to be with taquito", "keywords": [ "tezos", @@ -241,18 +241,18 @@ ] }, "dependencies": { - "@taquito/utils": "^8.0.4-beta.0", + "@taquito/utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1" }, "devDependencies": { - "@taquito/taquito": "^8.0.4-beta.0", - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", + "@taquito/taquito": "^7.1.0-preview.1", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -264,18 +264,18 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.23", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UBCRAD9Qy5GYHsngAAS/0QAH3zzpx8V/ci1q/y6C8xu0ZI\nLhIS1zcVIENtEFaudp+Ej9M2URjjTyv/BhBxyEpOAX85A5VUImYg9xqUQo64QKUv\nqFKt/OWYXDsgTkl2drd3gvbM/Z1Oh4FcwajprmNNecIGM1VFHjORp6oQb/0spIDB\njqRtUhGMQUuqqs55ZwD+9pego1yRoOBUvxbzVujF3HcEQRXfaa1r4aDA/DdJEqG7\nyCv4y8msXa+/k1ThUdA751FGC+v5kLoLu0bhFypddDZYk3hWsuyqkotzua/fcw3G\n1xnqECqUfOvyCBtSLUCvRtudkaTzkrsA/DdQVeN0gR7d8W5iWRiQXJvUqZPkcMWD\nK/G8rWH84igOzqaMZiOUIc1o855ox3vI2968VCz441pBoP9Ge86N4WNLMH6GkqqJ\n7bivP3HA5vFAPl2IR14QdJM0xSTs5zmIyA6m3IjnxTuHrlbD5yjPuZ6KD5vp/hT0\n4INNsL62N8c+isXyyhYselrGQAsr8CtEQUKRhqW5BRL6CXQqJeKlGjc9Q20WYf94\n9R+zNJAi3QousmMoQQw6iWL5luY7SO5blxHOr+sjMvh3tWJtZF6amEA4eLB0Pv7W\nW08kv+YE4KFvwpi3tuyfyEG/xQqWv4tYb9VgEyJivgGnHYF95cnAM5xjEcLiA3V3\nAXBMlWM/M33+eGpQYECC\n=1vZV\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSoCRAD9Qy5GYHsngAArtMQADKpTg7tUe+EMGDLfY+LPPI+\nL0Q1uCYnR/ozOzTvodGUqIOXxSFdbtZhbD5TZbPsvT0jJdEhRmcNiwvV3IxrgZ1V\nt46DuRY8u/UGu0gDehTVrkuyuyjGXrVsnupHiWKjfK63yObFd10E92RYJP4M6Rcs\nEM0qsAaUajApveYWJqM1uE9kJPqBJwkaQVHwo2mPTUAelkIfQ65unG73oW7yMd62\nvlxtR35wWHt19xYWEhDVs5KtujJkAoJa5dq3ygVkBlcfRaajxos55LifRSoWLFQo\nDKviAibP4CsMqr083GvWSLxgqAa3CBdcgBvclLphc9Q6/vmqMYo0aS1bC6PoJZUn\nqZX5Xt0jVxO0rbQBbGHbwuNlMk5Hl4t0/QHHW9EytuW6IU6/CzqTloth6aGXKvGG\nTK5H43ltN2uIqFm303tUQPRCi3YQUMcN8MU22JSkg6GO75F3ThNHbX+Q1RcGRSYT\nZGJ1BDVaQyVWscoKJvuxFQeX7pCopPl/Bz1gIha7Es5RgxdcaVaBKJM/pnfhVql3\nTJ3AuOlTPDhB9QtH7MRBiCaHy8P9tD6SpeqcXqkEDtxAFj6urYej1nWTf19N3CM/\nfaTpO0Y81Str54HUtv9nvTPPqedsjlrDe/aOKcT1AId6Cs1ri7mWxnzFCtmesNad\nuwL7nF2Jl3B498OZSLka\n=fe9D\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-local-forging/src/constants.ts b/packages/taquito-local-forging/src/constants.ts index febd5b01e4..4799a49d93 100644 --- a/packages/taquito-local-forging/src/constants.ts +++ b/packages/taquito-local-forging/src/constants.ts @@ -67,8 +67,8 @@ export const opMapping: { [key: string]: string } = { '19': 'COMPARE', '1a': 'CONCAT', '1b': 'CONS', - '1c': 'CREATE_ACCOUNT', // Removed in Edo - '1d': 'CREATE_CONTRACT', // Removed in Edo + '1c': 'CREATE_ACCOUNT', + '1d': 'CREATE_CONTRACT', '1e': 'IMPLICIT_ACCOUNT', '1f': 'DIP', '20': 'DROP', @@ -113,7 +113,7 @@ export const opMapping: { [key: string]: string } = { '47': 'SOURCE', '48': 'SENDER', '49': 'SELF', - '4a': 'STEPS_TO_QUOTA', // Removed in Edo + '4a': 'STEPS_TO_QUOTA', '4b': 'SUB', '4c': 'SWAP', '4d': 'TRANSFER_TOKENS', @@ -157,29 +157,6 @@ export const opMapping: { [key: string]: string } = { '73': 'APPLY', '74': 'chain_id', '75': 'CHAIN_ID', - '76': 'LEVEL', - '77': 'SELF_ADDRESS', - '78': 'never', - '79': 'NEVER', - '7a': 'UNPAIR', - '7b': 'VOTING_POWER', - '7c': 'TOTAL_VOTING_POWER', - '7d': 'KECCAK', - '7e': 'SHA3', - '7f': 'PAIRING_CHECK', - '80': 'bls12_381_g1', - '81': 'bls12_381_g2', - '82': 'bls12_381_fr', - '83': 'sapling_state', - '84': 'sapling_transaction', - '85': 'SAPLING_EMPTY_STATE', - '86': 'SAPLING_VERIFY_UPDATE', - '87': 'ticket', - '88': 'TICKET', - '89': 'READ_TICKET', - '8a': 'SPLIT_TICKET', - '8b': 'JOIN_TICKETS', - '8c': 'GET_AND_UPDATE' }; export const opMappingReverse = (() => { diff --git a/packages/taquito-local-forging/src/michelson/codec.ts b/packages/taquito-local-forging/src/michelson/codec.ts index 9c9dd46a63..37e5665fb2 100644 --- a/packages/taquito-local-forging/src/michelson/codec.ts +++ b/packages/taquito-local-forging/src/michelson/codec.ts @@ -201,19 +201,12 @@ export const primEncoder: Encoder<PrimValue> = value => { encodedArgs = pad(encodedArgs.length / 2) + encodedArgs + pad(0); } - if (( value.prim === 'pair' || value.prim === 'Pair' ) && argsCount > 2) { - encodedArgs = - (encodedAnnots === '') - ? (pad(encodedArgs.length / 2) + encodedArgs + pad(0)) - : (pad(encodedArgs.length / 2) + encodedArgs) - } - return `${preamble}${op}${encodedArgs}${encodedAnnots}`; }; export const primDecoder = (value: Uint8ArrayConsumer, preamble: Uint8Array) => { const hasAnnot = (preamble[0] - 0x03) % 2 === 1; - let argsCount = Math.floor((preamble[0] - 0x03) / 2); + const argsCount = Math.floor((preamble[0] - 0x03) / 2); const op = value .consume(1)[0] .toString(16) @@ -222,14 +215,6 @@ export const primDecoder = (value: Uint8ArrayConsumer, preamble: Uint8Array) => if (opMapping[op] === 'LAMBDA') { value.consume(4); } - -let combPairArgs; -let combPairAnnots; - if ((opMapping[op] === 'pair' || opMapping[op] === 'Pair') && argsCount > 2) { - combPairArgs = decodeCombPair(value); - argsCount = 0; - combPairAnnots = decodeAnnots(value); - } const args = new Array(argsCount).fill(0).map(() => valueDecoder(value)); @@ -241,34 +226,17 @@ let combPairAnnots; prim: opMapping[op], }; - if(combPairArgs) { - result['args'] = combPairArgs as any; - } - - else if (args.length) { + if (args.length) { result['args'] = args as any; } - if (combPairAnnots && (combPairAnnots as any)[0] !== "") { - result['annots'] = combPairAnnots as any; - } - - else if (hasAnnot) { + if (hasAnnot) { result['annots'] = decodeAnnots(value) as any; } return result; }; -export const decodeCombPair: Decoder = (val: Uint8ArrayConsumer) => { - const array = new Uint8ArrayConsumer(extractRequiredLen(val)); - const args = []; - while (array.length() > 0) { - args.push(valueDecoder(array)); - } - return args; -}; - export const encodeAnnots: Encoder<string[]> = (value: string[]) => { const mergedAnnot = value .map(x => { diff --git a/packages/taquito-local-forging/src/taquito-local-forging.ts b/packages/taquito-local-forging/src/taquito-local-forging.ts index 42417befad..16e1819bc7 100644 --- a/packages/taquito-local-forging/src/taquito-local-forging.ts +++ b/packages/taquito-local-forging/src/taquito-local-forging.ts @@ -1,8 +1,3 @@ -/** - * @packageDocumentation - * @module @taquito/local-forging - */ - import { ForgeParams, Forger } from '@taquito/taquito'; import { CODEC } from './constants'; import { decoders } from './decoder'; @@ -24,8 +19,6 @@ export function getCodec(codec: CODEC) { }; } -export { VERSION } from './version'; - export class LocalForger implements Forger { private codec = getCodec(CODEC.MANAGER); diff --git a/packages/taquito-local-forging/src/version.ts b/packages/taquito-local-forging/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-local-forging/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-local-forging/test/allTestsCases.ts b/packages/taquito-local-forging/test/allTestsCases.ts deleted file mode 100644 index 75128f4eb4..0000000000 --- a/packages/taquito-local-forging/test/allTestsCases.ts +++ /dev/null @@ -1,845 +0,0 @@ -import { opMapping } from '../src/constants'; -import { - rpcContractResponse, - rpcContractResponse2, - rpcContractResponse4, - rpcContractResponse5, - rpcContractResponse7, - example9, - example10 -} from './data/code_with_sapling'; -import { ticketCode, - ticketCode2, - ticketCode3, - ticketCode4, - ticketStorage, - ticketStorage2, - ticketStorage3, - ticketStorage4 -} from './data/code_with_ticket'; -import { genericCode, genericStorage } from './data/generic_contract'; -import { tokenBigmapCode, tokenBigmapStorage } from './data/token_big_map'; -import { noAnnotCode, noAnnotInit } from './data/token_without_annotations'; -import { voteInitSample, voteSample } from './data/vote_contract'; - -function extractOp (startIndex: number, endIndex: number) { - const result = []; - let i = startIndex; - for (i; i <= endIndex; i++) { - let key = i.toString(16); - if (key.length === 1) { - key = '0' + key; - } - result.push(opMapping[key]); - } - return result; -}; -interface TestCase { - name: string; - operation: any; - expected?: {}; -} - -export const commonCases: TestCase[] = [ - { - name: 'Delegation', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'delegation', - delegate: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - }, - ], - }, - }, - { - name: 'Reveal', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'reveal', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - public_key: 'edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - }, - ], - }, - }, - { - name: 'Ballot', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'ballot', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - period: -300, - ballot: 'yay', - proposal: 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb', - }, - ], - }, - }, - { - name: 'Endorsement', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'endorsement', - level: -300, - }, - ], - }, - }, - { - name: 'Seed nonce revelation', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'seed_nonce_revelation', - level: 25550, - nonce: new Array(32).fill('ff').join(''), - }, - ], - }, - }, - { - name: 'Proposals', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'proposals', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - period: 25550, - proposals: [ - 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb', - 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb', - ], - }, - ], - }, - }, - { - name: 'Transaction', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with parameter', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'do', - value: { bytes: '0202' }, - }, - destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with default entrypoint', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'default', - value: { prim: 'Pair', args: [{ int: '2' }, { string: 'hello' }] }, - }, - destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with maximum length entrypoint', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'Tps0RV2UISBvTV6m2z16VnfCVnN5dzX', - value: { prim: 'Pair', args: [{ int: '2' }, { string: 'hello' }] }, - }, - destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with non ascii entrypoint and string', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'entrypoint©Ͻ', - value: { string: 'Copyright ©Ͻ' }, - }, - destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with default entrypoint and unit parameter', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'default', - value: { prim: 'Unit' }, - }, - destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', - amount: '1000', - }, - ], - }, - expected: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with set_delegate entrypoint', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'set_delegate', - value: { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }, - }, - destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with remove_delegate entrypoint', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'remove_delegate', - value: { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }, - }, - destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with root entrypoint', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'root', - value: { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }, - }, - destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with do entrypoint', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'do', - value: { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }, - }, - destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with do entrypoint and unit', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'do', - value: { prim: 'Unit' }, - }, - destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with custom entrypoint', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'main', - value: { - prim: 'Pair', - args: [ - { prim: 'Pair', args: [{ bytes: '0202' }, { int: '202' }] }, - { string: 'hello' }, - ], - }, - }, - destination: 'KT1HPaJE1QNtuiYPgMAGhzTrs446K9wptmsR', - amount: '1000', - }, - ], - }, - }, - { - name: 'Transaction with default entrypoint and annotation', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'default', - value: { - prim: 'Pair', - args: [{ bytes: '0202' }, { string: 'hello' }], - annots: ['%test'], - }, - }, - destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - amount: '1000', - }, - ], - }, - }, - { - name: 'Origination vote example', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: voteSample, - storage: voteInitSample, - }, - }, - ], - }, - }, - // In `opMapping` from the file `constants.ts`, the operations before `LEVEL` are common to the protocols (delphi and edo) - ...extractOp(0, 117).map(op => { - return { - name: `Origination operation (${op})`, - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: genericCode(op), - storage: genericStorage, - }, - }, - ], - }, - }; - }), - { - name: 'Origination with bigmap', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: tokenBigmapCode, - storage: tokenBigmapStorage, - }, - }, - ], - }, - }, - { - name: 'Origination with no annot', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: noAnnotCode, - storage: noAnnotInit('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn'), - }, - }, - ], - }, - }, - { - name: 'Multiple transaction at once', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'reveal', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - public_key: 'edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - }, - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: noAnnotCode, - storage: noAnnotInit('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn'), - }, - }, - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - parameters: { - entrypoint: 'default', - value: { - prim: 'Pair', - args: [{ bytes: '0202' }, { string: 'hello' }], - annots: ['%test'], - }, - }, - destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - amount: '1000', - }, - { - kind: 'transaction', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - amount: '1000', - }, - ], - }, - } -]; - -export const edoCases: TestCase[] = [ - // In `opMapping` from the file `constants.ts`, the operations from `LEVEL` to `GET_AND_UPDATE` have been added in the edo protocol - ...extractOp(118, 140).map(op => { - return { - name: `Origination operation (${op})`, - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: genericCode(op), - storage: genericStorage, - }, - }, - ], - }, - }; - }), - { - name: 'Origination where storage is a pair of 2 optional annotated tickets', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: ticketCode, - storage: ticketStorage, - }, - }, - ], - }, - }, - { - name: 'Origination where parameter contains a pair having 3 args', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: ticketCode2, - storage: ticketStorage2, - }, - }, - ], - }, - }, - { - name: 'Origination where storage contains nested pairs and a ticket inside a big map', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: ticketCode3, - storage: ticketStorage3, - }, - }, - ], - }, - }, - { - name: 'Origination with ticket', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: ticketCode4, - storage: ticketStorage4, - }, - }, - ], - }, - }, - { - name: 'Origination with sapling_transaction in storage', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: rpcContractResponse.script.code, - storage: [], - }, - }, - ], - }, - }, - { - name: 'Origination where storage has a pair of 3 annotated args whose 2 sapling_transaction', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: rpcContractResponse2.script.code, - storage: { prim: 'Pair', args: [{ int: '0' }, [], []] }, - }, - }, - ], - }, - }, - { - name: 'Origination where storage is a pair of 2 annotated sapling_transaction and parameter contains a pair of 3 args', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: rpcContractResponse4.script.code, - storage: { prim: 'Pair', args: [[], []] }, - }, - }, - ], - }, - }, - { - name: 'Origination with SAPLING_EMPTY_STATE instruction', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: rpcContractResponse5.script.code, - storage: { prim: 'Unit' }, - }, - }, - ], - }, - }, - { - name: 'Origination with optional sapling_transaction in storage', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: rpcContractResponse7.script.code, - storage: { prim: 'None' }, - }, - }, - ], - }, - }, - { - name: 'Origination where parameter is an annotated pairs of 18 args', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: example9.script.code, - storage: [], - }, - }, - ], - }, - }, - { - name: 'Origination where parameter is a pairs of 18 args without annotation', - operation: { - branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', - contents: [ - { - kind: 'origination', - counter: '1', - source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - fee: '10000', - gas_limit: '10', - storage_limit: '10', - balance: '0', - script: { - code: example10.script.code, - storage: [], - }, - }, - ], - }, - }, -]; \ No newline at end of file diff --git a/packages/taquito-local-forging/test/data/code_with_sapling.ts b/packages/taquito-local-forging/test/data/code_with_sapling.ts deleted file mode 100644 index 0d30d7fe7c..0000000000 --- a/packages/taquito-local-forging/test/data/code_with_sapling.ts +++ /dev/null @@ -1,772 +0,0 @@ -export const rpcContractResponse = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { prim: 'option', args: [{ prim: 'key_hash' }], annots: ['%key'] }, - { prim: 'sapling_transaction', args: [{ int: '8' }], annots: ['%transaction'] } - ] - } - ] - } - ] - }, - { prim: 'storage', args: [{ prim: 'sapling_state', args: [{ int: '8' }] }] }, - { - prim: 'code', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'SWAP' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'int' }, { int: '10' }] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'ABS' }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '1' }] }, - { prim: 'MUL' }, - { prim: 'PUSH', args: [{ prim: 'int' }, { int: '0' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'COMPARE' }, - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'int' }, { int: '15' }] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'IMPLICIT_ACCOUNT' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { - prim: 'IF_NONE', - args: [ - [{ prim: 'SWAP' }, { prim: 'DROP' }], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'WrongCondition: ~ operation.key.is_some()' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'AMOUNT' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'WrongCondition: sp.amount == amount_tez.value' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'SWAP' }, - { prim: 'ITER', args: [[{ prim: 'CONS' }]] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { int: '14' } - } -}; - -export const rpcContractResponse2 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'sapling_transaction', - args: [{ int: '8' }] - }, - { prim: 'option', args: [{ prim: 'key_hash' }], annots: ['%key'] } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'mutez', annots: ['%balance'] }, - { prim: 'sapling_state', args: [{ int: '8' }], annots: ['%ledger1'] }, - { prim: 'sapling_state', args: [{ int: '8' }], annots: ['%ledger2'] } - ] - } - ] - }, - { - prim: 'code', - args: [[{ prim: 'DUP' }]] - } - ], - storage: { prim: 'Pair', args: [{ int: '0' }, { int: '17' }, { int: '18' }] } - } -}; - -// KT1NQh57yhVyT9cKhvjjaSmZ9YHZgwkAhJsB -export const rpcContractResponse3 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { prim: 'sapling_transaction', args: [{ int: '8' }] }, - { prim: 'option', args: [{ prim: 'key_hash' }] } - ] - } - ] - } - ] - }, - { prim: 'storage', args: [{ prim: 'sapling_state', args: [{ int: '8' }] }] }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [[{ prim: 'SWAP' }]] }, - { prim: 'AMOUNT' }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [[{ prim: 'SWAP' }]] }, - { - prim: 'ITER', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'DIP', args: [[{ prim: 'SWAP' }]] }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DUP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'ABS' }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '1' }] }, - { prim: 'MUL' } - ] - ] - }, - [ - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '2' }, - [ - [ - { - prim: 'IF_NONE', - args: [ - [ - [ - { prim: 'UNIT' }, - { prim: 'FAILWITH' } - ] - ], - [] - ] - } - ], - { prim: 'IMPLICIT_ACCOUNT' } - ] - ] - }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [[{ prim: 'CONS' }]] } - ] - ] - } - ], - [ - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'SWAP' }]] }, - { prim: 'DIP', args: [[{ prim: 'SWAP' }]] }, - { prim: 'SWAP' }, - { prim: 'SUB' }, - { - prim: 'DIP', - args: [ - { int: '2' }, - [ - [ - { - prim: 'IF_NONE', - args: [ - [], - [ - [ - { prim: 'UNIT' }, - { prim: 'FAILWITH' } - ] - ] - ] - } - ] - ] - ] - }, - { prim: 'SWAP' } - ] - ] - } - ] - ] - ] - }, - { - prim: 'DIP', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - [ - [{ prim: 'COMPARE' }, { prim: 'EQ' }], - { prim: 'IF', args: [[], [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]]] } - ] - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { int: '53' } - } -}; - -// KT1P7WdaJCnyyz83oBrHrFUPsxeVawGy4TSB -export const rpcContractResponse4 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'pair', - args: [ - { prim: 'bool' }, - { prim: 'sapling_transaction', args: [{ int: '8' }], annots: [':left'] }, - { prim: 'sapling_transaction', args: [{ int: '8' }], annots: [':right'] } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'sapling_state', args: [{ int: '8' }], annots: [':left'] }, - { prim: 'sapling_state', args: [{ int: '8' }], annots: [':right'] } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'UNPAIR' }, - { prim: 'DIP', args: [[{ prim: 'UNPAIR' }]] }, - { prim: 'DIP', args: [{ int: '3' }, [{ prim: 'UNPAIR' }]] }, - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'SWAP' }]] }, - { - prim: 'IF', - args: [ - [ - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'DROP' } - ] - ] - } - ], - [ - { prim: 'DIP', args: [[{ prim: 'DUP' }]] }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'DROP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DROP' } - ] - ] - } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { prim: 'Pair', args: [{ int: '54' }, { int: '55' }] } - } -}; - -// KT1R11DJKeYmt7Wzu21fQPeYdByyPWLbDqyF -export const rpcContractResponse5 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [{ prim: 'list', args: [{ prim: 'sapling_transaction', args: [{ int: '8' }] }] }] - }, - { prim: 'storage', args: [{ prim: 'unit' }] }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'SAPLING_EMPTY_STATE', args: [{ int: '8' }] }, - { prim: 'SWAP' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DROP' } - ] - ] - }, - { prim: 'DROP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { prim: 'Unit' } - } -}; - -// KT1GZBKBSaDDEkEH4xreMJH3oSfjsqRn8MTL -export const rpcContractResponse6 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'contract', - args: [ - { - prim: 'or', - args: [ - { prim: 'sapling_transaction', args: [{ int: '8' }] }, - { prim: 'sapling_state', args: [{ int: '8' }] } - ] - } - ] - }, - { prim: 'sapling_transaction', args: [{ int: '8' }] } - ] - } - ] - }, - { prim: 'storage', args: [{ prim: 'unit' }] }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'SAPLING_EMPTY_STATE', args: [{ int: '8' }] }, - { prim: 'SWAP' }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [{ prim: 'IF_NONE', args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] }], - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'SWAP' }, - { prim: 'RIGHT', args: [{ prim: 'sapling_transaction', args: [{ int: '8' }] }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'SWAP' }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { prim: 'Unit' } - } -}; - -// KT1XpFASuiYhShqteQ4QjSfR21ERq2R3ZfrH -export const rpcContractResponse7 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { prim: 'sapling_transaction', args: [{ int: '8' }] }, - { prim: 'sapling_state', args: [{ int: '8' }] } - ] - } - ] - }, - { - prim: 'storage', - args: [{ prim: 'option', args: [{ prim: 'sapling_transaction', args: [{ int: '8' }] }] }] - }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { - prim: 'IF_LEFT', - args: [ - [{ prim: 'DIP', args: [[{ prim: 'DROP' }]] }, { prim: 'SOME' }], - [ - { - prim: 'DIP', - args: [ - [ - [ - { - prim: 'IF_NONE', - args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] - } - ] - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] - } - ], - { prim: 'DROP' }, - { prim: 'NONE', args: [{ prim: 'sapling_transaction', args: [{ int: '8' }] }] } - ] - ] - }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { prim: 'None' } - } -}; - -// KT1KnF4vZMgTRgy9hniwV9pYpPj4b7HEV8fU -export const rpcContractResponse8 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'pair', - args: [ - { prim: 'sapling_transaction', args: [{ int: '8' }] }, - { prim: 'sapling_state', args: [{ int: '8' }] } - ] - } - ] - }, - { prim: 'storage', args: [{ prim: 'sapling_state', args: [{ int: '8' }] }] }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'UNPAIR' }, - { prim: 'DIP', args: [{ int: '2' }, [{ prim: 'DROP' }]] }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [{ prim: 'IF_NONE', args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] }], - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { int: '56' } - } -}; - -export const example9 = { - // To test comb pair forging/unforging - // Not a valid contract - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'pair', - args: [ - { prim: 'sapling_transaction', args: [{ int: '8' }] }, - { prim: 'sapling_state', args: [{ int: '8' }] }, - { prim: 'int', annots: ['%test'] }, - { prim: 'int', annots: ['%test2'] }, - { prim: 'mutez', annots: ['%test3'] }, - { prim: 'nat', annots: ['%test4'] }, - { prim: 'int', annots: ['%test5'] }, - { prim: 'int', annots: ['%test6'] }, - { prim: 'mutez', annots: ['%test7'] }, - { prim: 'nat', annots: ['%test8'] }, - { prim: 'int', annots: ['%test9'] }, - { prim: 'int', annots: ['%test10'] }, - { prim: 'mutez', annots: ['%test11'] }, - { prim: 'nat', annots: ['%test12'] }, - { prim: 'int', annots: ['%test13'] }, - { prim: 'int', annots: ['%test14'] }, - { prim: 'mutez', annots: ['%test15'] }, - { prim: 'nat', annots: ['%test16'] } - ], - annots: ['%combPairAnnot'] - } - ] - }, - { prim: 'storage', args: [{ prim: 'sapling_state', args: [{ int: '8' }] }] }, - { - prim: 'code', - args: [ - [ { prim: 'DUP' } ] - ] - } - ], - storage: { int: '56' } - } -}; - -export const example10 = { - // To test comb pair forging/unforging - // Not a valid contract - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'pair', - args: [ - { prim: 'sapling_transaction', args: [{ int: '8' }] }, - { prim: 'sapling_state', args: [{ int: '8' }] }, - { prim: 'int' }, - { prim: 'int' }, - { prim: 'mutez' }, - { prim: 'nat' }, - { prim: 'int' }, - { prim: 'int' }, - { prim: 'mutez' }, - { prim: 'nat' }, - { prim: 'int' }, - { prim: 'int' }, - { prim: 'mutez' }, - { prim: 'nat' }, - { prim: 'int'}, - { prim: 'int'}, - { prim: 'mutez' }, - { prim: 'nat'} - ] - } - ] - }, - { prim: 'storage', args: [{ prim: 'sapling_state', args: [{ int: '8' }] }] }, - { - prim: 'code', - args: [ - [ { prim: 'DUP' } ] - ] - } - ], - storage: { int: '56' } - } -}; diff --git a/packages/taquito-local-forging/test/data/code_with_ticket.ts b/packages/taquito-local-forging/test/data/code_with_ticket.ts deleted file mode 100644 index 1f70613fb1..0000000000 --- a/packages/taquito-local-forging/test/data/code_with_ticket.ts +++ /dev/null @@ -1,1693 +0,0 @@ -export const ticketStorage = { prim: 'Pair', args: [{ prim: 'None' }, { prim: 'None' }] }; - -export const ticketCode = [ - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'option', args: [{ prim: 'ticket', args: [{ prim: 'int' }] }], annots: ['%x'] }, - { prim: 'option', args: [{ prim: 'ticket', args: [{ prim: 'string' }] }], annots: ['%y'] } - ] - } - ] - }, - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { prim: 'unit', annots: ['%auto_call'] }, - { prim: 'ticket', args: [{ prim: 'int' }], annots: ['%run'] } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DROP' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '43' }] }, - { prim: 'PUSH', args: [{ prim: 'int' }, { int: '1' }] }, - { prim: 'TICKET' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'SELF', annots: ['%run'] }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' } - ], - [ - { prim: 'READ_TICKET' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '42' }] }, - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'abc' }] }, - { prim: 'TICKET' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'GET', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '3' }] }, - { prim: 'SWAP' }, - { prim: 'EDIV' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'int' }, { int: '20' }] }, - { prim: 'FAILWITH' } - ], - [{ prim: 'CAR' }] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'SUB' }, - { prim: 'ISNAT' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'int' }, { int: '20' }] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '3' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'EDIV' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'int' }, { int: '20' }] }, - { prim: 'FAILWITH' } - ], - [{ prim: 'CAR' }] - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'SPLIT_TICKET' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'int' }, { int: '20' }] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'JOIN_TICKETS' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] } - ] - ] - }, - { prim: 'PAIR' } - ] - ] - } -]; - -export const ticketStorage2 = { - prim: 'Pair', - args: [{ bytes: '00006dba164f4293b862a5e2c5ab84888ea8d7f8cbe6' }, { int: '39' }] -}; - -export const ticketCode2 = [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { prim: 'ticket', args: [{ prim: 'unit' }], annots: ['%receive'] }, - { - prim: 'pair', - args: [ - { - prim: 'contract', - args: [{ prim: 'ticket', args: [{ prim: 'unit' }] }], - annots: ['%destination'] - }, - { prim: 'nat', annots: ['%amount'] }, - { prim: 'address', annots: ['%ticketer'] } - ], - annots: ['%send'] - } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%manager'] }, - { - prim: 'big_map', - args: [{ prim: 'address' }, { prim: 'ticket', args: [{ prim: 'unit' }] }], - annots: ['%tickets'] - } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'AMOUNT' }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - [ - [{ prim: 'COMPARE' }, { prim: 'EQ' }], - { prim: 'IF', args: [[], [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]]] } - ], - { prim: 'UNPAIR', args: [{ int: '3' }] }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'READ_TICKET' }, - { prim: 'CAR', annots: ['@ticketer'] }, - { prim: 'DUP' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'NONE', args: [{ prim: 'ticket', args: [{ prim: 'unit' }] }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'GET_AND_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [ - [{ prim: 'DIG', args: [{ int: '2' }] }], - [ - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PAIR' }, - { prim: 'JOIN_TICKETS' }, - [ - { - prim: 'IF_NONE', - args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] - } - ] - ] - ] - } - ], - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'GET_AND_UPDATE' }, - [{ prim: 'IF_NONE', args: [[], [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]]] }], - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] } - ], - [ - { prim: 'DUP', args: [{ int: '2' }], annots: ['@manager'] }, - { prim: 'SENDER' }, - [ - [{ prim: 'COMPARE' }, { prim: 'EQ' }], - { prim: 'IF', args: [[], [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]]] } - ], - { prim: 'UNPAIR', args: [{ int: '3' }] }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'NONE', args: [{ prim: 'ticket', args: [{ prim: 'unit' }] }] }, - { prim: 'DUP', args: [{ int: '5' }], annots: ['@ticketer'] }, - { prim: 'GET_AND_UPDATE' }, - [{ prim: 'IF_NONE', args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] }], - { prim: 'READ_TICKET' }, - { prim: 'GET', args: [{ int: '4' }], annots: ['@total_amount'] }, - { prim: 'DUP', args: [{ int: '5' }], annots: ['@amount'] }, - { prim: 'SWAP' }, - { prim: 'SUB' }, - { prim: 'ISNAT' }, - [ - { - prim: 'IF_NONE', - args: [ - [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], - [{ prim: 'RENAME', annots: ['@remaining_amount'] }] - ] - } - ], - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'SPLIT_TICKET' }, - [{ prim: 'IF_NONE', args: [[[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]], []] }], - { prim: 'UNPAIR', annots: ['@to_send', '@to_keep'] }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'GET_AND_UPDATE' }, - [{ prim: 'IF_NONE', args: [[], [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }]]] }], - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'SWAP' }, - { prim: 'CONS' } - ] - ] - }, - { prim: 'PAIR' } - ] - ] - } -]; - -export const ticketStorage3 = { - prim: 'Pair', - args: [ - [ - { bytes: '00000d4f0cf2fae2437f924120ef030f53abd4d4e520' }, - { int: '90' }, - { int: '10' }, - { prim: 'False' }, - { int: '1609898008' }, - { int: '600' } - ], - { int: '139' } - ] -}; - -export const ticketCode3 = [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'contract', - args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }], - annots: ['%buy'] - }, - { - prim: 'contract', - args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }], - annots: ['%cancel'] - } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%opening_price'] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%set_reserve_price'] }, - { - prim: 'pair', - args: [ - { prim: 'timestamp', annots: ['%set_start_time'] }, - { - prim: 'pair', - args: [ - { prim: 'int', annots: ['%set_round_time'] }, - { - prim: 'ticket', - args: [{ prim: 'nat' }], - annots: ['%ticket'] - } - ] - } - ] - } - ] - } - ], - annots: ['%configure'] - }, - { prim: 'nat', annots: ['%drop_price'] } - ] - } - ] - }, - { prim: 'unit', annots: ['%start'] } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%admin'] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%current_price'] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%reserve_price'] }, - { - prim: 'pair', - args: [ - { prim: 'bool', annots: ['%in_progress'] }, - { - prim: 'pair', - args: [ - { prim: 'timestamp', annots: ['%start_time'] }, - { prim: 'int', annots: ['%round_time'] } - ] - } - ] - } - ] - } - ] - } - ], - annots: ['%data'] - }, - { - prim: 'big_map', - args: [{ prim: 'nat' }, { prim: 'ticket', args: [{ prim: 'nat' }] }], - annots: ['%tickets'] - } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'NOW' }, - { prim: 'AMOUNT' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'MUL' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'ADD' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'LE' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'CONTRACT', args: [{ prim: 'unit' }] }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'DROP', args: [{ int: '4' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'contract does not match' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SWAP' }, - { - prim: 'PUSH', - args: [{ prim: 'unit' }, { prim: 'Unit' }] - }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { - prim: 'NONE', - args: [ - { prim: 'ticket', args: [{ prim: 'nat' }] } - ] - }, - { - prim: 'PUSH', - args: [{ prim: 'nat' }, { int: '0' }] - }, - { prim: 'GET_AND_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'DROP', args: [{ int: '4' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'ticket does not exist' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DIG', args: [{ int: '3' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'mutez' }, - { int: '0' } - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'SWAP' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'PUSH', - args: [ - { prim: 'bool' }, - { prim: 'False' } - ] - }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { - prim: 'NIL', - args: [{ prim: 'operation' }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CONS' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { - prim: 'NONE', - args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }] - }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '0' }] }, - { prim: 'GET_AND_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'DROP', args: [{ int: '3' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'ticket does not exist' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: '0' }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'SWAP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'PUSH', - args: [{ prim: 'bool' }, { prim: 'False' }] - }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'SOURCE' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'NOT' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'DIG', args: [{ int: '6' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'SOME' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '0' }] }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'PUSH', args: [{ prim: 'bool' }, { prim: 'False' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ], - [ - { prim: 'NOW' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'COMPARE' }, - { prim: 'GE' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'ADD' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ], - [ - { prim: 'DROP' }, - { prim: 'NOW' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'SOURCE' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'failed assertion' }] }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'NOT' }, - { - prim: 'IF', - args: [ - [], - [ - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'failed assertion' }] }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'GE' }, - { - prim: 'IF', - args: [ - [], - [ - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'failed assertion' }] }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'NONE', args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }] }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '0' }] }, - { prim: 'GET_AND_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'DROP', args: [{ int: '3' }] }, - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'no ticket' }] }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SOME' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '0' }] }, - { prim: 'UPDATE' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'PUSH', args: [{ prim: 'bool' }, { prim: 'True' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ] - ] - } -]; - -export const ticketStorage4 = [ - { bytes: '00000d4f0cf2fae2437f924120ef030f53abd4d4e520' }, - { int: '140' }, - { int: '1' }, - { int: '141' } -]; - -export const ticketCode4 = [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'contract', - args: [ - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%opening_price'] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%set_reserve_price'] }, - { - prim: 'pair', - args: [ - { - prim: 'timestamp', - annots: ['%set_start_time'] - }, - { - prim: 'pair', - args: [ - { - prim: 'int', - annots: ['%set_round_time'] - }, - { - prim: 'ticket', - args: [{ prim: 'nat' }], - annots: ['%ticket'] - } - ] - } - ] - } - ] - } - ] - } - ], - annots: ['%destination'] - }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%opening_price'] }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%reserve_price'] }, - { - prim: 'pair', - args: [ - { prim: 'timestamp', annots: ['%start_time'] }, - { - prim: 'pair', - args: [ - { prim: 'int', annots: ['%round_time'] }, - { prim: 'nat', annots: ['%ticket_id'] } - ] - } - ] - } - ] - } - ] - } - ], - annots: ['%auction'] - }, - { prim: 'nat', annots: ['%burn'] } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'map', - args: [{ prim: 'string' }, { prim: 'bytes' }], - annots: ['%mint'] - }, - { prim: 'ticket', args: [{ prim: 'nat' }], annots: ['%receive'] } - ] - } - ] - }, - { - prim: 'pair', - args: [ - { - prim: 'contract', - args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }], - annots: ['%destination'] - }, - { prim: 'nat', annots: ['%ticket_id'] } - ], - annots: ['%send'] - } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%admin'] }, - { - prim: 'pair', - args: [ - { - prim: 'big_map', - args: [{ prim: 'nat' }, { prim: 'ticket', args: [{ prim: 'nat' }] }], - annots: ['%tickets'] - }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%current_id'] }, - { - prim: 'big_map', - args: [ - { prim: 'nat' }, - { - prim: 'pair', - args: [ - { prim: 'nat' }, - { prim: 'map', args: [{ prim: 'string' }, { prim: 'bytes' }] } - ] - } - ], - annots: ['%token_metadata'] - } - ] - } - ] - } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'AMOUNT' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'failed assertion' }] }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { - prim: 'NONE', - args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'GET_AND_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'DROP', args: [{ int: '5' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'no tickets' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: '0' }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ], - [ - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'ADD' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { - prim: 'NONE', - args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'UPDATE' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'TICKET' }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'GET_AND_UPDATE' }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'PAIR' }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'UPDATE' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'ADD' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ], - [ - { prim: 'READ_TICKET' }, - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'GET_AND_UPDATE' }, - { prim: 'DROP' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'ADD' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ], - [ - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'failed assertion' }] }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'NONE', args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'GET_AND_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'DROP', args: [{ int: '5' }] }, - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'no tickets' }] }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ] - ] - } -]; diff --git a/packages/taquito-local-forging/test/taquito-local-forging.spec.ts b/packages/taquito-local-forging/test/taquito-local-forging.spec.ts index 06a7093aa1..c7900ecf6d 100644 --- a/packages/taquito-local-forging/test/taquito-local-forging.spec.ts +++ b/packages/taquito-local-forging/test/taquito-local-forging.spec.ts @@ -1,18 +1,582 @@ +import { TezosToolkit } from '@taquito/taquito'; +import { opMappingReverse } from '../src/constants'; import { localForger } from '../src/taquito-local-forging'; -import { commonCases, edoCases } from './allTestsCases'; +import { genericCode, genericStorage } from './data/generic_contract'; +import { tokenBigmapCode, tokenBigmapStorage } from './data/token_big_map'; +import { noAnnotCode, noAnnotInit } from './data/token_without_annotations'; +import { voteInitSample, voteSample } from './data/vote_contract'; -commonCases.forEach(({ name, operation, expected }) => { - test(`Common test: ${name}`, async done => { +const integrationTest = process.env.RUN_INTEGRATION ? test : test.skip; + +interface TestCase { + name: string; + operation: any; + expected?: {}; +} + +const cases: TestCase[] = [ + { + name: 'Delegation', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'delegation', + delegate: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + }, + ], + }, + }, + { + name: 'Reveal', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'reveal', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + public_key: 'edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + }, + ], + }, + }, + { + name: 'Ballot', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'ballot', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + period: -300, + ballot: 'yay', + proposal: 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb', + }, + ], + }, + }, + { + name: 'Endorsement', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'endorsement', + level: -300, + }, + ], + }, + }, + { + name: 'Seed nonce revelation', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'seed_nonce_revelation', + level: 25550, + nonce: new Array(32).fill('ff').join(''), + }, + ], + }, + }, + { + name: 'Proposals', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'proposals', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + period: 25550, + proposals: [ + 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb', + 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb', + ], + }, + ], + }, + }, + { + name: 'Transaction', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with parameter', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'do', + value: { bytes: '0202' }, + }, + destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with default entrypoint', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'default', + value: { prim: 'Pair', args: [{ int: '2' }, { string: 'hello' }] }, + }, + destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with maximum length entrypoint', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'Tps0RV2UISBvTV6m2z16VnfCVnN5dzX', + value: { prim: 'Pair', args: [{ int: '2' }, { string: 'hello' }] }, + }, + destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with non ascii entrypoint and string', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'entrypoint©Ͻ', + value: { string: 'Copyright ©Ͻ' }, + }, + destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with default entrypoint and unit parameter', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'default', + value: { prim: 'Unit' }, + }, + destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', + amount: '1000', + }, + ], + }, + expected: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with set_delegate entrypoint', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'set_delegate', + value: { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }, + }, + destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with remove_delegate entrypoint', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'remove_delegate', + value: { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }, + }, + destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with root entrypoint', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'root', + value: { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }, + }, + destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with do entrypoint', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'do', + value: { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }, + }, + destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with do entrypoint and unit', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'do', + value: { prim: 'Unit' }, + }, + destination: 'KT1JHqHQdHSgWBKo6H4UfG8dw3JnZSyjGkHA', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with custom entrypoint', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'main', + value: { + prim: 'Pair', + args: [ + { prim: 'Pair', args: [{ bytes: '0202' }, { int: '202' }] }, + { string: 'hello' }, + ], + }, + }, + destination: 'KT1HPaJE1QNtuiYPgMAGhzTrs446K9wptmsR', + amount: '1000', + }, + ], + }, + }, + { + name: 'Transaction with default entrypoint and annotation', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'default', + value: { + prim: 'Pair', + args: [{ bytes: '0202' }, { string: 'hello' }], + annots: ['%test'], + }, + }, + destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + amount: '1000', + }, + ], + }, + }, + { + name: 'Origination vote example', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'origination', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + balance: '0', + script: { + code: voteSample, + storage: voteInitSample, + }, + }, + ], + }, + }, + ...Object.keys(opMappingReverse).map(op => { + return { + name: `Origination operation (${op})`, + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'origination', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + balance: '0', + script: { + code: genericCode(op), + storage: genericStorage, + }, + }, + ], + }, + }; + }), + { + name: 'Origination with bigmap', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'origination', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + balance: '0', + script: { + code: tokenBigmapCode, + storage: tokenBigmapStorage, + }, + }, + ], + }, + }, + { + name: 'Origination with no annot', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'origination', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + balance: '0', + script: { + code: noAnnotCode, + storage: noAnnotInit('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn'), + }, + }, + ], + }, + }, + { + name: 'Multiple transaction at once', + operation: { + branch: 'BLzyjjHKEKMULtvkpSHxuZxx6ei6fpntH2BTkYZiLgs8zLVstvX', + contents: [ + { + kind: 'reveal', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + public_key: 'edpkvS5QFv7KRGfa3b87gg9DBpxSm3NpSwnjhUjNBQrRUUR66F7C9g', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + }, + { + kind: 'origination', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + balance: '0', + script: { + code: noAnnotCode, + storage: noAnnotInit('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn'), + }, + }, + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + parameters: { + entrypoint: 'default', + value: { + prim: 'Pair', + args: [{ bytes: '0202' }, { string: 'hello' }], + annots: ['%test'], + }, + }, + destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + amount: '1000', + }, + { + kind: 'transaction', + counter: '1', + source: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + fee: '10000', + gas_limit: '10', + storage_limit: '10', + destination: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', + amount: '1000', + }, + ], + }, + }, +]; + +cases.forEach(({ name, operation, expected }) => { + test(`Test: ${name}`, async done => { const result = await localForger.forge(operation); expect(await localForger.parse(result)).toEqual(expected || operation); done(); }); -}); -edoCases.forEach(({ name, operation, expected }) => { - test(`Edo test: ${name}`, async done => { - const result = await localForger.forge(operation); - expect(await localForger.parse(result)).toEqual(expected || operation); - done(); + ['https://api.tez.ie/rpc/delphinet', 'https://api.tez.ie/rpc/carthagenet'].forEach(rpc => { + integrationTest(`Integration test: ${name} (${rpc})`, async done => { + const Tezos = new TezosToolkit(rpc); + Tezos.setProvider({ rpc }); + const result = await localForger.forge(operation); + + const rpcResult = await Tezos.rpc.forgeOperations(operation); + + expect(result).toEqual(rpcResult); + expect(await localForger.parse(result)).toEqual(expected || operation); + done(); + }); }); -}); \ No newline at end of file +}); diff --git a/packages/taquito-michel-codec/README.md b/packages/taquito-michel-codec/README.md index 47f5b8b343..6424dddcb8 100644 --- a/packages/taquito-michel-codec/README.md +++ b/packages/taquito-michel-codec/README.md @@ -36,7 +36,7 @@ Output: ### Pretty Print a Michelson contract -```js +``` const contract = await Tezos.contract.at('KT1EctCuorV2NfVb1XTQgvzJ88MQtWP8cMMv') const p = new Parser() @@ -44,90 +44,6 @@ Output: console.log(emitMicheline(michelsonCode, {indent:" ", newline: "\n",})) ``` -### Pack Michelson data - -Serializes any value of packable type to its optimized binary representation identical to the one used by PACK and UNPACK Michelson instructions. -Without a type definition (not recommended) the data will be encoded as a binary form of a generic Michelson expression. -Type definition allows some types like `timestamp` and `address` and other base58 representable types to be encoded to corresponding optimized binary forms borrowed from the Tezos protocol. - -```js -const data: MichelsonData = { - string: "KT1RvkwF4F7pz1gCoxkyZrG1RkrxQy3gmFTv%foo" -}; - -const typ: MichelsonType = { - prim: "address" -}; - -const packed = packData(data, typ); -// 050a0000001901be41ee922ddd2cf33201e49d32da0afec571dce300666f6f - -// alternatively -const packedBytes = packDataBytes(data, typ); -// { bytes: "050a0000001901be41ee922ddd2cf33201e49d32da0afec571dce300666f6f" } -``` - -Without a type definition the base58 encoded address will be treated as a string -```js -const data: MichelsonData = { - string: "KT1RvkwF4F7pz1gCoxkyZrG1RkrxQy3gmFTv%foo" -}; - -const packed = packData(data); -// 0501000000284b543152766b7746344637707a3167436f786b795a724731526b7278517933676d46547625666f6f - -// alternatively -const packedBytes = packDataBytes(data); -// { -// bytes: "0501000000284b543152766b7746344637707a3167436f786b795a724731526b7278517933676d46547625666f6f" -// } -``` - -### Unpack Michelson data - -Deserialize a byte array into the corresponding Michelson value. -Without a type definition (not recommended) the binary data will be treated as a binary form of a generic Michelson expression and returned as is. -Type definition allows some types like `timestamp` and `address` and other types usually encoded in optimized binary forms to be transformed back to their string representations like base58 and ISO timestamps. - -```js -const src = [0x05, 0x00, 0xa7, 0xe8, 0xe4, 0xd8, 0x0b]; - -const typ: MichelsonType = { - prim: "timestamp" -}; - -const data = unpackData(src, typ); -// { string: "2019-09-26T10:59:51Z" } -``` - -Alternatively -```js -const src = { bytes: "0500a7e8e4d80b" }; - -const typ: MichelsonType = { - prim: "timestamp" -}; - -const data = unpackDataBytes(src, typ); -// { string: "2019-09-26T10:59:51Z" } -``` - -Same binary data without a type definition -```js -const src = [0x05, 0x00, 0xa7, 0xe8, 0xe4, 0xd8, 0x0b]; - -const data = unpackData(src); -// { int: "1569495591" } -``` - -Alternatively -```js -const src = { bytes: "0500a7e8e4d80b" }; - -const data = unpackDataBytes(src); -// { int: "1569495591" } -``` - ## API Documentation TypeDoc style documentation is available on-line [here](https://tezostaquito.io/typedoc/modules/_taquito_michel_codec.html) diff --git a/packages/taquito-michel-codec/formatter/formatter.ts b/packages/taquito-michel-codec/formatter/formatter.ts new file mode 100644 index 0000000000..552d8c65d5 --- /dev/null +++ b/packages/taquito-michel-codec/formatter/formatter.ts @@ -0,0 +1,79 @@ +import { emitMicheline, Expr, FormatOptions, assertMichelsonScript, assertMichelsonData, Parser } from "../src"; +import fs from "fs"; +import process from "process"; + +interface APIData { + code: Expr; + storage: Expr; +} + +let api = false; +let indent = false; +let validate = false; +let code = false; +let storage = false; + +for (const arg of process.argv.slice(2)) { + switch (arg) { + case "-a": + api = true; + break; + case "-i": + indent = true; + break; + case "-v": + validate = true; + break; + case "-c": + code = true; + break; + case "-s": + storage = true; + } +} + +if (!code && !storage) { + code = true; + storage = true; +} + +const opt: FormatOptions | undefined = indent ? { + indent: " ", + newline: "\n", +} : undefined; + +const buf = fs.readFileSync(0).toString(); +const json = JSON.parse(buf); +const parser = new Parser({ expandMacros: true }); + +if (api) { + const script: APIData = { + code: parser.parseJSON((<APIData>json).code), + storage: parser.parseJSON((<APIData>json).storage), + }; + + if (validate) { + assertMichelsonScript(script.code); + assertMichelsonData(script.storage); + } + + if (code) { + if (storage) { + console.log("Code:"); + } + console.log(emitMicheline(script.code, opt)); + } + if (storage) { + if (code) { + console.log("\nStorage:"); + } + console.log(emitMicheline(script.storage, opt)); + } +} else { + const script: Expr = parser.parseJSON(json); + if (validate) { + assertMichelsonScript(script); + } + + console.log(emitMicheline(script, opt)); +} \ No newline at end of file diff --git a/packages/taquito-michel-codec/michelson.json b/packages/taquito-michel-codec/michelson.json deleted file mode 100644 index d1719a5b9c..0000000000 --- a/packages/taquito-michel-codec/michelson.json +++ /dev/null @@ -1,3039 +0,0 @@ -{ - "instructions": { - "FAILWITH": { - "op": "FAILWITH", - "op_args": "FAILWITH", - "ty": [ - { - "name": "t_instr_FAILWITH", - "premises": [], - "conclusion": "ctx :- FAILWITH :: ty1 : A => B" - } - ], - "semantics": [ - { - "name": "bs_FAILWITH", - "premises": [], - "conclusion": "FAILWITH / d : stack => [FAILED]" - } - ] - }, - "NEVER": { - "op": "NEVER", - "op_args": "NEVER", - "ty": [ - { - "name": "t_instr_NEVER", - "premises": [], - "conclusion": "ctx :- NEVER :: never : A => B" - } - ], - "semantics": [] - }, - "NOOP": { - "op": "NOOP", - "op_args": "{}", - "ty": [ - { - "name": "t_instr_NOOP", - "premises": [], - "conclusion": "ctx :- {} :: A => A" - } - ], - "semantics": [ - { "name": "bs_NOOP", "premises": [], "conclusion": "{} / S => S" } - ] - }, - "SEQ": { - "op": "SEQ", - "op_args": "instr1 ; instr2", - "ty": [ - { - "name": "t_instr_SEQ", - "premises": [ - "ctx :- instr1 :: A => B", "ctx :- instr2 :: B => C" - ], - "conclusion": "ctx :- instr1 ; instr2 :: A => C" - } - ], - "semantics": [ - { - "name": "bs_SEQ", - "premises": [ "i1 / S => SE'", "i2 / SE' => SE" ], - "conclusion": "i1 ; i2 / S => SE" - } - ] - }, - "IF": { - "op": "IF", - "op_args": "IF instr1 instr2", - "ty": [ - { - "name": "t_instr_IF", - "premises": [ - "ctx :- instr1 :: A => B", "ctx :- instr2 :: A => B" - ], - "conclusion": "ctx :- IF instr1 instr2 :: bool : A => B" - } - ], - "semantics": [ - { - "name": "bs_IF__tt", - "premises": [ "i1 / S => S'" ], - "conclusion": "IF i1 i2 / True : S => S'" - }, - { - "name": "bs_IF__ff", - "premises": [ "i2 / S => S'" ], - "conclusion": "IF i1 i2 / False : S => S'" - } - ] - }, - "LOOP": { - "op": "LOOP", - "op_args": "LOOP instr", - "ty": [ - { - "name": "t_instr_LOOP", - "premises": [ "ctx :- instr :: A => bool : A" ], - "conclusion": "ctx :- LOOP instr :: bool : A => A" - } - ], - "semantics": [ - { - "name": "bs_LOOP__tt", - "premises": [ "instr ; LOOP instr / S => S'" ], - "conclusion": "LOOP instr / True : S => S'" - }, - { - "name": "bs_LOOP__ff", - "premises": [], - "conclusion": "LOOP instr / False : S => S" - } - ] - }, - "LOOP_LEFT": { - "op": "LOOP_LEFT", - "op_args": "LOOP_LEFT instr", - "ty": [ - { - "name": "t_instr_LOOP_LEFT", - "premises": [ "ctx :- instr :: ty1 : A => or ty1 ty2 : A" ], - "conclusion": "ctx :- LOOP_LEFT instr :: or ty1 ty2 : A => ty2 : A" - } - ], - "semantics": [ - { - "name": "bs_LOOP_LEFT__tt", - "premises": [ "i1 ; LOOP_LEFT i1 / d : S => S'" ], - "conclusion": "LOOP_LEFT i1 / Left d : S => S'" - }, - { - "name": "bs_LOOP_LEFT__ff", - "premises": [], - "conclusion": "LOOP_LEFT i1 / Right d : S => d : S'" - } - ] - }, - "DIP": { - "op": "DIP", - "op_args": "DIP instr", - "ty": [ - { - "name": "t_instr_DIP", - "premises": [ "ctx :- instr :: B => C" ], - "conclusion": "ctx :- DIP instr :: ty : B => ty : C" - } - ], - "semantics": [ - { - "name": "bs_DIP", - "premises": [ "instr / S => S'" ], - "conclusion": "DIP instr / d : S => d : S'" - } - ] - }, - "DIPN": { - "op": "DIPN", - "op_args": "DIP n instr", - "ty": [ - { - "name": "t_instr_DIPN", - "premises": [ "length A = n", "ctx :- instr :: B => C" ], - "conclusion": "ctx :- DIP n instr :: A @ B => A @ C" - } - ], - "semantics": [ - { - "name": "bs_DIPN", - "premises": [ "length S1 = n", "instr / S2 => S3" ], - "conclusion": "DIP n instr / S1 ++ S2 => S1 ++ S3" - } - ] - }, - "DIG": { - "op": "DIG", - "op_args": "DIG n", - "ty": [ - { - "name": "t_instr_DIG", - "premises": [ "length A = n" ], - "conclusion": "ctx :- DIG n :: A @ ( ty1 : B ) => ty1 : ( A @ B )" - } - ], - "semantics": [ - { - "name": "bs_DIG", - "premises": [ "length S1 = n" ], - "conclusion": "DIG n / S1 ++ ( d : S2 ) => d : ( S1 ++ S2 )" - } - ] - }, - "DUG": { - "op": "DUG", - "op_args": "DUG n", - "ty": [ - { - "name": "t_instr_DUG", - "premises": [ "length A = n" ], - "conclusion": "ctx :- DUG n :: ty1 : ( A @ B ) => A @ ( ty1 : B )" - } - ], - "semantics": [ - { - "name": "bs_DUG", - "premises": [ "length S1 = n" ], - "conclusion": "DUG n / d : ( S1 ++ S2 ) => S1 ++ ( d : S2 )" - } - ] - }, - "DROP": { - "op": "DROP", - "op_args": "DROP n", - "ty": [ - { - "name": "t_instr_DROP", - "premises": [ "length A = n" ], - "conclusion": "ctx :- DROP n :: A @ B => B" - } - ], - "semantics": [ - { - "name": "bs_DROP", - "premises": [], - "conclusion": "DROP n / d : S => S" - } - ] - }, - "ITER": { - "op": "ITER", - "op_args": "ITER instr", - "ty": [ - { - "name": "t_instr_ITER__list", - "premises": [ "ctx :- instr :: ty : A => A" ], - "conclusion": "ctx :- ITER instr :: list ty : A => A" - }, - { - "name": "t_instr_ITER__set", - "premises": [ "ctx :- instr :: cty : A => A" ], - "conclusion": "ctx :- ITER instr :: set cty : A => A" - }, - { - "name": "t_instr_ITER__map", - "premises": [ "ctx :- instr :: ( pair kty vty ) : A => A" ], - "conclusion": "ctx :- ITER instr :: map kty vty : A => A" - } - ], - "semantics": [ - { - "name": "bs_ITER__set_nil", - "premises": [], - "conclusion": "ITER instr / {} : S => S" - }, - { - "name": "bs_ITER__set_cons", - "premises": [ "instr ; ITER instr / x : tl : S => S'" ], - "conclusion": "ITER instr / { x ; < tl > } : S => S'" - }, - { - "name": "bs_ITER__map_nil", - "premises": [], - "conclusion": "ITER instr / {} : S => S" - }, - { - "name": "bs_ITER__map_cons", - "premises": [ "instr ; ITER instr / ( Pair k v ) : m : S => S'" ], - "conclusion": "ITER instr / { Elt k v ; < m > } : S => S'" - }, - { - "name": "bs_ITER__list_cons", - "premises": [ "instr ; ITER instr / d : tl : S => S'" ], - "conclusion": "ITER instr / { d ; < tl > } : S => S'" - }, - { - "name": "bs_ITER__list_nil", - "premises": [], - "conclusion": "ITER instr / {} : S => S" - } - ] - }, - "MAP": { - "op": "MAP", - "op_args": "MAP instr", - "ty": [ - { - "name": "t_instr_MAP__list", - "premises": [ "ctx :- instr :: ty : A => ty2 : A" ], - "conclusion": "ctx :- MAP instr :: list ty : A => list ty2 : A" - }, - { - "name": "t_instr_MAP__map", - "premises": [ "ctx :- instr :: ( pair kty ty1 ) : A => ty2 : A" ], - "conclusion": - "ctx :- MAP instr :: map kty ty1 : A => map kty ty2 : A" - } - ], - "semantics": [ - { - "name": "bs_MAP__list_nil", - "premises": [], - "conclusion": "MAP instr / {} : S => {} : S" - }, - { - "name": "bs_MAP__list_cons", - "premises": [ - "instr / d : S => d' : S", "MAP instr / tl : S => tl' : S" - ], - "conclusion": - "MAP instr / { d ; < tl > } : S => { d' ; < tl' > } : S" - }, - { - "name": "bs_MAP__map_nil", - "premises": [], - "conclusion": "MAP body / {} : S => {} : S" - }, - { - "name": "bs_MAP__map_cons", - "premises": [ - "body / ( Pair k v ) : S => v' : S", "MAP body / m : S => m' : S" - ], - "conclusion": - "MAP body / { Elt k v ; < m > } : S => { Elt k v' ; < m' > } : S" - } - ] - }, - "IF_NONE": { - "op": "IF_NONE", - "op_args": "IF_NONE instr1 instr2", - "ty": [ - { - "name": "t_instr_IF_NONE", - "premises": [ - "ctx :- instr1 :: A => B", "ctx :- instr2 :: ty1 : A => B" - ], - "conclusion": "ctx :- IF_NONE instr1 instr2 :: option ty1 : A => B" - } - ], - "semantics": [ - { - "name": "bs_IF_NONE__none", - "premises": [ "instr1 / S => S'" ], - "conclusion": "IF_NONE instr1 instr2 / None : S => S'" - }, - { - "name": "bs_IF_NONE__some", - "premises": [ "instr2 / d : S => S'" ], - "conclusion": "IF_NONE instr1 instr2 / ( Some d ) : S => S'" - } - ] - }, - "IF_LEFT": { - "op": "IF_LEFT", - "op_args": "IF_LEFT instr1 instr2", - "ty": [ - { - "name": "t_instr_IF_LEFT", - "premises": [ - "ctx :- instr1 :: ty1 : A => B", "ctx :- instr2 :: ty2 : A => B" - ], - "conclusion": "ctx :- IF_LEFT instr1 instr2 :: or ty1 ty2 : A => B" - } - ], - "semantics": [ - { - "name": "bs_IF_LEFT__left", - "premises": [ "instr1 / d1 : S => S'" ], - "conclusion": "IF_LEFT instr1 instr2 / ( Left d1 ) : S => S'" - }, - { - "name": "bs_IF_LEFT__right", - "premises": [ "instr2 / d2 : S => S'" ], - "conclusion": "IF_LEFT instr1 instr2 / ( Right d2 ) : S => S'" - } - ] - }, - "IF_CONS": { - "op": "IF_CONS", - "op_args": "IF_CONS instr1 instr2", - "ty": [ - { - "name": "t_instr_IF_CONS", - "premises": [ - "ctx :- instr1 :: ty : list ty : A => B", - "ctx :- instr2 :: A => B" - ], - "conclusion": "ctx :- IF_CONS instr1 instr2 :: list ty : A => B" - } - ], - "semantics": [ - { - "name": "bs_IF_CONS__nil", - "premises": [ "body2 / S => S'" ], - "conclusion": "IF_CONS instr1 instr2 / {} : S => S'" - }, - { - "name": "bs_IF_CONS__cons", - "premises": [ "instr1 / d : tl : S => S'" ], - "conclusion": "IF_CONS instr1 instr2 / { d ; < tl > } : S => S'" - } - ] - }, - "CREATE_CONTRACT": { - "op": "CREATE_CONTRACT", - "op_args": - "CREATE_CONTRACT { parameter ty1 ; storage ty2 ; code instr1 }", - "ty": [ - { - "name": "t_instr_CREATE_CONTRACT", - "premises": [ - "Some ty2 :- instr :: pair ty2 ty1 : [] => pair ( list operation ) ty1 : []" - ], - "conclusion": - "ctx :- CREATE_CONTRACT { parameter ty1 ; storage ty2 ; code instr1 } :: option key_hash : mutez : ty2 : A => operation : address : A" - } - ], - "semantics": [ - { - "name": "bs_CREATE_CONTRACT", - "premises": [ - "create_contract ty1 ty2 instr1 kh z x = ( op , addr )" - ], - "conclusion": - "CREATE_CONTRACT { parameter ty1 ; storage ty2 ; code instr1 } / kh : z : x : S => op : addr : S" - } - ] - }, - "PUSH": { - "op": "PUSH", - "op_args": "PUSH ty x", - "ty": [ - { - "name": "t_instr_PUSH", - "premises": [ "ctx :- x :: ty1" ], - "conclusion": "ctx :- PUSH ty x :: A => ty1 : A" - } - ], - "semantics": [ - { - "name": "bs_PUSH", - "premises": [], - "conclusion": "PUSH ty d / S => d : S" - } - ] - }, - "UNIT": { - "op": "UNIT", - "op_args": "UNIT", - "ty": [ - { - "name": "t_instr_UNIT", - "premises": [], - "conclusion": "ctx :- UNIT :: A => unit : A" - } - ], - "semantics": [ - { - "name": "bs_UNIT", - "premises": [], - "conclusion": "UNIT / S => Unit : S" - } - ] - }, - "LAMBDA": { - "op": "LAMBDA", - "op_args": "LAMBDA ty1 ty2 instr", - "ty": [ - { - "name": "t_instr_LAMBDA", - "premises": [ "None :- instr :: ty1 : [] => ty2 : []" ], - "conclusion": - "ctx :- LAMBDA ty1 ty2 instr :: A => lambda ty1 ty2 : A" - } - ], - "semantics": [ - { - "name": "bs_LAMBDA", - "premises": [], - "conclusion": - "LAMBDA ty1 ty2 instr / S => { instr : ty1 -> ty2 } : S" - } - ] - }, - "APPLY": { - "op": "APPLY", - "op_args": "APPLY", - "ty": [ - { - "name": "t_instr_APPLY", - "premises": [], - "conclusion": - "ctx :- APPLY :: ty1 : lambda ( pair ty1 ty2 ) ty3 : A => lambda ty2 ty3 : A" - } - ], - "semantics": [ - { - "name": "bs_APPLY", - "premises": [], - "conclusion": - "APPLY / d : { i : ( pair ty1 ty2 ) -> ty3 } : S => { PUSH ty1 d ; PAIR ; i : ty2 -> ty3 } : S" - } - ] - }, - "EMPTY_SET": { - "op": "EMPTY_SET", - "op_args": "EMPTY_SET cty", - "ty": [ - { - "name": "t_instr_EMPTY_SET", - "premises": [], - "conclusion": "ctx :- EMPTY_SET cty :: A => set cty : A" - } - ], - "semantics": [ - { - "name": "bs_EMPTY_SET", - "premises": [], - "conclusion": "EMPTY_SET cty / S => {} : S" - } - ] - }, - "EMPTY_MAP": { - "op": "EMPTY_MAP", - "op_args": "EMPTY_MAP kty vty", - "ty": [ - { - "name": "t_instr_EMPTY_MAP", - "premises": [], - "conclusion": "ctx :- EMPTY_MAP kty vty :: A => map kty vty : A" - } - ], - "semantics": [ - { - "name": "bs_EMPTY_MAP", - "premises": [], - "conclusion": "EMPTY_MAP kty vty / S => {} : S" - } - ] - }, - "EMPTY_BIG_MAP": { - "op": "EMPTY_BIG_MAP", - "op_args": "EMPTY_BIG_MAP kty vty", - "ty": [ - { - "name": "t_instr_EMPTY_BIG_MAP", - "premises": [], - "conclusion": - "ctx :- EMPTY_BIG_MAP kty vty :: A => big_map kty vty : A" - } - ], - "semantics": [ - { - "name": "bs_EMPTY_BIG_MAP", - "premises": [], - "conclusion": "EMPTY_BIG_MAP kty vty / S => {} : S" - } - ] - }, - "NONE": { - "op": "NONE", - "op_args": "NONE ty", - "ty": [ - { - "name": "t_instr_NONE", - "premises": [], - "conclusion": "ctx :- NONE ty :: A => option ty : A" - } - ], - "semantics": [ - { - "name": "bs_NONE", - "premises": [], - "conclusion": "NONE ty / S => None : S" - } - ] - }, - "NIL": { - "op": "NIL", - "op_args": "NIL ty", - "ty": [ - { - "name": "t_instr_NIL", - "premises": [], - "conclusion": "ctx :- NIL ty :: A => list ty : A" - } - ], - "semantics": [ - { - "name": "bs_NIL", - "premises": [], - "conclusion": "NIL ty / S => {} : S" - } - ] - }, - "BALANCE": { - "op": "BALANCE", - "op_args": "BALANCE", - "ty": [ - { - "name": "t_instr_BALANCE", - "premises": [], - "conclusion": "ctx :- BALANCE :: A => mutez : A" - } - ], - "semantics": [ - { - "name": "bs_BALANCE", - "premises": [], - "conclusion": "BALANCE / S => balance : S" - } - ] - }, - "SOURCE": { - "op": "SOURCE", - "op_args": "SOURCE", - "ty": [ - { - "name": "t_instr_SOURCE", - "premises": [], - "conclusion": "ctx :- SOURCE :: A => address : A" - } - ], - "semantics": [ - { - "name": "bs_SOURCE", - "premises": [], - "conclusion": "SOURCE / S => source : S" - } - ] - }, - "SENDER": { - "op": "SENDER", - "op_args": "SENDER", - "ty": [ - { - "name": "t_instr_SENDER", - "premises": [], - "conclusion": "ctx :- SENDER :: A => address : A" - } - ], - "semantics": [ - { - "name": "bs_SENDER", - "premises": [], - "conclusion": "SENDER / S => sender : S" - } - ] - }, - "SELF": { - "op": "SELF", - "op_args": "SELF", - "ty": [ - { - "name": "t_instr_SELF", - "premises": [ "ctx = Some ty" ], - "conclusion": "ctx :- SELF :: A => contract ty : A" - } - ], - "semantics": [ - { - "name": "bs_SELF", - "premises": [], - "conclusion": "SELF / S => self : S" - } - ] - }, - "SELF_ADDRESS": { - "op": "SELF_ADDRESS", - "op_args": "SELF_ADDRESS", - "ty": [ - { - "name": "t_instr_SELF_ADDRESS", - "premises": [], - "conclusion": "ctx :- SELF_ADDRESS :: A => address : A" - } - ], - "semantics": [ - { - "name": "bs_SELF_ADDRESS", - "premises": [], - "conclusion": "SELF_ADDRESS / S => address self : S" - } - ] - }, - "AMOUNT": { - "op": "AMOUNT", - "op_args": "AMOUNT", - "ty": [ - { - "name": "t_instr_AMOUNT", - "premises": [], - "conclusion": "ctx :- AMOUNT :: A => mutez : A" - } - ], - "semantics": [ - { - "name": "bs_AMOUNT", - "premises": [], - "conclusion": "AMOUNT / S => amount : S" - } - ] - }, - "NOW": { - "op": "NOW", - "op_args": "NOW", - "ty": [ - { - "name": "t_instr_NOW", - "premises": [], - "conclusion": "ctx :- NOW :: A => timestamp : A" - } - ], - "semantics": [ - { - "name": "bs_NOW", - "premises": [], - "conclusion": "NOW / S => now : S" - } - ] - }, - "LEVEL": { - "op": "LEVEL", - "op_args": "LEVEL", - "ty": [ - { - "name": "t_instr_LEVEL", - "premises": [], - "conclusion": "ctx :- LEVEL :: A => nat : A" - } - ], - "semantics": [ - { - "name": "bs_LEVEL", - "premises": [], - "conclusion": "LEVEL / S => level : S" - } - ] - }, - "VOTING_POWER": { - "op": "VOTING_POWER", - "op_args": "VOTING_POWER", - "ty": [ - { - "name": "t_instr_VOTING_POWER", - "premises": [], - "conclusion": "ctx :- VOTING_POWER :: key_hash : A => nat : A" - } - ], - "semantics": [ - { - "name": "bs_VOTING_POWER", - "premises": [], - "conclusion": "VOTING_POWER / s : S => voting_power s : S" - } - ] - }, - "TOTAL_VOTING_POWER": { - "op": "TOTAL_VOTING_POWER", - "op_args": "TOTAL_VOTING_POWER", - "ty": [ - { - "name": "t_instr_TOTAL_VOTING_POWER", - "premises": [], - "conclusion": "ctx :- TOTAL_VOTING_POWER :: A => nat : A" - } - ], - "semantics": [ - { - "name": "bs_TOTAL_VOTING_POWER", - "premises": [], - "conclusion": - "TOTAL_VOTING_POWER / s : S => total_voting_power : S" - } - ] - }, - "HASH_KEY": { - "op": "HASH_KEY", - "op_args": "HASH_KEY", - "ty": [ - { - "name": "t_instr_HASH_KEY", - "premises": [], - "conclusion": "ctx :- HASH_KEY :: key : A => key_hash : A" - } - ], - "semantics": [ - { - "name": "bs_HASH_KEY", - "premises": [], - "conclusion": "HASH_KEY / s : S => hash_key s : S" - } - ] - }, - "NOT": { - "op": "NOT", - "op_args": "NOT", - "ty": [ - { - "name": "t_instr_NOT__bool", - "premises": [], - "conclusion": "ctx :- NOT :: bool : A => bool : A" - }, - { - "name": "t_instr_NOT__nat", - "premises": [], - "conclusion": "ctx :- NOT :: nat : A => int : A" - }, - { - "name": "t_instr_NOT__int", - "premises": [], - "conclusion": "ctx :- NOT :: int : A => int : A" - } - ], - "semantics": [ - { - "name": "bs_NOT__1", - "premises": [], - "conclusion": "NOT / True : S => False : S" - }, - { - "name": "bs_NOT__2", - "premises": [], - "conclusion": "NOT / False : S => True : S" - }, - { - "name": "bs_NOT__bit", - "premises": [], - "conclusion": "NOT / z : S => ~ z : S" - } - ] - }, - "NEG": { - "op": "NEG", - "op_args": "NEG", - "ty": [ - { - "name": "t_instr_NEG__nat", - "premises": [], - "conclusion": "ctx :- NEG :: nat : A => int : A" - }, - { - "name": "t_instr_NEG__int", - "premises": [], - "conclusion": "ctx :- NEG :: int : A => int : A" - }, - { - "name": "t_instr_NEG__g1", - "premises": [], - "conclusion": "ctx :- NEG :: bls12_381_g1 : A => bls12_381_g1 : A" - }, - { - "name": "t_instr_NEG__g2", - "premises": [], - "conclusion": "ctx :- NEG :: bls12_381_g2 : A => bls12_381_g2 : A" - }, - { - "name": "t_instr_NEG__fr", - "premises": [], - "conclusion": "ctx :- NEG :: bls12_381_fr : A => bls12_381_fr : A" - } - ], - "semantics": [ - { - "name": "bs_NEG", - "premises": [], - "conclusion": "NEG / z : S => - z : S" - } - ] - }, - "ABS": { - "op": "ABS", - "op_args": "ABS", - "ty": [ - { - "name": "t_instr_ABS", - "premises": [], - "conclusion": "ctx :- ABS :: int : A => nat : A" - } - ], - "semantics": [ - { - "name": "bs_ABS", - "premises": [], - "conclusion": "ABS / z : S => abs z : S" - } - ] - }, - "INT": { - "op": "INT", - "op_args": "INT", - "ty": [ - { - "name": "t_instr_INT__nat", - "premises": [], - "conclusion": "ctx :- INT :: nat : A => int : A" - }, - { - "name": "t_instr_INT__bls12_381_fr", - "premises": [], - "conclusion": "ctx :- INT :: bls12_381_fr : A => int : A" - } - ], - "semantics": [ - { - "name": "bs_INT", - "premises": [], - "conclusion": "INT / z : S => z : S" - } - ] - }, - "ISNAT": { - "op": "ISNAT", - "op_args": "ISNAT", - "ty": [ - { - "name": "t_instr_ISNAT", - "premises": [], - "conclusion": "ctx :- ISNAT :: int : A => option nat : A" - } - ], - "semantics": [ - { - "name": "bs_ISNAT__ok", - "premises": [ "z >= 0" ], - "conclusion": "ISNAT / z : S => Some ( tonat z ) : S" - }, - { - "name": "bs_ISNAT__fail", - "premises": [ "z < 0" ], - "conclusion": "ISNAT / z : S => None : S" - } - ] - }, - "SIZE": { - "op": "SIZE", - "op_args": "SIZE", - "ty": [ - { - "name": "t_instr_SIZE__set", - "premises": [], - "conclusion": "ctx :- SIZE :: set cty : A => nat : A" - }, - { - "name": "t_instr_SIZE__map", - "premises": [], - "conclusion": "ctx :- SIZE :: map kty vty : A => nat : A" - }, - { - "name": "t_instr_SIZE__list", - "premises": [], - "conclusion": "ctx :- SIZE :: list ty : A => nat : A" - }, - { - "name": "t_instr_SIZE__string", - "premises": [], - "conclusion": "ctx :- SIZE :: string : A => nat : A" - }, - { - "name": "t_instr_SIZE__bytes", - "premises": [], - "conclusion": "ctx :- SIZE :: bytes : A => nat : A" - } - ], - "semantics": [ - { - "name": "bs_SIZE__string", - "premises": [], - "conclusion": "SIZE / s : S => ( length s ) : S" - }, - { - "name": "bs_SIZE__bytes", - "premises": [], - "conclusion": "SIZE / byt : S => ( length byt ) : S" - }, - { - "name": "bs_SIZE__set_nil", - "premises": [], - "conclusion": "SIZE / {} : S => 0 : S" - }, - { - "name": "bs_SIZE__set_cons", - "premises": [ "SIZE / tl : S => z : S" ], - "conclusion": "SIZE / { d ; < tl > } : S => 1 + z : S" - }, - { - "name": "bs_SIZE__map_nil", - "premises": [], - "conclusion": "SIZE / {} : S => 0 : S" - }, - { - "name": "bs_SIZE__map_cons", - "premises": [ "SIZE / m : S => z : S" ], - "conclusion": "SIZE / { Elt d1 d2 ; < m > } : S => 1 + z : S" - }, - { - "name": "bs_SIZE__list_nil", - "premises": [], - "conclusion": "SIZE / {} : S => 0 : S" - }, - { - "name": "bs_SIZE__list_cons", - "premises": [ "SIZE / tl : S => z : S" ], - "conclusion": "SIZE / { d ; < tl > } : S => 1 + z : S" - } - ] - }, - "CAR": { - "op": "CAR", - "op_args": "CAR", - "ty": [ - { - "name": "t_instr_CAR", - "premises": [], - "conclusion": "ctx :- CAR :: pair ty1 ty2 : A => ty1 : A" - } - ], - "semantics": [ - { - "name": "bs_CAR", - "premises": [], - "conclusion": "CAR / ( Pair d1 d2 ) : S => d1 : S" - } - ] - }, - "CDR": { - "op": "CDR", - "op_args": "CDR", - "ty": [ - { - "name": "t_instr_CDR", - "premises": [], - "conclusion": "ctx :- CDR :: pair ty1 ty2 : A => ty2 : A" - } - ], - "semantics": [ - { - "name": "bs_CDR", - "premises": [], - "conclusion": "CDR / ( Pair d1 d2 ) : S => d2 : S" - } - ] - }, - "SOME": { - "op": "SOME", - "op_args": "SOME", - "ty": [ - { - "name": "t_instr_SOME", - "premises": [], - "conclusion": "ctx :- SOME :: ty1 : A => option ty1 : A" - } - ], - "semantics": [ - { - "name": "bs_SOME", - "premises": [], - "conclusion": "SOME / v : S => ( Some v ) : S" - } - ] - }, - "LEFT": { - "op": "LEFT", - "op_args": "LEFT ty2", - "ty": [ - { - "name": "t_instr_LEFT", - "premises": [], - "conclusion": "ctx :- LEFT ty2 :: ty1 : A => or ty1 ty2 : A" - } - ], - "semantics": [ - { - "name": "bs_LEFT", - "premises": [], - "conclusion": "LEFT ty2 / v : S => ( Left v ) : S" - } - ] - }, - "RIGHT": { - "op": "RIGHT", - "op_args": "RIGHT ty1", - "ty": [ - { - "name": "t_instr_RIGHT", - "premises": [], - "conclusion": "ctx :- RIGHT ty1 :: ty2 : A => or ty1 ty2 : A" - } - ], - "semantics": [ - { - "name": "bs_RIGHT", - "premises": [], - "conclusion": "RIGHT ty1 / v : S => ( Right v ) : S" - } - ] - }, - "ADDRESS": { - "op": "ADDRESS", - "op_args": "ADDRESS", - "ty": [ - { - "name": "t_instr_ADDRESS", - "premises": [], - "conclusion": "ctx :- ADDRESS :: contract ty1 : A => address : A" - } - ], - "semantics": [ - { - "name": "bs_ADDRESS", - "premises": [], - "conclusion": "ADDRESS / c : S => address c : S" - } - ] - }, - "CONTRACT": { - "op": "CONTRACT", - "op_args": "CONTRACT ty", - "ty": [ - { - "name": "t_instr_CONTRACT", - "premises": [], - "conclusion": - "ctx :- CONTRACT ty :: address : A => option ( contract ty ) : A" - } - ], - "semantics": [ - { - "name": "bs_CONTRACT__ok", - "premises": [ "get_contract_type addr ty" ], - "conclusion": - "CONTRACT ty / addr : S => Some ( contract ty addr ) : S" - }, - { - "name": "bs_CONTRACT__fail", - "premises": [ "get_contract_type addr ty'", "ty' <> ty" ], - "conclusion": "CONTRACT ty / addr : S => None : S" - } - ] - }, - "SET_DELEGATE": { - "op": "SET_DELEGATE", - "op_args": "SET_DELEGATE", - "ty": [ - { - "name": "t_instr_SET_DELEGATE", - "premises": [], - "conclusion": - "ctx :- SET_DELEGATE :: option key_hash : A => operation : A" - } - ], - "semantics": [ - { - "name": "bs_SET_DELEGATE__set", - "premises": [], - "conclusion": "SET_DELEGATE / Some kh : S => set_delegate kh : S" - }, - { - "name": "bs_SET_DELEGATE__remove", - "premises": [], - "conclusion": "SET_DELEGATE / None : S => remove_delegation : S" - } - ] - }, - "IMPLICIT_ACCOUNT": { - "op": "IMPLICIT_ACCOUNT", - "op_args": "IMPLICIT_ACCOUNT", - "ty": [ - { - "name": "t_instr_IMPLICIT_ACCOUNT", - "premises": [], - "conclusion": - "ctx :- IMPLICIT_ACCOUNT :: key_hash : A => contract unit : A" - } - ], - "semantics": [ - { - "name": "bs_IMPLICIT_ACCOUNT", - "premises": [], - "conclusion": "IMPLICIT_ACCOUNT / s : S => implicit_account s : S" - } - ] - }, - "CHAIN_ID": { - "op": "CHAIN_ID", - "op_args": "CHAIN_ID", - "ty": [ - { - "name": "t_instr_CHAIN_ID", - "premises": [], - "conclusion": "ctx :- CHAIN_ID :: A => chain_id : A" - } - ], - "semantics": [ - { - "name": "bs_CHAIN_ID", - "premises": [], - "conclusion": "CHAIN_ID / S => chain_id : S" - } - ] - }, - "PACK": { - "op": "PACK", - "op_args": "PACK", - "ty": [ - { - "name": "t_instr_PACK", - "premises": [], - "conclusion": "ctx :- PACK :: ty : A => bytes : A" - } - ], - "semantics": [ - { - "name": "bs_PACK", - "premises": [], - "conclusion": "PACK / d : S => pack d : S" - } - ] - }, - "UNPACK": { - "op": "UNPACK", - "op_args": "UNPACK ty", - "ty": [ - { - "name": "t_instr_UNPACK", - "premises": [], - "conclusion": "ctx :- UNPACK ty :: bytes : A => option ty : A" - } - ], - "semantics": [ - { - "name": "bs_UNPACK", - "premises": [], - "conclusion": "UNPACK ty / byt : S => unpack ty byt : S" - } - ] - }, - "EXEC": { - "op": "EXEC", - "op_args": "EXEC", - "ty": [ - { - "name": "t_instr_EXEC", - "premises": [], - "conclusion": "ctx :- EXEC :: ty1 : lambda ty1 ty2 : A => ty2 : A" - } - ], - "semantics": [ - { - "name": "bs_EXEC", - "premises": [ "i / d2 : [] => d3 : []" ], - "conclusion": "EXEC / { i : ty1 -> ty2 } : d2 : S => d3 : S" - } - ] - }, - "LSL": { - "op": "LSL", - "op_args": "LSL", - "ty": [ - { - "name": "t_instr_LSL", - "premises": [], - "conclusion": "ctx :- LSL :: nat : nat : A => nat : A" - } - ], - "semantics": [ - { - "name": "bs_LSL", - "premises": [ "z2 <= 256" ], - "conclusion": "LSL / z1 : z2 : S => ( z1 << z2 ) : S" - }, - { - "name": "bs_LSL__fail", - "premises": [ "z2 > 256" ], - "conclusion": "LSL / z1 : z2 : S => [FAILED]" - } - ] - }, - "LSR": { - "op": "LSR", - "op_args": "LSR", - "ty": [ - { - "name": "t_instr_LSR", - "premises": [], - "conclusion": "ctx :- LSR :: nat : nat : A => nat : A" - } - ], - "semantics": [ - { - "name": "bs_LSR", - "premises": [], - "conclusion": "LSR / z1 : z2 : S => ( z1 >> z2 ) : S" - } - ] - }, - "COMPARE": { - "op": "COMPARE", - "op_args": "COMPARE", - "ty": [ - { - "name": "t_instr_COMPARE", - "premises": [], - "conclusion": "ctx :- COMPARE :: cty : cty : A => int : A" - } - ], - "semantics": [ - { - "name": "bs_COMPARE__num_lt", - "premises": [ "z1 < z2" ], - "conclusion": "COMPARE / z1 : z2 : S => - 1 : S" - }, - { - "name": "bs_COMPARE__num_eq", - "premises": [ "z1 = z2" ], - "conclusion": "COMPARE / z1 : z2 : S => 0 : S" - }, - { - "name": "bs_COMPARE__num_gt", - "premises": [ "z1 > z2" ], - "conclusion": "COMPARE / z1 : z2 : S => 1 : S" - }, - { - "name": "bs_COMPARE__string_lt", - "premises": [ "s < t" ], - "conclusion": "COMPARE / s : t : S => - 1 : S" - }, - { - "name": "bs_COMPARE__string_eq", - "premises": [ "s = t" ], - "conclusion": "COMPARE / s : t : S => 0 : S" - }, - { - "name": "bs_COMPARE__string_gt", - "premises": [ "s > t" ], - "conclusion": "COMPARE / s : t : S => 1 : S" - }, - { - "name": "bs_COMPARE__pair_left_lt", - "premises": [ "COMPARE / d1 : d3 : S => - 1 : S" ], - "conclusion": - "COMPARE / ( Pair d1 d2 ) : ( Pair d3 d4 ) : S => - 1 : S" - }, - { - "name": "bs_COMPARE__pair_left_gt", - "premises": [ "COMPARE / d1 : d3 : S => 1 : S" ], - "conclusion": - "COMPARE / ( Pair d1 d2 ) : ( Pair d3 d4 ) : S => 1 : S" - }, - { - "name": "bs_COMPARE__pair_right", - "premises": [ - "COMPARE / d1 : d3 : S => 0 : S", - "COMPARE / d2 : d4 : S => z : S" - ], - "conclusion": - "COMPARE / ( Pair d1 d2 ) : ( Pair d3 d4 ) : S => z : S" - }, - { - "name": "bs_COMPARE__false_false", - "premises": [], - "conclusion": "COMPARE / False : False : S => 0 : S" - }, - { - "name": "bs_COMPARE__false_true", - "premises": [], - "conclusion": "COMPARE / False : True : S => - 1 : S" - }, - { - "name": "bs_COMPARE__true_true", - "premises": [], - "conclusion": "COMPARE / True : True : S => 0 : S" - }, - { - "name": "bs_COMPARE__true_false", - "premises": [], - "conclusion": "COMPARE / True : False : S => 1 : S" - }, - { - "name": "bs_COMPARE__none_none", - "premises": [], - "conclusion": "COMPARE / None : None : S => 0 : S" - }, - { - "name": "bs_COMPARE__none_some", - "premises": [], - "conclusion": "COMPARE / None : Some d : S => - 1 : S" - }, - { - "name": "bs_COMPARE__some_some", - "premises": [ "COMPARE / d1 : d2 : S => z : S" ], - "conclusion": "COMPARE / Some d1 : Some d2 : S => z : S" - }, - { - "name": "bs_COMPARE__some_none", - "premises": [], - "conclusion": "COMPARE / Some d : None : S => 1 : S" - }, - { - "name": "bs_COMPARE__left_left", - "premises": [ "COMPARE / d1 : d2 : S => z : S" ], - "conclusion": "COMPARE / Left d1 : Left d2 : S => z : S" - }, - { - "name": "bs_COMPARE__left_right", - "premises": [], - "conclusion": "COMPARE / Left d1 : Right d2 : S => - 1 : S" - }, - { - "name": "bs_COMPARE__right_right", - "premises": [ "COMPARE / d1 : d2 : S => z : S" ], - "conclusion": "COMPARE / Right d1 : Right d2 : S => z : S" - }, - { - "name": "bs_COMPARE__right_left", - "premises": [], - "conclusion": "COMPARE / Right d1 : Left d2 : S => 1 : S" - }, - { - "name": "bs_COMPARE__unit_unit", - "premises": [], - "conclusion": "COMPARE / Unit : Unit : S => 0 : S" - } - ] - }, - "CONCAT": { - "op": "CONCAT", - "op_args": "CONCAT", - "ty": [ - { - "name": "t_instr_CONCAT__string", - "premises": [], - "conclusion": "ctx :- CONCAT :: string : string : A => string : A" - }, - { - "name": "t_instr_CONCAT__string_list", - "premises": [], - "conclusion": "ctx :- CONCAT :: list string : A => string : A" - }, - { - "name": "t_instr_CONCAT__bytes", - "premises": [], - "conclusion": "ctx :- CONCAT :: bytes : bytes : A => bytes : A" - }, - { - "name": "t_instr_CONCAT__bytes_list", - "premises": [], - "conclusion": "ctx :- CONCAT :: list bytes : A => bytes : A" - } - ], - "semantics": [ - { - "name": "bs_CONCAT__string", - "premises": [], - "conclusion": "CONCAT / s : t : S => ( s ^ t ) : S" - }, - { - "name": "bs_CONCAT__string_list_nil", - "premises": [], - "conclusion": "CONCAT / {} : S => \\\"\\\" : S" - }, - { - "name": "bs_CONCAT__string_list_cons", - "premises": [ "CONCAT / tl : S => t : S" ], - "conclusion": "CONCAT / { s ; < tl > } : S => ( s ^ t ) : S" - }, - { - "name": "bs_CONCAT__bytes", - "premises": [], - "conclusion": "CONCAT / byt1 : byt2 : S => ( byt1 ^ byt2 ) : S" - }, - { - "name": "bs_CONCAT__bytes_list_nil", - "premises": [], - "conclusion": "CONCAT / {} : byt1 : S => 0x : S" - }, - { - "name": "bs_CONCAT__bytes_list_cons", - "premises": [ "CONCAT / tl : byt1 : S => byt2 : S" ], - "conclusion": - "CONCAT / { byt1 ; < tl > } : S => ( byt1 ^ byt2 ) : S" - } - ] - }, - "PAIR": { - "op": "PAIR", - "op_args": "PAIR", - "ty": [ - { - "name": "t_instr_PAIR", - "premises": [], - "conclusion": "ctx :- PAIR :: ty1 : ty2 : A => pair ty1 ty2 : A" - } - ], - "semantics": [ - { - "name": "bs_PAIR", - "premises": [], - "conclusion": "PAIR / d1 : d2 : S => ( Pair d1 d2 ) : S" - } - ] - }, - "PAIRN": { - "op": "PAIRN", - "op_args": "PAIR n", - "ty": [ - { - "name": "t_instr_PAIRN", - "premises": [], - "conclusion": - "ctx :- PAIR n :: ty1 : .... : tyN : A => pair ty1 .... tyN : A" - } - ], - "semantics": [ - { - "name": "bs_PAIRN", - "premises": [], - "conclusion": - "PAIR n / d1 : .... : dN : S => ( Pair d1 .... dN ) : S" - } - ] - }, - "UNPAIR": { - "op": "UNPAIR", - "op_args": "UNPAIR", - "ty": [ - { - "name": "t_instr_UNPAIR", - "premises": [], - "conclusion": "ctx :- UNPAIR :: pair ty1 ty2 : A => ty1 : ty2 : A" - } - ], - "semantics": [ - { - "name": "bs_UNPAIR", - "premises": [], - "conclusion": "UNPAIR / ( Pair d1 d2 ) : S => d1 : d2 : S" - } - ] - }, - "UNPAIRN": { - "op": "UNPAIRN", - "op_args": "UNPAIR n", - "ty": [ - { - "name": "t_instr_UNPAIRN", - "premises": [], - "conclusion": - "ctx :- UNPAIR n :: pair ty1 .... tyN : A => ty1 : .... : tyN : A" - } - ], - "semantics": [ - { - "name": "bs_UNPAIRN", - "premises": [], - "conclusion": - "UNPAIR n / ( Pair d1 .... dN ) : S => d1 : .... : dN : S" - } - ] - }, - "GETN": { - "op": "GETN", - "op_args": "GET n", - "ty": [ - { - "name": "t_instr_GETN__0", - "premises": [], - "conclusion": "ctx :- GET ( 0 ) :: ty : A => ty : A" - }, - { - "name": "t_instr_GETN__even", - "premises": [], - "conclusion": - "ctx :- GET ( 2 * n ) :: pair ty0 .. tyN ty' : A => ty' : A" - }, - { - "name": "t_instr_GETN__odd", - "premises": [], - "conclusion": - "ctx :- GET ( 2 * n + 1 ) :: pair ty0 .. tyN ty' ty'' : A => ty' : A" - } - ], - "semantics": [ - { - "name": "bs_GETN__0", - "premises": [], - "conclusion": "GET 0 / d : S => d : S" - }, - { - "name": "bs_GETN__even", - "premises": [], - "conclusion": "GET ( 2 * n ) / Pair d0 .. dN d' : S => d' : S" - }, - { - "name": "bs_GETN__odd", - "premises": [], - "conclusion": - "GET ( 2 * n + 1 ) / Pair d0 .. dN d' d'' : S => d' : S" - } - ] - }, - "UPDATEN": { - "op": "UPDATEN", - "op_args": "UPDATE n", - "ty": [ - { - "name": "t_instr_UPDATEN__0", - "premises": [], - "conclusion": "ctx :- UPDATE 0 :: ty1 : ty2 : A => ty1 : A" - }, - { - "name": "t_instr_UPDATEN__even", - "premises": [], - "conclusion": - "ctx :- UPDATE ( 2 * n ) :: ty' : pair ty0 .. tyN ty'' : A => pair ty0 .. tyN ty' : A" - }, - { - "name": "t_instr_UPDATEN__odd", - "premises": [], - "conclusion": - "ctx :- UPDATE ( 2 * n + 1 ) :: ty' : pair ty0 .. tyN ty'' ty''' : A => pair ty0 .. tyN ty' ty''' : A" - } - ], - "semantics": [ - { - "name": "bs_UPDATEN__0", - "premises": [], - "conclusion": "UPDATE 0 / d1 : d2 : S => d1 : S" - }, - { - "name": "bs_UPDATEN__even", - "premises": [], - "conclusion": - "UPDATE ( 2 * n ) / d' : Pair d0 .. dN d'' : S => Pair d0 .. dN d' : S" - }, - { - "name": "bs_UPDATEN__odd", - "premises": [], - "conclusion": - "UPDATE ( 2 * n + 1 ) / d' : Pair d0 .. dN d'' d''' : S => Pair d0 .. dN d' d''' : S" - } - ] - }, - "MEM": { - "op": "MEM", - "op_args": "MEM", - "ty": [ - { - "name": "t_instr_MEM__set", - "premises": [], - "conclusion": "ctx :- MEM :: cty : set cty : A => bool : A" - }, - { - "name": "t_instr_MEM__map", - "premises": [], - "conclusion": "ctx :- MEM :: kty : map kty vty : A => bool : A" - }, - { - "name": "t_instr_MEM__big_map", - "premises": [], - "conclusion": "ctx :- MEM :: kty : big_map kty vty : A => bool : A" - } - ], - "semantics": [ - { - "name": "bs_MEM__set_empty", - "premises": [], - "conclusion": "MEM / x : {} : S => False : S" - }, - { - "name": "bs_MEM__set_later", - "premises": [ - "COMPARE / x : y : [] => 1 : []", "MEM / x : tl : S => b : S" - ], - "conclusion": "MEM / x : { y ; < tl > } : S => b : S" - }, - { - "name": "bs_MEM__set_found", - "premises": [ "COMPARE / x : y : [] => 0 : []" ], - "conclusion": "MEM / x : { y ; < tl > } : S => True : S" - }, - { - "name": "bs_MEM__set_nexists", - "premises": [ "COMPARE / x : y : [] => - 1 : []" ], - "conclusion": "MEM / x : { y ; < tl > } : S => False : S" - }, - { - "name": "bs_MEM__map_empty", - "premises": [], - "conclusion": "MEM / x : {} : S => False : S" - }, - { - "name": "bs_MEM__map_later", - "premises": [ - "COMPARE / x : k : [] => 1 : []", "MEM / x : m : S => b : S" - ], - "conclusion": "MEM / x : { Elt k v ; < m > } : S => b : S" - }, - { - "name": "bs_MEM__map_now", - "premises": [ "COMPARE / x : k : [] => 0 : []" ], - "conclusion": "MEM / x : { Elt k v ; < m > } : S => True : S" - }, - { - "name": "bs_MEM__map_nexists", - "premises": [ "COMPARE / x : k : [] => - 1 : []" ], - "conclusion": "MEM / x : { Elt k v ; < m > } : S => False : S" - } - ] - }, - "GET": { - "op": "GET", - "op_args": "GET", - "ty": [ - { - "name": "t_instr_GET__map", - "premises": [], - "conclusion": - "ctx :- GET :: kty : map kty vty : A => option vty : A" - }, - { - "name": "t_instr_GET__big_map", - "premises": [], - "conclusion": - "ctx :- GET :: kty : big_map kty vty : A => option vty : A" - } - ], - "semantics": [ - { - "name": "bs_GET__empty", - "premises": [], - "conclusion": "GET / x : {} : S => None : S" - }, - { - "name": "bs_GET__later", - "premises": [ - "COMPARE / x : k : [] => 1 : []", "GET / x : m : S => opt_y : S" - ], - "conclusion": "GET / x : { Elt k v ; < m > } : S => opt_y : S" - }, - { - "name": "bs_GET__now", - "premises": [ "COMPARE / x : k : [] => 0 : []" ], - "conclusion": "GET / x : { Elt k v ; < m > } : S => Some v : S" - }, - { - "name": "bs_GET__nexists", - "premises": [ "COMPARE / x : k : [] => - 1 : []" ], - "conclusion": "GET / x : { Elt k v ; < m > } : S => None : S" - } - ] - }, - "GET_AND_UPDATE": { - "op": "GET_AND_UPDATE", - "op_args": "GET_AND_UPDATE", - "ty": [ - { - "name": "t_instr_GET_AND_UPDATE__map", - "premises": [], - "conclusion": - "ctx :- GET_AND_UPDATE :: kty : option vty : map kty vty : A => option vty : map kty vty : A" - }, - { - "name": "t_instr_GET_AND_UPDATE___big_map", - "premises": [], - "conclusion": - "ctx :- GET_AND_UPDATE :: kty : option vty : big_map kty vty : A => option vty : big_map kty vty : A" - } - ], - "semantics": [ - { - "name": "bs_GET_AND_UPDATE__empty_none", - "premises": [], - "conclusion": "GET_AND_UPDATE / x : None : {} : S => None : {} : S" - }, - { - "name": "bs_GET_AND_UPDATE__empty_some", - "premises": [], - "conclusion": - "GET_AND_UPDATE / x : Some y : {} : S => None : { Elt x y } : S" - }, - { - "name": "bs_GET_AND_UPDATE__later", - "premises": [ - "COMPARE / x : k : [] => 1 : []", - "GET_AND_UPDATE / x : opt_y : m : S => opt_y' : m' : S" - ], - "conclusion": - "GET_AND_UPDATE / x : opt_y : { Elt k v ; < m > } : S => opt_y' : { Elt k v ; < m' > } : S" - }, - { - "name": "bs_GET_AND_UPDATE__now_none", - "premises": [ "COMPARE / x : k : [] => 0 : []" ], - "conclusion": - "GET_AND_UPDATE / x : None : { Elt k v ; < m > } : S => Some v : m : S" - }, - { - "name": "bs_GET_AND_UPDATE__now_some", - "premises": [ "COMPARE / x : k : [] => 0 : []" ], - "conclusion": - "GET_AND_UPDATE / x : Some y : { Elt k v ; < m > } : S => Some v : { Elt k y ; < m > } : S" - }, - { - "name": "bs_GET_AND_UPDATE__nexists_none", - "premises": [ "COMPARE / x : k : [] => - 1 : []" ], - "conclusion": - "GET_AND_UPDATE / x : None : { Elt k v ; < m > } : S => None : { Elt k v ; < m > } : S" - }, - { - "name": "bs_GET_AND_UPDATE__nexists_some", - "premises": [ "COMPARE / x : k : [] => - 1 : []" ], - "conclusion": - "GET_AND_UPDATE / x : Some y : { Elt k v ; < m > } : S => None : { Elt x y ; < { Elt k v ; < m > } > } : S" - } - ] - }, - "CONS": { - "op": "CONS", - "op_args": "CONS", - "ty": [ - { - "name": "t_instr_CONS", - "premises": [], - "conclusion": "ctx :- CONS :: ty1 : list ty1 : A => list ty1 : A" - } - ], - "semantics": [ - { - "name": "bs_CONS", - "premises": [], - "conclusion": "CONS / d : tl : S => { d ; < tl > } : S" - } - ] - }, - "DUP": { - "op": "DUP", - "op_args": "DUP", - "ty": [ - { - "name": "t_instr_DUP", - "premises": [], - "conclusion": "ctx :- DUP :: ty1 : A => ty1 : ty1 : A" - } - ], - "semantics": [ - { - "name": "bs_DUP", - "premises": [], - "conclusion": "DUP / d : S => d : d : S" - } - ] - }, - "DUPN": { - "op": "DUPN", - "op_args": "DUP n", - "ty": [ - { - "name": "t_instr_DUPN", - "premises": [ "1 + length A = n" ], - "conclusion": "ctx :- DUP n :: A @ ty1 : B => ty1 : A @ ty1 : B" - } - ], - "semantics": [ - { - "name": "bs_DUPN", - "premises": [ "1 + length S1 = n" ], - "conclusion": "DUP n / S1 ++ d : S2 => d : S1 ++ d : S2" - } - ] - }, - "SWAP": { - "op": "SWAP", - "op_args": "SWAP", - "ty": [ - { - "name": "t_instr_SWAP", - "premises": [], - "conclusion": "ctx :- SWAP :: ty1 : ty2 : A => ty2 : ty1 : A" - } - ], - "semantics": [ - { - "name": "bs_SWAP", - "premises": [], - "conclusion": "SWAP / d1 : d2 : S => d2 : d1 : S" - } - ] - }, - "SLICE": { - "op": "SLICE", - "op_args": "SLICE", - "ty": [ - { - "name": "t_instr_SLICE__string", - "premises": [], - "conclusion": - "ctx :- SLICE :: nat : nat : string : A => option string : A" - }, - { - "name": "t_instr_SLICE__bytes", - "premises": [], - "conclusion": - "ctx :- SLICE :: nat : nat : bytes : A => option bytes : A" - } - ], - "semantics": [ - { - "name": "bs_SLICE__string_ok", - "premises": [ "offset + len < length s" ], - "conclusion": - "SLICE / offset : len : s : S => Some ( slice s offset len ) : S" - }, - { - "name": "bs_SLICE__string_fail", - "premises": [ "offset + len >= length s" ], - "conclusion": "SLICE / offset : len : s : S => None : S" - }, - { - "name": "bs_SLICE__bytes_ok", - "premises": [ "offset + len < length byt" ], - "conclusion": - "SLICE / offset : len : byt : S => Some ( slice byt offset len ) : S" - }, - { - "name": "bs_SLICE__bytes_fail", - "premises": [ "offset + len >= length byt" ], - "conclusion": "SLICE / offset : len : byt : S => None : S" - } - ] - }, - "UPDATE": { - "op": "UPDATE", - "op_args": "UPDATE", - "ty": [ - { - "name": "t_instr_UPDATE__set", - "premises": [], - "conclusion": - "ctx :- UPDATE :: cty : bool : set cty : A => set cty : A" - }, - { - "name": "t_instr_UPDATE__map", - "premises": [], - "conclusion": - "ctx :- UPDATE :: kty : option vty : map kty vty : A => map kty vty : A" - }, - { - "name": "t_instr_UPDATE__big_map", - "premises": [], - "conclusion": - "ctx :- UPDATE :: kty : option vty : big_map kty vty : A => big_map kty vty : A" - } - ], - "semantics": [ - { - "name": "bs_UPDATE__set_false", - "premises": [], - "conclusion": "UPDATE / x : False : {} : S => {} : S" - }, - { - "name": "bs_UPDATE__set_add_nexists", - "premises": [], - "conclusion": "UPDATE / x : True : {} : S => { x } : S" - }, - { - "name": "bs_UPDATE__set_cont", - "premises": [ - "COMPARE / x : y : [] => 1 : []", - "UPDATE / x : b : tl : S => tl' : S" - ], - "conclusion": - "UPDATE / x : b : { y ; < tl > } : S => { y ; < tl' > } : S" - }, - { - "name": "bs_UPDATE__set_remove", - "premises": [ "COMPARE / x : y : [] => 0 : []" ], - "conclusion": "UPDATE / x : False : { y ; < tl > } : S => tl : S" - }, - { - "name": "bs_UPDATE__set_exists", - "premises": [ "COMPARE / x : y : [] => 0 : []" ], - "conclusion": - "UPDATE / x : True : { y ; < tl > } : S => { y ; < tl > } : S" - }, - { - "name": "bs_UPDATE__set_remove_nexists", - "premises": [ "COMPARE / x : y : [] => - 1 : []" ], - "conclusion": - "UPDATE / x : False : { y ; < tl > } : S => { y ; < tl > } : S" - }, - { - "name": "bs_UPDATE__set_add", - "premises": [ "COMPARE / x : y : [] => - 1 : []" ], - "conclusion": - "UPDATE / x : True : { y ; < tl > } : S => { x ; < { y ; < tl > } > } : S" - }, - { - "name": "bs_UPDATE__map_false", - "premises": [], - "conclusion": "UPDATE / x : None : {} : S => {} : S" - }, - { - "name": "bs_UPDATE__map_add_nexists", - "premises": [], - "conclusion": "UPDATE / x : Some y : {} : S => { Elt x y } : S" - }, - { - "name": "bs_UPDATE__map_cont", - "premises": [ - "COMPARE / x : k : [] => 1 : []", - "UPDATE / x : opt_y : m : S => m' : S" - ], - "conclusion": - "UPDATE / x : opt_y : { Elt k v ; < m > } : S => { Elt k v ; < m' > } : S" - }, - { - "name": "bs_UPDATE__map_remove", - "premises": [ "COMPARE / x : k : [] => 0 : []" ], - "conclusion": - "UPDATE / x : None : { Elt k v ; < m > } : S => m : S" - }, - { - "name": "bs_UPDATE__map_exists", - "premises": [ "COMPARE / x : k : [] => 0 : []" ], - "conclusion": - "UPDATE / x : Some y : { Elt k v ; < m > } : S => { Elt k y ; < m > } : S" - }, - { - "name": "bs_UPDATE__map_remove_nexists", - "premises": [ "COMPARE / x : k : [] => - 1 : []" ], - "conclusion": - "UPDATE / x : None : { Elt k v ; < m > } : S => { Elt k v ; < m > } : S" - }, - { - "name": "bs_UPDATE__map_add", - "premises": [ "COMPARE / x : k : [] => - 1 : []" ], - "conclusion": - "UPDATE / x : Some y : { Elt k v ; < m > } : S => { Elt x y ; < { Elt k v ; < m > } > } : S" - } - ] - }, - "TRANSFER_TOKENS": { - "op": "TRANSFER_TOKENS", - "op_args": "TRANSFER_TOKENS", - "ty": [ - { - "name": "t_instr_TRANSFER_TOKENS", - "premises": [], - "conclusion": - "ctx :- TRANSFER_TOKENS :: ty : mutez : contract ty : A => operation : A" - } - ], - "semantics": [ - { - "name": "bs_TRANSFER_TOKENS", - "premises": [], - "conclusion": - "TRANSFER_TOKENS / d : z : c : S => transfer_tokens d z c : S" - } - ] - }, - "CHECK_SIGNATURE": { - "op": "CHECK_SIGNATURE", - "op_args": "CHECK_SIGNATURE", - "ty": [ - { - "name": "t_instr_CHECK_SIGNATURE", - "premises": [], - "conclusion": - "ctx :- CHECK_SIGNATURE :: key : signature : bytes : A => bool : A" - } - ], - "semantics": [ - { - "name": "bs_CHECK_SIGNATURE", - "premises": [], - "conclusion": - "CHECK_SIGNATURE / s : sig : byt : S => check_signature s sig byt : S" - } - ] - }, - "ADD": { - "op": "ADD", - "op_args": "ADD", - "ty": [ - { - "name": "t_instr_ADD__nat_nat", - "premises": [], - "conclusion": "ctx :- ADD :: nat : nat : A => nat : A" - }, - { - "name": "t_instr_ADD__nat_int", - "premises": [], - "conclusion": "ctx :- ADD :: nat : int : A => int : A" - }, - { - "name": "t_instr_ADD__int_nat", - "premises": [], - "conclusion": "ctx :- ADD :: int : nat : A => int : A" - }, - { - "name": "t_instr_ADD__int_int", - "premises": [], - "conclusion": "ctx :- ADD :: int : int : A => int : A" - }, - { - "name": "t_instr_ADD__timestamp_int", - "premises": [], - "conclusion": "ctx :- ADD :: timestamp : int : A => timestamp : A" - }, - { - "name": "t_instr_ADD__int_timestamp", - "premises": [], - "conclusion": "ctx :- ADD :: int : timestamp : A => timestamp : A" - }, - { - "name": "t_instr_ADD__mutez_mutez_mutez", - "premises": [], - "conclusion": "ctx :- ADD :: mutez : mutez : A => mutez : A" - }, - { - "name": "t_instr_ADD__g1", - "premises": [], - "conclusion": - "ctx :- ADD :: bls12_381_g1 : bls12_381_g1 : A => bls12_381_g1 : A" - }, - { - "name": "t_instr_ADD__g2", - "premises": [], - "conclusion": - "ctx :- ADD :: bls12_381_g2 : bls12_381_g2 : A => bls12_381_g2 : A" - }, - { - "name": "t_instr_ADD__fr", - "premises": [], - "conclusion": - "ctx :- ADD :: bls12_381_fr : bls12_381_fr : A => bls12_381_fr : A" - } - ], - "semantics": [ - { - "name": "bs_ADD", - "premises": [], - "conclusion": "ADD / z1 : z2 : S => ( z1 + z2 ) : S" - } - ] - }, - "SUB": { - "op": "SUB", - "op_args": "SUB", - "ty": [ - { - "name": "t_instr_SUB__nat_nat", - "premises": [], - "conclusion": "ctx :- SUB :: nat : nat : A => int : A" - }, - { - "name": "t_instr_SUB__nat_int", - "premises": [], - "conclusion": "ctx :- SUB :: nat : int : A => int : A" - }, - { - "name": "t_instr_SUB__int_nat", - "premises": [], - "conclusion": "ctx :- SUB :: int : nat : A => int : A" - }, - { - "name": "t_instr_SUB__int_int", - "premises": [], - "conclusion": "ctx :- SUB :: int : int : A => int : A" - }, - { - "name": "t_instr_SUB__timestamp_int", - "premises": [], - "conclusion": "ctx :- SUB :: timestamp : int : A => timestamp : A" - }, - { - "name": "t_instr_SUB__timestamp_timestamp", - "premises": [], - "conclusion": "ctx :- SUB :: timestamp : timestamp : A => int : A" - }, - { - "name": "t_instr_SUB__mutez_mutez", - "premises": [], - "conclusion": "ctx :- SUB :: mutez : mutez : A => mutez : A" - } - ], - "semantics": [ - { - "name": "bs_SUB", - "premises": [], - "conclusion": "SUB / z1 : z2 : S => ( z1 - z2 ) : S" - } - ] - }, - "MUL": { - "op": "MUL", - "op_args": "MUL", - "ty": [ - { - "name": "t_instr_MUL__nat_nat", - "premises": [], - "conclusion": "ctx :- MUL :: nat : nat : A => nat : A" - }, - { - "name": "t_instr_MUL__nat_int", - "premises": [], - "conclusion": "ctx :- MUL :: nat : int : A => int : A" - }, - { - "name": "t_instr_MUL__int_nat", - "premises": [], - "conclusion": "ctx :- MUL :: int : nat : A => int : A" - }, - { - "name": "t_instr_MUL__int_int", - "premises": [], - "conclusion": "ctx :- MUL :: int : int : A => int : A" - }, - { - "name": "t_instr_MUL__mutez_nat", - "premises": [], - "conclusion": "ctx :- MUL :: mutez : nat : A => mutez : A" - }, - { - "name": "t_instr_MUL__nat_mutez", - "premises": [], - "conclusion": "ctx :- MUL :: nat : mutez : A => mutez : A" - }, - { - "name": "t_instr_MUL__g1_fr", - "premises": [], - "conclusion": - "ctx :- MUL :: bls12_381_g1 : bls12_381_fr : A => bls12_381_g1 : A" - }, - { - "name": "t_instr_MUL__g2_fr", - "premises": [], - "conclusion": - "ctx :- MUL :: bls12_381_g2 : bls12_381_fr : A => bls12_381_g2 : A" - }, - { - "name": "t_instr_MUL__fr_fr", - "premises": [], - "conclusion": - "ctx :- MUL :: bls12_381_fr : bls12_381_fr : A => bls12_381_fr : A" - }, - { - "name": "t_instr_MUL__nat_fr", - "premises": [], - "conclusion": - "ctx :- MUL :: nat : bls12_381_fr : A => bls12_381_fr : A" - }, - { - "name": "t_instr_MUL__int_fr", - "premises": [], - "conclusion": - "ctx :- MUL :: int : bls12_381_fr : A => bls12_381_fr : A" - }, - { - "name": "t_instr_MUL__fr_nat", - "premises": [], - "conclusion": - "ctx :- MUL :: bls12_381_fr : nat : A => bls12_381_fr : A" - }, - { - "name": "t_instr_MUL__fr_int", - "premises": [], - "conclusion": - "ctx :- MUL :: bls12_381_fr : int : A => bls12_381_fr : A" - } - ], - "semantics": [ - { - "name": "bs_MUL", - "premises": [], - "conclusion": "MUL / z1 : z2 : S => ( z1 * z2 ) : S" - } - ] - }, - "EDIV": { - "op": "EDIV", - "op_args": "EDIV", - "ty": [ - { - "name": "t_instr_EDIV__nat_nat", - "premises": [], - "conclusion": - "ctx :- EDIV :: nat : nat : A => option ( pair nat nat ) : A" - }, - { - "name": "t_instr_EDIV__nat_int", - "premises": [], - "conclusion": - "ctx :- EDIV :: nat : int : A => option ( pair int nat ) : A" - }, - { - "name": "t_instr_EDIV__int_nat", - "premises": [], - "conclusion": - "ctx :- EDIV :: int : nat : A => option ( pair int nat ) : A" - }, - { - "name": "t_instr_EDIV__int_int", - "premises": [], - "conclusion": - "ctx :- EDIV :: int : int : A => option ( pair int nat ) : A" - }, - { - "name": "t_instr_EDIV__mutez_nat", - "premises": [], - "conclusion": - "ctx :- EDIV :: mutez : nat : A => option ( pair mutez mutez ) : A" - }, - { - "name": "t_instr_EDIV__mutez_mutez", - "premises": [], - "conclusion": - "ctx :- EDIV :: mutez : mutez : A => option ( pair nat mutez ) : A" - } - ], - "semantics": [ - { - "name": "bs_EDIV__0", - "premises": [], - "conclusion": "EDIV / z1 : 0 : S => None : S" - }, - { - "name": "bs_EDIV", - "premises": [ "z2 <> 0" ], - "conclusion": - "EDIV / z1 : z2 : S => Some ( Pair ( z1 / z2 ) ( z1 % z2 ) ) : S" - } - ] - }, - "EQ": { - "op": "EQ", - "op_args": "EQ", - "ty": [ - { - "name": "t_instr_EQ", - "premises": [], - "conclusion": "ctx :- EQ :: int : A => bool : A" - } - ], - "semantics": [ - { - "name": "bs_EQ__tt", - "premises": [], - "conclusion": "EQ / 0 : S => True : S" - }, - { - "name": "bs_EQ__ff", - "premises": [ "z <> 0" ], - "conclusion": "EQ / z : S => False : S" - } - ] - }, - "NEQ": { - "op": "NEQ", - "op_args": "NEQ", - "ty": [ - { - "name": "t_instr_NEQ", - "premises": [], - "conclusion": "ctx :- NEQ :: int : A => bool : A" - } - ], - "semantics": [ - { - "name": "bs_NEQ__ff", - "premises": [], - "conclusion": "NEQ / 0 : S => False : S" - }, - { - "name": "bs_NEQ__tt", - "premises": [ "z <> 0" ], - "conclusion": "NEQ / z : S => True : S" - } - ] - }, - "LT": { - "op": "LT", - "op_args": "LT", - "ty": [ - { - "name": "t_instr_LT", - "premises": [], - "conclusion": "ctx :- LT :: int : A => bool : A" - } - ], - "semantics": [ - { - "name": "bs_LT__tt", - "premises": [ "z < 0" ], - "conclusion": "LT / z : S => True : S" - }, - { - "name": "bs_LT__ff", - "premises": [ "z >= 0" ], - "conclusion": "LT / z : S => False : S" - } - ] - }, - "GT": { - "op": "GT", - "op_args": "GT", - "ty": [ - { - "name": "t_instr_GT", - "premises": [], - "conclusion": "ctx :- GT :: int : A => bool : A" - } - ], - "semantics": [ - { - "name": "bs_GT__tt", - "premises": [ "z > 0" ], - "conclusion": "GT / z : S => True : S" - }, - { - "name": "bs_GT__ff", - "premises": [ "z <= 0" ], - "conclusion": "GT / z : S => False : S" - } - ] - }, - "LE": { - "op": "LE", - "op_args": "LE", - "ty": [ - { - "name": "t_instr_LE", - "premises": [], - "conclusion": "ctx :- LE :: int : A => bool : A" - } - ], - "semantics": [ - { - "name": "bs_LE__tt", - "premises": [ "z <= 0" ], - "conclusion": "LE / z : S => True : S" - }, - { - "name": "bs_LE__ff", - "premises": [ "z > 0" ], - "conclusion": "LE / z : S => False : S" - } - ] - }, - "GE": { - "op": "GE", - "op_args": "GE", - "ty": [ - { - "name": "t_instr_GE", - "premises": [], - "conclusion": "ctx :- GE :: int : A => bool : A" - } - ], - "semantics": [ - { - "name": "bs_GE__tt", - "premises": [ "z >= 0" ], - "conclusion": "GE / z : S => True : S" - }, - { - "name": "bs_GE__ff", - "premises": [ "z < 0" ], - "conclusion": "GE / z : S => False : S" - } - ] - }, - "OR": { - "op": "OR", - "op_args": "OR", - "ty": [ - { - "name": "t_instr_OR__bool", - "premises": [], - "conclusion": "ctx :- OR :: bool : bool : A => bool : A" - }, - { - "name": "t_instr_OR__nat", - "premises": [], - "conclusion": "ctx :- OR :: nat : nat : A => nat : A" - } - ], - "semantics": [ - { - "name": "bs_OR__1", - "premises": [], - "conclusion": "OR / True : x : S => True : S" - }, - { - "name": "bs_OR__2", - "premises": [], - "conclusion": "OR / x : True : S => True : S" - }, - { - "name": "bs_OR__3", - "premises": [], - "conclusion": "OR / False : False : S => False : S" - }, - { - "name": "bs_OR__bit", - "premises": [], - "conclusion": "OR / z1 : z2 : S => ( z1 | z2 ) : S" - } - ] - }, - "AND": { - "op": "AND", - "op_args": "AND", - "ty": [ - { - "name": "t_instr_AND__bool", - "premises": [], - "conclusion": "ctx :- AND :: bool : bool : A => bool : A" - }, - { - "name": "t_instr_AND__nat_nat", - "premises": [], - "conclusion": "ctx :- AND :: nat : nat : A => nat : A" - }, - { - "name": "t_instr_AND__int_nat", - "premises": [], - "conclusion": "ctx :- AND :: int : nat : A => nat : A" - } - ], - "semantics": [ - { - "name": "bs_AND__1", - "premises": [], - "conclusion": "AND / True : True : S => True : S" - }, - { - "name": "bs_AND__2", - "premises": [], - "conclusion": "AND / False : x : S => False : S" - }, - { - "name": "bs_AND__3", - "premises": [], - "conclusion": "AND / x : False : S => False : S" - }, - { - "name": "bs_AND__bit", - "premises": [], - "conclusion": "AND / z1 : z2 : S => ( z1 & z2 ) : S" - } - ] - }, - "XOR": { - "op": "XOR", - "op_args": "XOR", - "ty": [ - { - "name": "t_instr_XOR__bool", - "premises": [], - "conclusion": "ctx :- XOR :: bool : bool : A => bool : A" - }, - { - "name": "t_instr_XOR__nat", - "premises": [], - "conclusion": "ctx :- XOR :: nat : nat : A => nat : A" - } - ], - "semantics": [ - { - "name": "bs_XOR__1", - "premises": [], - "conclusion": "XOR / True : True : S => False : S" - }, - { - "name": "bs_XOR__2", - "premises": [], - "conclusion": "XOR / False : True : S => True : S" - }, - { - "name": "bs_XOR__3", - "premises": [], - "conclusion": "XOR / True : False : S => True : S" - }, - { - "name": "bs_XOR__4", - "premises": [], - "conclusion": "XOR / False : False : S => False : S" - }, - { - "name": "bs_XOR__bit", - "premises": [], - "conclusion": "XOR / z1 : z2 : S => ( z1 ^ z2 ) : S" - } - ] - }, - "BLAKE2B": { - "op": "BLAKE2B", - "op_args": "BLAKE2B", - "ty": [ - { - "name": "t_instr_BLAKE2B", - "premises": [], - "conclusion": "ctx :- BLAKE2B :: bytes : A => bytes : A" - } - ], - "semantics": [ - { - "name": "bs_BLAKE2B", - "premises": [], - "conclusion": "BLAKE2B / byt : S => hash_blake2b byt : S" - } - ] - }, - "SHA256": { - "op": "SHA256", - "op_args": "SHA256", - "ty": [ - { - "name": "t_instr_SHA256", - "premises": [], - "conclusion": "ctx :- SHA256 :: bytes : A => bytes : A" - } - ], - "semantics": [ - { - "name": "bs_SHA256", - "premises": [], - "conclusion": "SHA256 / byt : S => hash_sha256 byt : S" - } - ] - }, - "SHA512": { - "op": "SHA512", - "op_args": "SHA512", - "ty": [ - { - "name": "t_instr_SHA512", - "premises": [], - "conclusion": "ctx :- SHA512 :: bytes : A => bytes : A" - } - ], - "semantics": [ - { - "name": "bs_SHA512", - "premises": [], - "conclusion": "SHA512 / byt : S => hash_sha512 byt : S" - } - ] - }, - "KECCAK": { - "op": "KECCAK", - "op_args": "KECCAK", - "ty": [ - { - "name": "t_instr_KECCAK", - "premises": [], - "conclusion": "ctx :- KECCAK :: bytes : A => bytes : A" - } - ], - "semantics": [ - { - "name": "bs_KECCAK", - "premises": [], - "conclusion": "KECCAK / byt : S => hash_keccak byt : S" - } - ] - }, - "SHA3": { - "op": "SHA3", - "op_args": "SHA3", - "ty": [ - { - "name": "t_instr_SHA3", - "premises": [], - "conclusion": "ctx :- SHA3 :: bytes : A => bytes : A" - } - ], - "semantics": [ - { - "name": "bs_SHA3", - "premises": [], - "conclusion": "SHA3 / byt : S => hash_sha3 byt : S" - } - ] - }, - "SAPLING_VERIFY_UPDATE": { - "op": "SAPLING_VERIFY_UPDATE", - "op_args": "SAPLING_VERIFY_UPDATE", - "ty": [ - { - "name": "t_instr_SAPLING_VERIFY_UPDATE", - "premises": [], - "conclusion": - "ctx :- SAPLING_VERIFY_UPDATE :: sapling_transaction ms : sapling_state ms : A => option ( pair int ( sapling_state ms ) ) : A" - } - ], - "semantics": [ - { - "name": "bs_SAPLING_VERIFY_UPDATE__some", - "premises": [ "sapling_verify_update ( t , s , b , s' ) = True" ], - "conclusion": - "SAPLING_VERIFY_UPDATE / t : s : S => Some ( Pair b s' ) : S" - }, - { - "name": "bs_SAPLING_VERIFY_UPDATE__none", - "premises": [ "sapling_verify_update ( t , s , b , s' ) = False" ], - "conclusion": "SAPLING_VERIFY_UPDATE / t : s : S => None : S" - } - ] - }, - "SAPLING_EMPTY_STATE": { - "op": "SAPLING_EMPTY_STATE", - "op_args": "SAPLING_EMPTY_STATE ms", - "ty": [ - { - "name": "t_instr_SAPLING_EMPTY_STATE", - "premises": [], - "conclusion": - "ctx :- SAPLING_EMPTY_STATE ms :: A => sapling_state ms : A" - } - ], - "semantics": [ - { - "name": "bs_SAPLING_EMPTY_STATE", - "premises": [], - "conclusion": "SAPLING_EMPTY_STATE n / S => {} : S" - } - ] - }, - "TICKET": { - "op": "TICKET", - "op_args": "TICKET", - "ty": [ - { - "name": "t_instr_TICKET", - "premises": [], - "conclusion": "ctx :- TICKET :: cty : nat : A => ticket cty : A" - } - ], - "semantics": [ - { - "name": "bs_TICKET", - "premises": [], - "conclusion": "TICKET / x : n : S => Pair ( address self ) x n : S" - } - ] - }, - "READ_TICKET": { - "op": "READ_TICKET", - "op_args": "READ_TICKET", - "ty": [ - { - "name": "t_instr_READ_TICKET", - "premises": [], - "conclusion": - "ctx :- READ_TICKET :: ticket cty : A => pair address cty nat : ticket cty : A" - } - ], - "semantics": [ - { - "name": "bs_READ_TICKET", - "premises": [], - "conclusion": - "READ_TICKET / Pair s x n : S => Pair s x n : Pair s x n : S" - } - ] - }, - "SPLIT_TICKET": { - "op": "SPLIT_TICKET", - "op_args": "SPLIT_TICKET", - "ty": [ - { - "name": "t_instr_SPLIT_TICKET", - "premises": [], - "conclusion": - "ctx :- SPLIT_TICKET :: ticket cty : pair nat nat : A => option ( pair ( ticket cty ) ( ticket cty ) ) : A" - } - ], - "semantics": [ - { - "name": "bs_SPLIT_TICKET__some", - "premises": [ "n1 + n2 = n3" ], - "conclusion": - "SPLIT_TICKET / Pair s x n3 : Pair n1 n2 : S => Some ( Pair ( Pair s x n1 ) ( Pair s x n2 ) ) : S" - }, - { - "name": "bs_SPLIT_TICKET__none", - "premises": [ "n1 + n2 <> n3" ], - "conclusion": - "SPLIT_TICKET / Pair s x n3 : Pair n1 n2 : S => None : S" - } - ] - }, - "JOIN_TICKETS": { - "op": "JOIN_TICKETS", - "op_args": "JOIN_TICKETS", - "ty": [ - { - "name": "t_instr_JOIN_TICKETS", - "premises": [], - "conclusion": - "ctx :- JOIN_TICKETS :: pair ( ticket cty ) ( ticket cty ) : A => option ( ticket cty ) : A" - } - ], - "semantics": [ - { - "name": "bs_JOIN_TICKETS__some", - "premises": [], - "conclusion": - "JOIN_TICKETS / Pair ( Pair s x n1 ) ( Pair s x n2 ) : S => Some ( Pair s x ( n1 + n2 ) ) : S" - }, - { - "name": "bs_JOIN_TICKETS__none_ticketer", - "premises": [ "s1 <> s2" ], - "conclusion": - "JOIN_TICKETS / Pair ( Pair s1 x1 n1 ) ( Pair s2 x2 n2 ) : S => None : S" - }, - { - "name": "bs_JOIN_TICKETS__none_content", - "premises": [ "x1 <> x2" ], - "conclusion": - "JOIN_TICKETS / Pair ( Pair s1 x1 n1 ) ( Pair s2 x2 n2 ) : S => None : S" - } - ] - }, - "PAIRING_CHECK": { - "op": "PAIRING_CHECK", - "op_args": "PAIRING_CHECK", - "ty": [ - { - "name": "t_instr_PAIRING_CHECK", - "premises": [], - "conclusion": - "ctx :- PAIRING_CHECK :: list ( pair bls12_381_g1 bls12_381_g2 ) : A => bool : A" - } - ], - "semantics": [ - { - "name": "bs_PAIRING_CHECK__empty", - "premises": [], - "conclusion": "PAIRING_CHECK / {} : S => True : S" - }, - { - "name": "bs_PAIRING_CHECK__l", - "premises": [ "bls12_381_pairing_check ( l ) = b" ], - "conclusion": "PAIRING_CHECK / l : S => b : S" - } - ] - } - }, - "types": { - "option": { - "ty": "option", - "ty_args": "option ty", - "related_ops": [ - "CONTRACT", "CREATE_CONTRACT", "EDIV", "GET", "GET_AND_UPDATE", - "IF_NONE", "ISNAT", "JOIN_TICKETS", "NONE", "SAPLING_VERIFY_UPDATE", - "SET_DELEGATE", "SLICE", "SOME", "SPLIT_TICKET", "UNPACK", "UPDATE" - ] - }, - "list": { - "ty": "list", - "ty_args": "list type", - "related_ops": [ - "CONCAT", "CONS", "IF_CONS", "ITER", "MAP", "NIL", "PAIRING_CHECK", - "SIZE" - ] - }, - "set": { - "ty": "set", - "ty_args": "set cty", - "related_ops": [ "EMPTY_SET", "ITER", "MEM", "SIZE", "UPDATE" ] - }, - "contract": { - "ty": "contract", - "ty_args": "contract type", - "related_ops": [ - "ADDRESS", "CONTRACT", "IMPLICIT_ACCOUNT", "SELF", "TRANSFER_TOKENS" - ] - }, - "operation": { - "ty": "operation", - "ty_args": "operation", - "related_ops": [ "CREATE_CONTRACT", "SET_DELEGATE", "TRANSFER_TOKENS" ] - }, - "pair": { "ty": "pair", "ty_args": "pair ty1 ty2", "related_ops": [] }, - "or": { - "ty": "or", - "ty_args": "or ty1 ty2", - "related_ops": [ "IF_LEFT", "LEFT", "LOOP_LEFT", "RIGHT" ] - }, - "lambda": { - "ty": "lambda", - "ty_args": "lambda ty1 ty2", - "related_ops": [ "APPLY", "EXEC", "LAMBDA" ] - }, - "map": { - "ty": "map", - "ty_args": "map kty vty", - "related_ops": [ - "EMPTY_MAP", "GET", "GET_AND_UPDATE", "ITER", "MAP", "MEM", "SIZE", - "UPDATE" - ] - }, - "big_map": { - "ty": "big_map", - "ty_args": "big_map kty vty", - "related_ops": [ - "EMPTY_BIG_MAP", "GET", "GET_AND_UPDATE", "MEM", "UPDATE" - ] - }, - "sapling_transaction": { - "ty": "sapling_transaction", - "ty_args": "sapling_transaction n", - "related_ops": [ "SAPLING_VERIFY_UPDATE" ] - }, - "sapling_state": { - "ty": "sapling_state", - "ty_args": "sapling_state n", - "related_ops": [ "SAPLING_EMPTY_STATE", "SAPLING_VERIFY_UPDATE" ] - }, - "ticket": { - "ty": "ticket", - "ty_args": "ticket cty", - "related_ops": [ - "JOIN_TICKETS", "READ_TICKET", "SPLIT_TICKET", "TICKET" - ] - }, - "bls12_381_g1": { - "ty": "bls12_381_g1", - "ty_args": "bls12_381_g1", - "related_ops": [ "ADD", "MUL", "NEG", "PAIRING_CHECK" ] - }, - "bls12_381_g2": { - "ty": "bls12_381_g2", - "ty_args": "bls12_381_g2", - "related_ops": [ "ADD", "MUL", "NEG", "PAIRING_CHECK" ] - }, - "bls12_381_fr": { - "ty": "bls12_381_fr", - "ty_args": "bls12_381_fr", - "related_ops": [ "ADD", "INT", "MUL", "NEG" ] - }, - "string": { - "ty": "string", - "ty_args": "string", - "related_ops": [ "CONCAT", "SIZE", "SLICE" ] - }, - "nat": { - "ty": "nat", - "ty_args": "nat", - "related_ops": [ - "ABS", "ADD", "AND", "EDIV", "INT", "ISNAT", "LEVEL", "LSL", "LSR", - "MUL", "NEG", "NOT", "OR", "READ_TICKET", "SIZE", "SLICE", - "SPLIT_TICKET", "SUB", "TICKET", "TOTAL_VOTING_POWER", - "VOTING_POWER", "XOR" - ] - }, - "int": { - "ty": "int", - "ty_args": "int", - "related_ops": [ - "ABS", "ADD", "AND", "COMPARE", "EDIV", "EQ", "GE", "GT", "INT", - "ISNAT", "LE", "LT", "MUL", "NEG", "NEQ", "NOT", - "SAPLING_VERIFY_UPDATE", "SUB" - ] - }, - "bytes": { - "ty": "bytes", - "ty_args": "bytes", - "related_ops": [ - "BLAKE2B", "CHECK_SIGNATURE", "CONCAT", "KECCAK", "PACK", "SHA256", - "SHA3", "SHA512", "SIZE", "SLICE", "UNPACK" - ] - }, - "bool": { - "ty": "bool", - "ty_args": "bool", - "related_ops": [ - "AND", "CHECK_SIGNATURE", "EQ", "GE", "GT", "IF", "LE", "LOOP", "LT", - "MEM", "NEQ", "NOT", "OR", "PAIRING_CHECK", "UPDATE", "XOR" - ] - }, - "mutez": { - "ty": "mutez", - "ty_args": "mutez", - "related_ops": [ - "ADD", "AMOUNT", "BALANCE", "CREATE_CONTRACT", "EDIV", "MUL", "SUB", - "TRANSFER_TOKENS" - ] - }, - "key_hash": { - "ty": "key_hash", - "ty_args": "key_hash", - "related_ops": [ - "CREATE_CONTRACT", "HASH_KEY", "IMPLICIT_ACCOUNT", "SET_DELEGATE", - "VOTING_POWER" - ] - }, - "address": { - "ty": "address", - "ty_args": "address", - "related_ops": [ - "ADDRESS", "CONTRACT", "CREATE_CONTRACT", "READ_TICKET", - "SELF_ADDRESS", "SENDER", "SOURCE" - ] - }, - "timestamp": { - "ty": "timestamp", - "ty_args": "timestamp", - "related_ops": [ "ADD", "NOW", "SUB" ] - }, - "never": { - "ty": "never", - "ty_args": "never", - "related_ops": [ "NEVER" ] - }, - "key": { - "ty": "key", - "ty_args": "key", - "related_ops": [ "CHECK_SIGNATURE", "HASH_KEY" ] - }, - "unit": { - "ty": "unit", - "ty_args": "unit", - "related_ops": [ "IMPLICIT_ACCOUNT", "UNIT" ] - }, - "signature": { - "ty": "signature", - "ty_args": "signature", - "related_ops": [ "CHECK_SIGNATURE" ] - }, - "chain_id": { - "ty": "chain_id", - "ty_args": "chain_id", - "related_ops": [ "CHAIN_ID" ] - } - } -} \ No newline at end of file diff --git a/packages/taquito-michel-codec/pack-test-tool/data.json b/packages/taquito-michel-codec/pack-test-tool/data.json deleted file mode 100644 index 192b4c194d..0000000000 --- a/packages/taquito-michel-codec/pack-test-tool/data.json +++ /dev/null @@ -1,462 +0,0 @@ -[ - { - "data": { - "string": "KT1RvkwF4F7pz1gCoxkyZrG1RkrxQy3gmFTv%foo" - }, - "type": { - "prim": "address" - } - }, - { - "data": { - "string": "KT1RvkwF4F7pz1gCoxkyZrG1RkrxQy3gmFTv%foo" - }, - "type": { - "prim": "string" - } - }, - { - "data": { - "string": "NetXynUjJNZm7wi" - }, - "type": { - "prim": "chain_id" - } - }, - { - "data": { - "string": "edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav" - }, - "type": { - "prim": "key" - } - }, - { - "data": { - "string": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" - }, - "type": { - "prim": "key_hash" - } - }, - { - "data": [ - { - "prim": "PUSH", - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ] - }, - { - "prim": "ADD" - } - ], - "type": { - "prim": "lambda", - "args": [ - { - "prim": "nat" - }, - { - "prim": "nat" - } - ] - } - }, - { - "data": [ - { - "prim": "PUSH", - "args": [ - { - "prim": "address" - }, - { - "string": "KT1RvkwF4F7pz1gCoxkyZrG1RkrxQy3gmFTv%foo" - } - ] - }, - { - "prim": "DROP" - } - ], - "type": { - "prim": "lambda", - "args": [ - { - "prim": "unit" - }, - { - "prim": "unit" - } - ] - } - }, - { - "data": [ - { - "prim": "DROP" - }, - { - "prim": "SELF_ADDRESS" - } - ], - "type": { - "prim": "lambda", - "args": [ - { - "prim": "unit" - }, - { - "prim": "address" - } - ] - } - }, - { - "data": [ - { - "prim": "CONTRACT", - "args": [ - { - "prim": "unit" - } - ] - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "type": { - "prim": "lambda", - "args": [ - { - "prim": "address" - }, - { - "prim": "unit" - } - ] - } - }, - { - "data": { - "string": "sigXeXB5JD5TaLb3xgTPKjgf9W45judiCmNP9UBdZBdmtHSGBxL1M8ZSUb6LpjGP2MdfUBTB4WHs5APnvyRV1LooU6QHJuDe" - }, - "type": { - "prim": "signature" - } - }, - { - "data": { - "string": "2019-09-26T10:59:51Z" - }, - "type": { - "prim": "timestamp" - } - }, - { - "data": [ - { - "string": "KT1S4Kg5NCiQQ8dNtPuMXVAbJguhGLA4mGeP%foo" - }, - { - "string": "KT1L8JQ3cq6QB8FTfK33UGYjyzf4zeLCv6g8%bar" - }, - { - "string": "KT1D7uG1LBzie2oQ71cosLaArz46z6ppL6yn" - } - ], - "type": { - "prim": "list", - "args": [ - { - "prim": "address" - } - ] - } - }, - { - "data": [ - { - "prim": "Elt", - "args": [ - { - "int": "123" - }, - { - "string": "2019-10-25T17:00:54Z" - } - ] - }, - { - "prim": "Elt", - "args": [ - { - "int": "456" - }, - { - "string": "2020-10-29T22:06:47Z" - } - ] - }, - { - "prim": "Elt", - "args": [ - { - "int": "789" - }, - { - "string": "2021-02-28T20:34:55Z" - } - ] - } - ], - "type": { - "prim": "map", - "args": [ - { - "prim": "nat" - }, - { - "prim": "timestamp" - } - ] - } - }, - { - "data": { - "prim": "Some", - "args": [ - { - "string": "NetXynUjJNZm7wi" - } - ] - }, - "type": { - "prim": "option", - "args": [ - { - "prim": "chain_id" - } - ] - } - }, - { - "data": { - "prim": "None" - }, - "type": { - "prim": "option", - "args": [ - { - "prim": "chain_id" - } - ] - } - }, - { - "data": { - "prim": "Left", - "args": [ - { - "string": "NetXynUjJNZm7wi" - } - ] - }, - "type": { - "prim": "or", - "args": [ - { - "prim": "chain_id" - }, - { - "prim": "string" - } - ] - } - }, - { - "data": { - "prim": "Right", - "args": [ - { - "string": "foo" - } - ] - }, - "type": { - "prim": "or", - "args": [ - { - "prim": "chain_id" - }, - { - "prim": "string" - } - ] - } - }, - { - "data": { - "prim": "Pair", - "args": [ - { - "string": "NetXynUjJNZm7wi" - }, - { - "string": "foo" - } - ] - }, - "type": { - "prim": "pair", - "args": [ - { - "prim": "chain_id" - }, - { - "prim": "string" - } - ] - } - }, - { - "proto": "PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA", - "data": { - "prim": "Pair", - "args": [ - { - "prim": "True" - }, - { - "string": "foo" - }, - { - "int": "-123" - } - ] - }, - "expect": { - "prim": "Pair", - "args": [ - { - "prim": "True" - }, - { - "prim": "Pair", - "args": [ - { - "string": "foo" - }, - { - "int": "-123" - } - ] - } - ] - }, - "type": { - "prim": "pair", - "args": [ - { - "prim": "bool" - }, - { - "prim": "string" - }, - { - "prim": "int" - } - ] - } - }, - { - "data": [ - { - "prim": "Pair", - "args": [ - { - "string": "NetXynUjJNZm7wi" - }, - { - "string": "foo" - } - ] - } - ], - "type": { - "prim": "list", - "args": [ - { - "prim": "pair", - "args": [ - { - "prim": "chain_id" - }, - { - "prim": "string" - } - ] - } - ] - } - }, - { - "data": [ - { - "string": "one" - }, - { - "string": "two" - }, - { - "string": "" - } - ], - "type": { - "prim": "list", - "args": [ - { - "prim": "string" - } - ] - } - }, - { - "data": [ - [ - { - "string": "one" - } - ], - [ - { - "string": "two" - } - ], - [] - ], - "type": { - "prim": "list", - "args": [ - { - "prim": "list", - "args": [ - { - "prim": "string" - } - ] - } - ] - } - } -] \ No newline at end of file diff --git a/packages/taquito-michel-codec/pack-test-tool/pack-test-tool.js b/packages/taquito-michel-codec/pack-test-tool/pack-test-tool.js deleted file mode 100755 index 7f3bec8af0..0000000000 --- a/packages/taquito-michel-codec/pack-test-tool/pack-test-tool.js +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env node -const fs = require("fs"); -const process = require("process"); -const yargs = require("yargs"); -const path = require("path"); -const rpc = require("@taquito/rpc"); - -const argv = yargs(process.argv.slice(2)) - .options({ - "url": { - alias: "u", - describe: "RPC URL", - type: "string", - default: "https://api.tez.ie/rpc/edonet/", - } - }).argv; - -const client = new rpc.RpcClient(argv.url, "main"); -const data = JSON.parse(fs.readFileSync(path.resolve(__dirname, "data.json")).toString()); - -async function packData(data) { - const ret = []; - for (const src of data) { - try { - const res = await client.packData({ data: src.data, type: src.type }, { block: "head" }); - ret.push({ ...src, packed: res.packed }); - } catch (err) { - console.log(err); - } - } - return ret; -} - -packData(data).then(ret => process.stdout.write(JSON.stringify(ret, null, " "))); \ No newline at end of file diff --git a/packages/taquito-michel-codec/pack-test-tool/package-lock.json b/packages/taquito-michel-codec/pack-test-tool/package-lock.json deleted file mode 100644 index 0371d3fc96..0000000000 --- a/packages/taquito-michel-codec/pack-test-tool/package-lock.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "name": "pack-test-tool", - "version": "9.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "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" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "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==" - }, - "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==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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==" - }, - "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==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.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==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.6", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.6.tgz", - "integrity": "sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==" - } - } -} diff --git a/packages/taquito-michel-codec/pack-test-tool/package.json b/packages/taquito-michel-codec/pack-test-tool/package.json deleted file mode 100644 index 7fed1d4817..0000000000 --- a/packages/taquito-michel-codec/pack-test-tool/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "pack-test-tool", - "version": "9.0.0", - "description": "Generate pack test data via Tezos RPC", - "main": "pack-test-tool.js", - "private": true, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "Eugene Zagidullin <eugene@ecadlabs.com>", - "license": "MIT", - "dependencies": { - "@taquito/rpc": "^9.0.0", - "yargs": "^16.2.0" - } -} diff --git a/packages/taquito-michel-codec/package-lock.json b/packages/taquito-michel-codec/package-lock.json index 4f3d6614cd..f5f7aeece0 100644 --- a/packages/taquito-michel-codec/package-lock.json +++ b/packages/taquito-michel-codec/package-lock.json @@ -1,37 +1,38 @@ { "name": "@taquito/michel-codec", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -64,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -244,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -268,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -349,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -516,34 +517,6 @@ "@jest/environment": "^26.6.2", "@jest/types": "^26.6.2", "expect": "^26.6.2" - }, - "dependencies": { - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - } } }, "@jest/reporters": { @@ -660,12 +633,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -713,9 +694,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -761,9 +742,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -771,9 +752,9 @@ } }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", "dev": true }, "@types/normalize-package-data": { @@ -789,9 +770,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -801,18 +782,18 @@ "dev": true }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, "abab": { @@ -878,6 +859,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1043,9 +1032,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1101,6 +1090,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1260,63 +1278,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1354,19 +1315,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1406,12 +1354,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1422,9 +1364,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1479,21 +1421,17 @@ "yaml": "^1.10.0" } }, - "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 - }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "cssom": { @@ -1540,9 +1478,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1592,6 +1530,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1633,6 +1602,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1734,9 +1709,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1752,20 +1727,18 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "exit": { @@ -1816,69 +1789,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1888,370 +1798,46 @@ } }, "expect": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", - "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "@jest/types": "^24.9.0", - "ansi-styles": "^3.2.0", - "jest-get-type": "^24.9.0", - "jest-matcher-utils": "^24.9.0", - "jest-message-util": "^24.9.0", - "jest-regex-util": "^24.9.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { - "@jest/console": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", - "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", - "dev": true, - "requires": { - "@jest/source-map": "^24.9.0", - "chalk": "^2.0.1", - "slash": "^2.0.0" - } - }, - "@jest/source-map": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", - "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.1.15", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", - "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "@jest/console": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/istanbul-lib-coverage": "^2.0.0" - } - }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", - "dev": true - }, - "@types/yargs": { - "version": "13.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", - "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "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" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "diff-sequences": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", - "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "jest-diff": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", - "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "diff-sequences": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", - "dev": true - }, - "jest-matcher-utils": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", - "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^24.9.0", - "jest-get-type": "^24.9.0", - "pretty-format": "^24.9.0" - } - }, - "jest-message-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", - "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/test-result": "^24.9.0", - "@jest/types": "^24.9.0", - "@types/stack-utils": "^1.0.1", - "chalk": "^2.0.1", - "micromatch": "^3.1.10", - "slash": "^2.0.0", - "stack-utils": "^1.0.1" - } - }, - "jest-regex-util": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", - "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "stack-utils": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.4.tgz", - "integrity": "sha512-IPDJfugEGbfizBwBZRZ3xpccMdRyP5lqsBWXGQWimVjua/ccLCeMOAVjlc1R7LxFjo5sEDhyNIXd8mo/AiDS9w==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "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 - } - } - }, - "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" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "is-plain-object": "^2.0.4" } } } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -2283,14 +1869,37 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -2416,9 +2025,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2453,9 +2062,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2497,9 +2106,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2510,9 +2119,9 @@ "optional": true }, "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", "dev": true, "requires": { "minimist": "^1.2.5", @@ -2605,6 +2214,12 @@ } } }, + "highlight.js": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.0.tgz", + "integrity": "sha512-EfrUGcQ63oLJbj0J0RI9ebX6TAITbsDBLbsjr881L/X5fMO9+oadKzEF21C7R3ULKG6Gv3uoab2HiqVJa/4+oA==", + "dev": true + }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", @@ -2653,9 +2268,9 @@ } }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2721,12 +2336,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2751,32 +2377,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2787,13 +2432,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2841,9 +2483,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2869,9 +2511,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2959,6 +2601,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2970,27 +2635,90 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "jest-config": { @@ -3093,121 +2821,79 @@ "jest-matcher-utils": "^22.0.0" }, "dependencies": { - "jest-get-type": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", - "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", - "dev": true - } - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "dependencies": { - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "@jest/console": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", + "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" + "@jest/source-map": "^24.9.0", + "chalk": "^2.0.1", + "slash": "^2.0.0" + } + }, + "@jest/source-map": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", + "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.1.15", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", + "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", + "dev": true, + "requires": { + "@jest/console": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/istanbul-lib-coverage": "^2.0.0" + } + }, + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" } }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", + "dev": true + }, + "@types/yargs": { + "version": "13.0.11", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.11.tgz", + "integrity": "sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==", "dev": true, "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "@types/yargs-parser": "*" } - } - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz", - "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-get-type": "^22.4.3", - "pretty-format": "^22.4.3" - }, - "dependencies": { + }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { @@ -3219,6 +2905,35 @@ "color-convert": "^1.9.0" } }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -3245,26 +2960,232 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "diff-sequences": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", + "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==", + "dev": true + }, + "expect": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", + "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "ansi-styles": "^3.2.0", + "jest-get-type": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-regex-util": "^24.9.0" + }, + "dependencies": { + "jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", + "dev": true + }, + "jest-matcher-utils": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", + "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "jest-diff": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", + "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff-sequences": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" + }, + "dependencies": { + "jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", + "dev": true + } + } + }, "jest-get-type": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", "dev": true }, - "pretty-format": { + "jest-matcher-utils": { "version": "22.4.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz", - "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz", + "integrity": "sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^22.4.3", + "pretty-format": "^22.4.3" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "pretty-format": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz", + "integrity": "sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + } + } + }, + "jest-message-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", + "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^2.0.1", + "micromatch": "^3.1.10", + "slash": "^2.0.0", + "stack-utils": "^1.0.1" + } + }, + "jest-regex-util": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz", + "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true + }, + "stack-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.3.tgz", + "integrity": "sha512-WldO+YmqhEpjp23eHZRhOT1NQF51STsbxZ+/AdpFD+EhheFxAe5d0WoK4DQVJkSHacPrJJX3OqRAl9CgHf78pg==", "dev": true, "requires": { - "ansi-regex": "^3.0.0", - "ansi-styles": "^3.2.0" + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "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 + } } }, "supports-color": { @@ -3275,9 +3196,95 @@ "requires": { "has-flag": "^3.0.0" } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } } } }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + } + }, + "jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "dev": true, + "requires": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, "jest-message-util": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", @@ -3441,54 +3448,10 @@ "semver": "^7.3.2" }, "dependencies": { - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } @@ -3562,9 +3525,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3642,9 +3605,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3706,9 +3669,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3726,12 +3689,96 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3741,8 +3788,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3766,6 +3812,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3803,29 +3855,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "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" - } - }, "lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -3880,9 +3912,9 @@ } }, "marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.4.tgz", + "integrity": "sha512-6x5TFGCTKSQBLTZtOburGxCxFEBJEGYVLwCMTBCxzvyuisGcC20UNzDSJhCr/cJ/Kmh6ulfJm10g6WWEAJ3kvg==", "dev": true }, "merge-stream": { @@ -3902,18 +3934,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3945,6 +3977,17 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { @@ -4009,9 +4052,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -4023,32 +4066,22 @@ "which": "^2.0.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "yallist": "^4.0.0" - } + "optional": true }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "optional": true, "requires": { - "lru-cache": "^6.0.0" + "isexe": "^2.0.0" } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true } } }, @@ -4071,12 +4104,12 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" } }, "nwsapi": { @@ -4111,43 +4144,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -4195,15 +4191,6 @@ "mimic-fn": "^2.1.0" } }, - "onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } - }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -4273,9 +4260,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -4309,9 +4296,9 @@ "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { @@ -4378,9 +4365,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -4474,14 +4461,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "rechoir": { @@ -4668,12 +4647,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4693,6 +4681,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4716,6 +4716,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4726,14 +4732,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4749,14 +4747,6 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "safe-buffer": { @@ -4826,42 +4816,14 @@ }, "dependencies": { "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "fill-range": { @@ -4887,21 +4849,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4922,12 +4869,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4958,36 +4899,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4997,15 +4908,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -5056,28 +4958,22 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, "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==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^3.0.0" + "shebang-regex": "^1.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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "shelljs": { @@ -5098,16 +4994,6 @@ "dev": true, "optional": true }, - "shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", - "dev": true, - "requires": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" - } - }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -5180,69 +5066,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5254,19 +5077,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -5289,6 +5099,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -5319,13 +5158,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -5339,9 +5181,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -5371,9 +5213,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5443,63 +5285,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5706,9 +5491,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5717,47 +5502,34 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5765,9 +5537,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -5855,12 +5627,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5877,34 +5643,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5916,14 +5680,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5957,9 +5713,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5972,34 +5728,34 @@ } }, "typedoc": { - "version": "0.20.32", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.32.tgz", - "integrity": "sha512-GSopd/tiqoKE3fEdvhoaEpR9yrEPsR9tknAjkoeSPL6p1Rq5aVsKxBhhF6cwoDJ7oWjpvnm8vs0rQN0BxEHuWQ==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.19.2.tgz", + "integrity": "sha512-oDEg1BLEzi1qvgdQXc658EYgJ5qJLVSeZ0hQ57Eq4JXy6Vj2VX4RVo18qYxRWz75ifAaYuYNBUCnbhjd37TfOg==", "dev": true, "requires": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", + "fs-extra": "^9.0.1", + "handlebars": "^4.7.6", + "highlight.js": "^10.2.0", + "lodash": "^4.17.20", "lunr": "^2.3.9", - "marked": "^2.0.1", + "marked": "^1.1.1", "minimatch": "^3.0.0", "progress": "^2.0.3", + "semver": "^7.3.2", "shelljs": "^0.8.4", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.9" + "typedoc-default-themes": "^0.11.4" }, "dependencies": { "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "universalify": "^1.0.0" } }, "jsonfile": { @@ -6010,38 +5766,46 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } }, "typedoc-default-themes": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.9.tgz", - "integrity": "sha512-Jd5fYTiqzinZdoIY382W7tQXTwAzWRdg8KbHfaxmb78m1/3jL9riXtk23oBOKwhi8GFVykCOdPzEJKY87/D0LQ==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.11.4.tgz", + "integrity": "sha512-Y4Lf+qIb9NTydrexlazAM46SSLrmrQRqWiD52593g53SsmUFioAsMWt8m834J6qsp+7wHRjxCXSZeiiW5cMUdw==", "dev": true }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-EWhx3fHy3M9JbaeTnO+rEqzCe1wtyQClv6q3YWq0voOj4E+bMZBErVS1GAHPDiRGONYq34M1/d8KuQMgvi6Gjw==", + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.6.tgz", + "integrity": "sha512-oASI1FOJ7BBFkSCNDZ446EgkSuHkOZBuqRFrwXIKWCoXw8ZXQETooTQjkAcBS03Acab7ubCKsXnwuV2svy061g==", "dev": true, "optional": true }, @@ -6055,14 +5819,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -6108,19 +5864,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -6139,16 +5889,16 @@ "dev": true }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", "dev": true, "optional": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -6185,12 +5935,6 @@ "extsprintf": "^1.2.0" } }, - "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -6251,9 +5995,9 @@ } }, "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -6278,9 +6022,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -6307,9 +6051,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -6325,15 +6069,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -6359,25 +6097,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-michel-codec/package.json b/packages/taquito-michel-codec/package.json index ba04271f7c..4858b07338 100644 --- a/packages/taquito-michel-codec/package.json +++ b/packages/taquito-michel-codec/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/michel-codec", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "Michelson parser/validator/formatter", "keywords": [ "tezos", @@ -33,9 +33,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -67,9 +66,9 @@ ] }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", - "jest": "^26.6.3", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", + "jest": "^26.5.2", "jest-extended": "^0.11.5", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", @@ -79,13 +78,13 @@ "rollup-plugin-json": "^4.0.0", "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.32", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-michel-codec/signature.json b/packages/taquito-michel-codec/signature.json index 4f046bb20f..151b42a60a 100644 --- a/packages/taquito-michel-codec/signature.json +++ b/packages/taquito-michel-codec/signature.json @@ -14,7 +14,7 @@ }, { "path": "dist/lib/macros.js", - "sha512": "cf7792cc212d35a25c7e8b57d483350e80a8e15f295bcf5e2f1c24e06239adf8ec674b66e6116dc9c4e943bb5470b096222afca352f44cc6c3763c897e38c48f" + "sha512": "71767970e60c3df2cf2142882edae72078bfc78da82d0f5ae5260b90b5bbe113c836e4a6b6ec80ac3d44dec34d43facc23fb76bb6c4e3532d54f9c277bd32a1c" }, { "path": "dist/lib/micheline-emitter.js", @@ -22,7 +22,7 @@ }, { "path": "dist/lib/micheline-parser.js", - "sha512": "f6d6399c403d4bfc1e252566b6a01b159037d9a7a5f176c19bc13b97c1208cbecfd9af4f10c945dbaccfaf5223eb7f34944768d5d57188591d34c4b05509cdec" + "sha512": "891b0ff5122ef246d04f07772ec4495eeed9822d3b2062a6b3caa90524c3758bbad06d68f1c5e2a7090cc83af8daaedade64ffef536823fc539cffe5a0b1c1a7" }, { "path": "dist/lib/micheline.js", @@ -30,19 +30,19 @@ }, { "path": "dist/lib/michelson-contract.js", - "sha512": "b76a2de09bbdca9129ae002985def95d3c6629e8ae61a63028f0bc522cfda01a631d5ceacff3474b659310a27519a3daa81250717b093640e20e43c3f3d3d2c2" + "sha512": "1e274274740fbe4a1df0f33b90d924dc660d3f2e3cf351a99a4e328102216b819a9c0e5eb1a3b013babd3a75478b6f1bc5e340b42d5c65da63276a47851ad440" }, { "path": "dist/lib/michelson-typecheck.js", - "sha512": "f9d8b5e0398d6b3f0f926bf63ca234dc13bc83a4765b3956b1123f35b42fc16552aeb6b9ab579b4ed678dbb2e8bf06ba99096bde40a03e481f77b22453003476" + "sha512": "06ed8dd041e40b55ddab8cbb0b65a972373620165e883471bc823fadc7f53ba7de26cc02f836f28a14da893eed4e31505e6fe7d87f32c0e4f05a45f057e321bf" }, { "path": "dist/lib/michelson-types.js", - "sha512": "a3b7c1d1665feadb8214d99afd9d811bdb390ee745bbf2f0fa11410e98eae28118a835409ac8971c20fdde64e80e6f64afc6328ea44d9f7550e33fd26ad06193" + "sha512": "0134f50a60267d8f886f345274ec4736850f93b4cc09195b920a9da6420c0c8ee6fe40eee6a711f4a1f4753c762475de0df34268e7dbce24f687de71a1ada259" }, { "path": "dist/lib/michelson-validator.js", - "sha512": "84ddb792c7a56b7b4bd462d425720a31fc13f0d8421039f4e748b268156027418b7fdd50cd28d79d433a425be0d197b38b99bbc7e3d4cd2d565bb71bf31abb40" + "sha512": "587b88b16acaacd2a8d966d0a20a7e9329f016fb3de273961f09f55438e7935b22a10db5f0462f0613bf4ea4b8bd08fd2de939c98f181df47011cabe0e95738b" }, { "path": "dist/lib/scan.js", @@ -50,19 +50,19 @@ }, { "path": "dist/taquito-michel-codec.es5.js", - "sha512": "6689785cdcef2f78f3e8aaf99a9c4a76551ce7917e53ae8f7c4c9a8b6104bbe83a132ed5ab44d0f0857ad2e91ada5ec4f1862a9c89debaaefd6a53d3533760de" + "sha512": "60d8cf3ee0b0d95e9c2cfa994160c600064e17c3c0f2769e3a5a2a1c74fe01c2dc49920c595f43cd28a4d5341d7fe80a334ef3abeebfacc05fdd3df25df9fe1a" }, { "path": "dist/lib/taquito-michel-codec.js", - "sha512": "d315e8ab3ae18ad9e101634b5ecfdffaedf785f91d2669005c2bf70835f4937512cba0ab4537e443ce5f8ff4f16c800ec3117bc92fc626f8cc6327c119905b86" + "sha512": "c58d417f064dac7d608ac96dca038be7f1956ab985a0e62dfb7265e5a62e117d8c0a8affe82afd21d62962568082a37b5fa736e028ac38374599482a8c0960e8" }, { "path": "dist/taquito-michel-codec.umd.js", - "sha512": "709d3c09dafc98a44c26adfa0728e570d7204e161c14042be4144f456eb9c4bef44c97e3050c8e961b77eba5b77724ca4f4ad35e603454bd694d70fae6769b5f" + "sha512": "cf4bc1714cf3b75da587734bd80483b9827a1c000421b32f1806d67682caef48f951bce444dda540ccfaaaba843a6112992bf03fc8236a5b11d6bf7de5492d72" }, { "path": "dist/lib/utils.js", - "sha512": "d897c7f85b5201cf1152e2e8e2c3b7b7579a7f8c8998b7362ab5fc9ea6e7f9ca3b7461f3e6827b3f786961a97638daae39872aa74668a2502f1b3a1d6b4446f9" + "sha512": "e200bb2a11b7864e106e13e7f88b0e9bb5f599efb3fcca2d6d730ffb2983c211325c1bf28fe97d01d08593dc23fff70fa9af454a24be28713780094dadf810e8" }, { "path": "dist/lib/base58.js.map", @@ -70,11 +70,11 @@ }, { "path": "dist/lib/formatters.js.map", - "sha512": "6ab3aff9e06330dc4775589fe78c2f90df6e022b3528ab27bfb917b56ecb027d5961ceffb9d0976ddf7fc07cd197392f74913a381aaf1070a2e53749522cafa0" + "sha512": "41aa0a57ad716ea947cfd53d0b9c4a1013402eb4bd09082000793f51563d86165f1234d39e68caff4fc1f7a03fe8ce12bfa5c53093ca457fabbe1763500c8ac0" }, { "path": "dist/lib/macros.js.map", - "sha512": "77de4173d80e00381c1a0c4952bb8e2542e5c1c228a1226a8c626b2abc0ad9a64918b4154240eda9205631338790e8143254874657cfd577ca4bc8eb24ed809c" + "sha512": "79c861a84173276d15a59789b164231ecd6cf0ab7be29a8e4eed01dc42d63a4e65b26a6bfcb9c479198986a3cfdd2c639b4ed21196d179bf9a72296dec1ecb62" }, { "path": "dist/lib/micheline-emitter.js.map", @@ -82,7 +82,7 @@ }, { "path": "dist/lib/micheline-parser.js.map", - "sha512": "17481db072aba345ea209a7e3e31ef6160a729185988548a932b1be181b64b149204af57d557aa02fbd0feca42f6a06f0b00c5597273fee3ffaa22c48897241e" + "sha512": "b8c27424d589d38ba6d5c5616aad2be23bd44743bbcd5ab0e7d87e3cb4f16a36a51c45735bf8e694841d2ae5a4699da9dc7cbda876a1bc3c529fa52843f41363" }, { "path": "dist/lib/micheline.js.map", @@ -90,19 +90,19 @@ }, { "path": "dist/lib/michelson-contract.js.map", - "sha512": "4ec14ce2f6eac9dd49eeee547146c79dba359f1f54cce54b5fec2eb6ab074b6feb09e6fe2d6169a7e6a258c3d6fb644616efb378ea0c13559f44744373692db6" + "sha512": "b817227d118283e0971e6cf889b016eab9ea9704b6c5dec6940b2e39e256561b434bdb74fa7d86b3378749d8f4ec8bf03146535028350383a65726364bcb8de3" }, { "path": "dist/lib/michelson-typecheck.js.map", - "sha512": "01f3afdf1bef1ecdb42e7f68f1fffa3323caeae8fbc0160de567595f3bdfa9ecb9a59a00dccb9cab4ef77361665982993b36d7dd693c876e56a5b0494fc7c78a" + "sha512": "d9f56d97c8adb91b99ad2ffe95f4dd4aede47ee97f54c98f0aafec507f19e7f5efa590cb8d8c450eb7e80a4494cfe0d03b4bb57024c178dd0a606278ed4cb36b" }, { "path": "dist/lib/michelson-types.js.map", - "sha512": "f72ad81c8169a84f3ad928a88305f238344e30077020b49460e0cafe4bd45b1b620f162f133d66d18b0cafc9e3d4fa2e2f9a9311af896c2e5ccefc6db84c7504" + "sha512": "70f169e4653b21f17d4bffa6741281eac445eb1408ffa77d9e67b6b91ae92dd519ac55ed2311884628be69ac4adf6bf50aac8f0387f33ad45de3ea973ecdf5db" }, { "path": "dist/lib/michelson-validator.js.map", - "sha512": "e21ca7578c3a425c7ac080b713d11217da4f017afe51ec4ae35dc6f1b6145ebf36a8eea75c1254420062cf681ceca9826a02441c8f2771bcee0daeb00bf209e1" + "sha512": "c2268d917685ee39e18393a4853a22ff57cab0c8ae9788b0cb6494c564c68dacbc15acb373834345f1c963b60805e15be2543477103cd3b86a12681b11ddb96e" }, { "path": "dist/lib/scan.js.map", @@ -110,19 +110,19 @@ }, { "path": "dist/taquito-michel-codec.es5.js.map", - "sha512": "15280ecfd8e4d49dec00a83cbb7bb7d8d24772e34783fef3f13821f7e1ffe2acb02747a9efeba5b01a1dd43472afbdda4a2cdb2052a4234c7aa5576d1a986f40" + "sha512": "c426529d8a1dadf7f10eff74817f248022f0dc5a614d16dc3d8e2b641f33403cb311afb6df6e9b8b1351d52d9b89f07179d31f783a0520f1ff7dd8e769534aaa" }, { "path": "dist/lib/taquito-michel-codec.js.map", - "sha512": "7ee20e23970b80ce0e99254eee2c216744834536380278c84b773a51de8ca08460f03554c3481527c245f2f888cddf2db04b1a6e3d4d02abc9e1edee94721c37" + "sha512": "79ece36220a2ac2efcc119c3523c272ebcaa80d0d5ba267db2a9d441165e04520cb3df5227a9d8368a85ea1ba81709902d2a587bb3458eca4eacf06314caac00" }, { "path": "dist/taquito-michel-codec.umd.js.map", - "sha512": "eab133427520ab9f063d09cfca2a10455b8f11a51c9ae5be303d1bc08de9458d911dc3cf75a1998a80f523d19dbdad76276feae1a47104e5fcacbb5defe34322" + "sha512": "7e2dc59719662a17e7c08d1fc0e7ef52669d4d227e808143ef65fad727c2e22d91063a0873137025ab35f906a0382e3d948dafd862ee30405110d2a5dfd76a49" }, { "path": "dist/lib/utils.js.map", - "sha512": "ddb0e8e6953cb68faf7bea1027a590e144488ce0994cea097dd2cd06d17855dc6a8d59894e111fa1c50bb0fc329faeeba3e142cb939f36a8bdfef755b3d871d1" + "sha512": "f2e747d81a3b90551c084e5ab44b4ab9b9a32104fd54c02244c2c5ab3a3d4b8e93a680edd7eb6f9ad4599a860b82e740c7ac0eabb76bef1ecf28e89f5aaddfe7" }, { "path": "README.md", @@ -134,11 +134,11 @@ }, { "path": "dist/types/formatters.d.ts", - "sha512": "269d37c92b843ba50c5fff831ba63da940a511bf92980a32a85f5029591138fd20ca4c3ab744b912a7e62844766cfbd184825f7a934218cd93e48bb3d31b2f01" + "sha512": "d5b2a6fcc1ed59c26750e8f3f07f55e7ca162a3d043cc99ad50d91315d42a91093a00d2912a12f19d512729c40750c8d1f0677a04821e9d2640329600ce2180f" }, { "path": "dist/types/macros.d.ts", - "sha512": "9326299fbebe3391fd6a0a29b79e7207f7481a027a6b7db51aba88982fec20bbf316a04bb1a1766d003e19a6ac37166a995587d03b681b0c783c57e9e52b8fc1" + "sha512": "a94b3979543e579099fd19d7906e1eb9c2bcb7afc12d016a88e022d57ac64f1924535cffc149076d1e7017226a7872face8f194e7a6291a1a7b9394b2f674e51" }, { "path": "dist/types/micheline-emitter.d.ts", @@ -146,27 +146,27 @@ }, { "path": "dist/types/micheline-parser.d.ts", - "sha512": "5fcca4427864933cb8c2451c8264389dbca9f4dfe3980a0c70d98835013ba0dceab9b56df7a2ac80fb64f31e48e356e446507ac1222496faedf3175b300f812a" + "sha512": "dd79b9335f971043589a170c060112006f9e57f53f27b1ed125f9456136786a3cba15c7b5993b9390807f710774cc19fdc6b2f1c873bfcf8377aaed22f08906d" }, { "path": "dist/types/micheline.d.ts", - "sha512": "caf8de68d6e96c6c72e236fd72ca6b289399fa97bfd19ff10c861be2df14c09699fd15011b38f0ad04b18c7330eafda32530cf4b0e831664d6d63f0f4b7e0830" + "sha512": "38b513a4abae68170472ddc0a99c6b7d6d5b38c2526eca5146e7985df8ce90dc763bf0f56c1030d128aa2ac6202c40510d4ab855107d61f7c524ca8c7ebc429e" }, { "path": "dist/types/michelson-contract.d.ts", - "sha512": "429470aa8c1f35b9f3ac59c51a02e28436914ea55c993a6941bbac65c82852e8c53566bf78c2776d64890876a0664799f4b9c3702a443502ed1f4f6b465be7b1" + "sha512": "15426c5b4a3566b1c8f5bb7a736f77cc77867dba11ec1c776686b1d3803488f2b5144aff77835eba9e34acdde08ea7b037a52247c70de61bb4d3137d0dea58e8" }, { "path": "dist/types/michelson-typecheck.d.ts", - "sha512": "b7c31f795935322aa8b736f3c078725773741d7f4bf8f0ae24867ee73f0ce60fddfa4996e6f823ad0f8004ee158e42d734b538d16b593727b90df56711083839" + "sha512": "1c38be88d7300732c222e7d1a8bd5833ada38ed1702140a69c0f8ea48285e1972b1882bb65ca9197d9bc01d1541425b60530f986391aacae28b22fc14596d2ff" }, { "path": "dist/types/michelson-types.d.ts", - "sha512": "e3b22d70fc743814ec7f3e4cd59c1adbf2930339be9adb493595b4188b7be86b73999c912b47a90eda68d6b0672c1856b0cf02ae14ddb6b79d5e6d665e56a384" + "sha512": "9793bb73b3f2a2a528f500df38bb3cf11b5a23ddb41c0bd93c7afe18c8cb0cf0ef76bffddfeb3c0f437b6fdd3e97891084e7b845d1dce8e8945138f55deb9948" }, { "path": "dist/types/michelson-validator.d.ts", - "sha512": "f5eb44d3aecc069a1d26979431e11ec8ea8e4e885ef509c63805a90b69b533878bd831849af0a49751d86283f50d1722f202588fcf8243f81f9bd879567e23f3" + "sha512": "3cbb89248795af8cca35e8f751b0c14f8bd464fc3696f6dc09380c0966ab0b408214f8e7d38699a7bb32e66e7e23882d0289fdf20880f2ed7e67925e9a496788" }, { "path": "dist/types/scan.d.ts", @@ -174,11 +174,11 @@ }, { "path": "dist/types/taquito-michel-codec.d.ts", - "sha512": "3da4724385301e8d9868c4b4389fbc1926544a309ba31849cd24037b4344f7cba0f7bb2a1fc0d44cfd013af6374a4c3f2545563c15c194d4f9ac70faf857f0bf" + "sha512": "f8ff56477917f2903392692f066c45c9216590ef01e0a986599a3bfbd2402a354cdb2a521b933578652de068d480075264e2a6b76e06ceb12ec741203a6e1950" }, { "path": "dist/types/utils.d.ts", - "sha512": "8cea86d5e59a09c8c781bf5fa3dab9de96986fd1dfa10ac60d45e3caf6776555321b85e6534a65e0ac1624a21ed88e00687d006d46f228813b1c77c85639526d" + "sha512": "e793873aa0f0c94f4f0234111f4019a9305b9b4f66fe51373ea5a7c7d9fb716fbe92a1d7f9a7713598276eb784168ea4ac5c983b8420534ffac0f305a9f15aae" } ] } @@ -214,7 +214,7 @@ "typings", "version" ], - "sha512": "b0a3bb5ac4ffa000b18ced7c3ca5415649ffb5c2e94b6d04eb6c76a33b87cb14e4e461172f44794b3b3562305e72e8e1852f8c5208f6c56acbaa7acb56e42e60" + "sha512": "7ced1cee79ecb72441b6f672b0f094959112ac79922039bec799e1e2c17ca8b9912ed41f8c121be34b59993e4a528e07a3376654c9b639f28ef9196fd8f794b2" } }, { @@ -222,7 +222,7 @@ "value": { "packageJson": { "name": "@taquito/michel-codec", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "Michelson parser/validator/formatter", "keywords": [ "tezos", @@ -288,9 +288,9 @@ ] }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", - "jest": "^26.6.3", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", + "jest": "^26.5.2", "jest-extended": "^0.11.5", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", @@ -300,18 +300,18 @@ "rollup-plugin-json": "^4.0.0", "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.23", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UCCRAD9Qy5GYHsngAAUvgQAEsq1HSL2sCOyAwtCuXJsWdm\n2Zb0U6VnOU+OmxLFWrWO+wgHddHu5uzD3grMuCbPY0IgaPiGpE0hFmRQ3gXn50SG\nBq9AGGd9NS61LHqAofkz0zVzwY3tUR5UZNwP38bkEKctf11Njp/dLqmFtkWMXb1U\n2iSSyhFufwIMsxNo5LgkVP6ZFtO2byIrhbwGcdz+RJNFcSVDmEZOsskbWjHK0TIc\nHOja3ZeUXHD4oWOK1TXaN2jGZBbb38pk9wPUoz5dDqW/itRd6ojrWd/3D81AAPui\nGYlSJwCuuNTrQJt+gLB3MsDmvU8UDRa9x/X2fKBWidB+haiIHAog8Ycn5Jq0XIOe\nSGsmxAFyXlFfDRW8By7pwgrty/og5yqvAk0+hSw3yXlfhnQQtu3A899fxpqV6Edb\n71GxavH014XijQd1Kki72iF2xoqnlDLGDY7PYOTwvn7C2lrJOAdU+SN8hiC3gB6G\nzhsvGEdPv/Y5tD43ur8W/ttChqzv9HULO+YtPkOjANXDn8SYRCU+gp1xygfN5b1X\nEKQsRlB8YuCm7M5NwGKUhz6R86fhxlIb89G8JxHjswsmxocMO+5hLOmbroN244Af\n/Tjx1tD9IiAW6/TPyn8nT3Kgi/X/b9drJDVpVCXjcOhNROxxZpm7RTbFJwraNNaE\nC8JtO4FrF97R+FjG/G8F\n=Yy2D\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSpCRAD9Qy5GYHsngAAywoQAGk9kVKRj0ZsoLuxeip1YSl/\nuULrH0bB+C8K1RlK1SQlzYe0r1KaDAe99VvzpDD8Wl5blXIuX7aceiLmBXckUwMF\nckycOVeU7Ar0CsxEqnsUvcQ+q2b7MHLXgV7rSOWvHm3+RYPIN2J7HK6NzSuaXSld\nkgevE8ZFaGzBIC48Pc4UNJ0wPFeRwygUtSPOkk7Un0wEOPKo66EzGSTe/bKmzXn1\n6QPxeJgFDdFf5260l2RTziIiX6CUjeJmrfPqPq/0ct9zzPPM/0nS0GzFXn42oX12\nZhY8O8MF4wspAkvgjpBBMNX1dOX8rHx2W0ghrDj2kIqUwj6FeIgAP52mdUqbjXYg\nXFt4ruHy0zPRQLo811r0JUIUfZCDqJqklzeQM30Jj1WJIuAA0/INrArHzN6FTXeg\nfDqgplPZnWndiLapOy8QIgosEYdHIUIJ30r5/m++kh5DJq+lWOW56SIFLpKsCs6F\nY/nPD+CHSHDxXmTnDTFfDWeIsmqd76BD02tT/MhPMBIg+RI+2u3zYzBKkTdbdMRF\nDxXkGUV4IAlfkF0lvaN4lJDwiRYNRM5IChkB+osYta5TqWpNnflLPxN6khg5H57X\n3rig5fC9Zxz6bf3U7LhsmxAgU2OzrBkwLLl6wCdYPpYRB2FfVcmruvfGuI8XTE/W\nWE7x21RnRHAoHd/TaLYO\n=5NJi\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-michel-codec/src/base58.ts b/packages/taquito-michel-codec/src/base58.ts index 31abbbcec2..ebbefbd0fc 100644 --- a/packages/taquito-michel-codec/src/base58.ts +++ b/packages/taquito-michel-codec/src/base58.ts @@ -97,36 +97,24 @@ function sha256(msg: number[] | Uint8Array): number[] { return digest; } -const base58alphabetFwd: number[] = [ - 0, 1, 2, 3, 4, 5, 6, - 7, 8, -1, -1, -1, -1, -1, -1, - -1, 9, 10, 11, 12, 13, 14, 15, - 16, -1, 17, 18, 19, 20, 21, -1, +const base58alphabet: number[] = [0, 1, 2, 3, 4, 5, 6, + 7, 8, 255, 255, 255, 255, 255, 255, + 255, 9, 10, 11, 12, 13, 14, 15, + 16, 255, 17, 18, 19, 20, 21, 255, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, -1, -1, -1, -1, -1, - -1, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, -1, 44, 45, 46, + 30, 31, 32, 255, 255, 255, 255, 255, + 255, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 255, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 ]; -const base58alphabetBwd: number[] = [ - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 16, 17, 18, 19, 20, 21, 22, - 23, 25, 26, 27, 28, 29, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, - 41, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73 -]; - function byteAt(src: string, i: number): number { const c = src.charCodeAt(i) - 49; - if (c >= base58alphabetFwd.length || base58alphabetFwd[c] === -1) { + if (c >= base58alphabet.length || base58alphabet[c] === 255) { throw new Error(`Base58 decoding error: unexpected character at position ${i}: ${src[i]}`); } - return base58alphabetFwd[c]; + return base58alphabet[c]; } export function decodeBase58(src: string): number[] { @@ -155,28 +143,6 @@ export function decodeBase58(src: string): number[] { return acc.reverse(); } -export function encodeBase58(src: number[] | Uint8Array): string { - const acc: number[] = []; - let i = 0; - // count and skip leading zeros - while (i < src.length && src[i] === 0) { i++; } - let zeros = i; - while (i < src.length) { - let carry = src[i++]; - let ii = 0; - while (carry !== 0 || ii < acc.length) { - const m = (acc[ii] || 0) * 256 + carry; - acc[ii++] = m % 58; - carry = Math.floor(m / 58); - } - } - while (zeros-- > 0) { - acc.push(0); - } - acc.reverse(); - return String.fromCharCode(...acc.map(v => base58alphabetBwd[v] + 49)); -} - export function decodeBase58Check(src: string): number[] { const buffer = decodeBase58(src); if (buffer.length < 4) { @@ -194,9 +160,4 @@ export function decodeBase58Check(src: string): number[] { } return data; -} - -export function encodeBase58Check(src: number[] | Uint8Array): string { - const sum = sha256(sha256(src)); - return encodeBase58([...src, ...sum.slice(0, 4)]); } \ No newline at end of file diff --git a/packages/taquito-michel-codec/src/binary.ts b/packages/taquito-michel-codec/src/binary.ts deleted file mode 100644 index 4d26570c05..0000000000 --- a/packages/taquito-michel-codec/src/binary.ts +++ /dev/null @@ -1,1188 +0,0 @@ -import { BytesLiteral, Expr, IntLiteral, Prim } from "./micheline"; -import { - MichelsonTypeID, MichelsonDataID, - MichelsonSectionID, MichelsonInstructionID, - MichelsonData, MichelsonType, MichelsonDataOr, - MichelsonDataOption, MichelsonInstruction -} from "./michelson-types"; -import { assertDataListIfAny, assertMichelsonData, assertMichelsonInstruction } from "./michelson-validator"; -import { - checkDecodeTezosID, encodeTezosID, hexBytes, - isPairData, isPairType, MichelsonTypeError, - parseBytes, parseDate, parseHex, unpackComb -} from "./utils"; - -type PrimID = MichelsonTypeID | - MichelsonDataID | - MichelsonSectionID | - MichelsonInstructionID | - "Elt"; - -const primitives: PrimID[] = ["parameter", "storage", "code", "False", "Elt", "Left", "None", "Pair", - "Right", "Some", "True", "Unit", "PACK", "UNPACK", "BLAKE2B", "SHA256", "SHA512", "ABS", "ADD", - "AMOUNT", "AND", "BALANCE", "CAR", "CDR", "CHECK_SIGNATURE", "COMPARE", "CONCAT", "CONS", - "CREATE_ACCOUNT", "CREATE_CONTRACT", "IMPLICIT_ACCOUNT", "DIP", "DROP", "DUP", "EDIV", "EMPTY_MAP", - "EMPTY_SET", "EQ", "EXEC", "FAILWITH", "GE", "GET", "GT", "HASH_KEY", "IF", "IF_CONS", "IF_LEFT", - "IF_NONE", "INT", "LAMBDA", "LE", "LEFT", "LOOP", "LSL", "LSR", "LT", "MAP", "MEM", "MUL", "NEG", - "NEQ", "NIL", "NONE", "NOT", "NOW", "OR", "PAIR", "PUSH", "RIGHT", "SIZE", "SOME", "SOURCE", - "SENDER", "SELF", "STEPS_TO_QUOTA", "SUB", "SWAP", "TRANSFER_TOKENS", "SET_DELEGATE", "UNIT", - "UPDATE", "XOR", "ITER", "LOOP_LEFT", "ADDRESS", "CONTRACT", "ISNAT", "CAST", "RENAME", "bool", - "contract", "int", "key", "key_hash", "lambda", "list", "map", "big_map", "nat", "option", "or", - "pair", "set", "signature", "string", "bytes", "mutez", "timestamp", "unit", "operation", - "address", "SLICE", "DIG", "DUG", "EMPTY_BIG_MAP", "APPLY", "chain_id", "CHAIN_ID", "LEVEL", - "SELF_ADDRESS", "never", "NEVER", "UNPAIR", "VOTING_POWER", "TOTAL_VOTING_POWER", "KECCAK", - "SHA3", "PAIRING_CHECK", "bls12_381_g1", "bls12_381_g2", "bls12_381_fr", "sapling_state", - "sapling_transaction", "SAPLING_EMPTY_STATE", "SAPLING_VERIFY_UPDATE", "ticket", "TICKET", - "READ_TICKET", "SPLIT_TICKET", "JOIN_TICKETS", "GET_AND_UPDATE"]; - -const primTags: { [key in PrimID]?: number } & { [key: string]: number | undefined; } = Object.assign({}, ...primitives.map((v, i) => ({ [v]: i }))); - -enum Tag { - Int = 0, - String = 1, - Sequence = 2, - Prim0 = 3, - Prim0Annot = 4, - Prim1 = 5, - Prim1Annot = 6, - Prim2 = 7, - Prim2Annot = 8, - Prim = 9, - Bytes = 10, -} -class Writer { - public buffer: number[] = []; - - get length(): number { - return this.buffer.length; - } - - writeBytes(val: number[]) { - this.buffer.push(...val.map(v => v & 0xff)); - } - - writeUint8(val: number) { - const v = val | 0; - this.buffer.push(v & 0xff); - } - - writeUint16(val: number) { - const v = val | 0; - this.buffer.push((v >> 8) & 0xff); - this.buffer.push(v & 0xff); - } - - writeUint32(val: number) { - const v = val | 0; - this.buffer.push((v >> 24) & 0xff); - this.buffer.push((v >> 16) & 0xff); - this.buffer.push((v >> 8) & 0xff); - this.buffer.push(v & 0xff); - } - - writeInt8(val: number) { - this.writeUint8(val); - } - - writeInt16(val: number) { - this.writeUint16(val); - } - - writeInt32(val: number) { - this.writeUint32(val); - } -} - -const boundsErr = new Error("bounds out of range"); -class Reader { - constructor(private buffer: number[] | Uint8Array, private idx: number = 0, private cap: number = buffer.length) { - } - - /** Remaining length */ - get length(): number { - return this.cap - this.idx; - } - - readBytes(len: number): number[] | Uint8Array { - if (this.cap - this.idx < len) { - throw boundsErr; - } - const ret = this.buffer.slice(this.idx, this.idx + len); - this.idx += len; - return ret; - } - - reader(len: number): Reader { - if (this.cap - this.idx < len) { - throw boundsErr; - } - const ret = new Reader(this.buffer, this.idx, this.idx + len); - this.idx += len; - return ret; - } - - copy(): Reader { - return new Reader(this.buffer, this.idx, this.cap); - } - - readUint8(): number { - if (this.cap - this.idx < 1) { - throw boundsErr; - } - return this.buffer[this.idx++] >>> 0; - } - - readUint16(): number { - if (this.cap - this.idx < 2) { - throw boundsErr; - } - const x0 = this.buffer[this.idx++]; - const x1 = this.buffer[this.idx++]; - return ((x0 << 8) | x1) >>> 0; - } - - readUint32(): number { - if (this.cap - this.idx < 4) { - throw boundsErr; - } - const x0 = this.buffer[this.idx++]; - const x1 = this.buffer[this.idx++]; - const x2 = this.buffer[this.idx++]; - const x3 = this.buffer[this.idx++]; - return ((x0 << 24) | (x1 << 16) | (x2 << 8) | x3) >>> 0; - } - - readInt8(): number { - if (this.cap - this.idx < 1) { - throw boundsErr; - } - const x = this.buffer[this.idx++]; - return (x << 24) >> 24; - } - - readInt16(): number { - if (this.cap - this.idx < 2) { - throw boundsErr; - } - const x0 = this.buffer[this.idx++]; - const x1 = this.buffer[this.idx++]; - return (((x0 << 8) | x1) << 16) >> 16; - } - - readInt32(): number { - if (this.cap - this.idx < 4) { - throw boundsErr; - } - const x0 = this.buffer[this.idx++]; - const x1 = this.buffer[this.idx++]; - const x2 = this.buffer[this.idx++]; - const x3 = this.buffer[this.idx++]; - return (x0 << 24) | (x1 << 16) | (x2 << 8) | x3; - } -} - -enum ContractID { - Implicit = 0, - Originated = 1, -} - -enum PublicKeyHashID { - ED25519 = 0, - SECP256K1 = 1, - P256 = 2, -} - -type AddressType = "ED25519PublicKeyHash" | "SECP256K1PublicKeyHash" | "P256PublicKeyHash" | "ContractHash"; - -export interface Address { - type: AddressType; - hash: number[] | Uint8Array; - entryPoint?: string; -} - -function readPublicKeyHash(rd: Reader): Address { - let type: AddressType; - const tag = rd.readUint8(); - switch (tag) { - case PublicKeyHashID.ED25519: - type = "ED25519PublicKeyHash"; - break; - case PublicKeyHashID.SECP256K1: - type = "SECP256K1PublicKeyHash"; - break; - case PublicKeyHashID.P256: - type = "P256PublicKeyHash"; - break; - default: - throw new Error(`unknown public key hash tag: ${tag}`); - } - return { type, hash: rd.readBytes(20) }; -} - -function readAddress(rd: Reader): Address { - let address: Address; - const tag = rd.readUint8(); - switch (tag) { - case ContractID.Implicit: - address = readPublicKeyHash(rd); - break; - - case ContractID.Originated: - address = { - type: "ContractHash", - hash: rd.readBytes(20), - }; - rd.readBytes(1); - break; - - default: - throw new Error(`unknown address tag: ${tag}`); - } - - if (rd.length !== 0) { - // entry point - const dec = new TextDecoder(); - address.entryPoint = dec.decode(new Uint8Array(rd.readBytes(rd.length))); - } - return address; -} - -function writePublicKeyHash(a: Address, w: Writer): void { - let tag: PublicKeyHashID; - switch (a.type) { - case "ED25519PublicKeyHash": - tag = PublicKeyHashID.ED25519; - break; - case "SECP256K1PublicKeyHash": - tag = PublicKeyHashID.SECP256K1; - break; - case "P256PublicKeyHash": - tag = PublicKeyHashID.P256; - break; - default: - throw new Error(`unexpected address type: ${a.type}`); - } - w.writeUint8(tag); - w.writeBytes(Array.from(a.hash)); -} - -function writeAddress(a: Address, w: Writer): void { - if (a.type === "ContractHash") { - w.writeUint8(ContractID.Originated); - w.writeBytes(Array.from(a.hash)); - w.writeUint8(0); - } else { - w.writeUint8(ContractID.Implicit); - writePublicKeyHash(a, w); - } - - if (a.entryPoint !== undefined && a.entryPoint !== "" && a.entryPoint !== "default") { - const enc = new TextEncoder(); - const bytes = enc.encode(a.entryPoint); - w.writeBytes(Array.from(bytes)); - } -} - -enum PublicKeyID { - ED25519 = 0, - SECP256K1 = 1, - P256 = 2, -} - -export type PublicKeyType = "ED25519PublicKey" | "SECP256K1PublicKey" | "P256PublicKey"; -export interface PublicKey { - type: PublicKeyType; - publicKey: number[] | Uint8Array; -} - -function readPublicKey(rd: Reader): PublicKey { - let ln: number; - let type: PublicKeyType; - const tag = rd.readUint8(); - switch (tag) { - case PublicKeyID.ED25519: - type = "ED25519PublicKey"; - ln = 32; - break; - case PublicKeyID.SECP256K1: - type = "SECP256K1PublicKey"; - ln = 33; - break; - case PublicKeyID.P256: - type = "P256PublicKey"; - ln = 33; - break; - default: - throw new Error(`unknown public key tag: ${tag}`); - } - return { type, publicKey: rd.readBytes(ln) }; -} - -function writePublicKey(pk: PublicKey, w: Writer): void { - let tag: PublicKeyID; - switch (pk.type) { - case "ED25519PublicKey": - tag = PublicKeyID.ED25519; - break; - case "SECP256K1PublicKey": - tag = PublicKeyID.SECP256K1; - break; - case "P256PublicKey": - tag = PublicKeyID.P256; - break; - default: - throw new Error(`unexpected public key type: ${pk.type}`); - } - w.writeUint8(tag); - w.writeBytes(Array.from(pk.publicKey)); -} - -type WriteTransformFunc = (e: Expr) => [Expr, IterableIterator<WriteTransformFunc>]; - -function writeExpr(expr: Expr, wr: Writer, tf: WriteTransformFunc): void { - const [e, args] = tf(expr); - - if (Array.isArray(e)) { - const w = new Writer(); - for (const v of e) { - const a = args.next(); - if (a.done) { - throw new Error("REPORT ME: iterator is done"); - } - writeExpr(v, w, a.value); - } - wr.writeUint8(Tag.Sequence); - wr.writeUint32(w.length); - wr.writeBytes(w.buffer); - return; - } - - if ("string" in e) { - const enc = new TextEncoder(); - const bytes = enc.encode(e.string); - wr.writeUint8(Tag.String); - wr.writeUint32(bytes.length); - wr.writeBytes(Array.from(bytes)); - return; - } - - if ("int" in e) { - wr.writeUint8(Tag.Int); - let val = BigInt(e.int); - const sign = val < 0; - if (sign) { - val = -val; - } - let i = 0; - do { - const bits = (i === 0) ? BigInt(6) : BigInt(7); - let byte = val & ((BigInt(1) << bits) - BigInt(1)); - val >>= bits; - if (val) { - byte |= BigInt(0x80); - } - if (i === 0 && sign) { - byte |= BigInt(0x40); - } - wr.writeUint8(Number(byte)); - i++; - } while (val); - return; - } - - if ("bytes" in e) { - const bytes = parseHex(e.bytes); - wr.writeUint8(Tag.Bytes); - wr.writeUint32(bytes.length); - wr.writeBytes(bytes); - return; - } - - const prim = primTags[e.prim]; - if (prim === undefined) { - throw new TypeError(`Can't encode primary: ${e.prim}`); - } - - const tag = (e.args?.length || 0) < 3 ? - Tag.Prim0 + (e.args?.length || 0) * 2 + (e.annots === undefined || e.annots.length === 0 ? 0 : 1) : - Tag.Prim; - - wr.writeUint8(tag); - wr.writeUint8(prim); - - if (e.args !== undefined) { - if (e.args.length < 3) { - for (const v of e.args) { - const a = args.next(); - if (a.done) { - throw new Error("REPORT ME: iterator is done"); - } - writeExpr(v, wr, a.value); - } - } else { - const w = new Writer(); - for (const v of e.args) { - const a = args.next(); - if (a.done) { - throw new Error("REPORT ME: iterator is done"); - } - writeExpr(v, w, a.value); - } - wr.writeUint32(w.length); - wr.writeBytes(w.buffer); - } - } - - if (e.annots !== undefined && e.annots.length !== 0) { - const enc = new TextEncoder(); - const bytes = enc.encode(e.annots.join(" ")); - wr.writeUint32(bytes.length); - wr.writeBytes(Array.from(bytes)); - } else if (e.args !== undefined && e.args.length >= 3) { - wr.writeUint32(0); - } -} - -type ReadTransformFuncs = [(e: Expr) => IterableIterator<ReadTransformFuncs>, (e: Expr) => Expr]; - -function readExpr(rd: Reader, tf: ReadTransformFuncs): Expr { - function* passThrough() { - while (true) { - yield readPassThrough; - } - } - const [args, tr] = tf; - const tag = rd.readUint8(); - switch (tag) { - case Tag.Int: - { - const buf: number[] = []; - let byte: number; - do { - byte = rd.readInt8(); - buf.push(byte); - } while ((byte & 0x80) !== 0); - let val = BigInt(0); - let sign = false; - for (let i = buf.length - 1; i >= 0; i--) { - const bits = (i === 0) ? BigInt(6) : BigInt(7); - const byte = BigInt(buf[i]); - val <<= bits; - val |= byte & ((BigInt(1) << bits) - BigInt(1)); - if (i === 0) { - sign = !!(byte & BigInt(0x40)); - } - } - if (sign) { - val = -val; - } - return tr({ int: String(val) }); - } - - case Tag.String: - { - const length = rd.readUint32(); - const bytes = rd.readBytes(length); - const dec = new TextDecoder(); - return tr({ string: dec.decode(new Uint8Array(bytes)) }); - } - - case Tag.Bytes: - { - const length = rd.readUint32(); - const bytes = rd.readBytes(length); - const hex = hexBytes(Array.from(bytes)); - return tr({ bytes: hex }); - } - - case Tag.Sequence: - { - const length = rd.readUint32(); - let res: Expr[] = []; - let savedrd = rd.copy(); - // make two passes - let it: IterableIterator<ReadTransformFuncs> = passThrough(); - for (let n = 0; n < 2; n++) { - const r = savedrd.reader(length); - res = []; - while (r.length > 0) { - const a = it.next(); - if (a.done) { - throw new Error("REPORT ME: iterator is done"); - } - res.push(readExpr(r, a.value)); - } - // make a second pass with injected side effects - it = args(res); - savedrd = rd; - } - return tr(res); - } - - default: - { - if (tag > 9) { - throw new Error(`Unknown tag: ${tag}`); - } - const p = rd.readUint8(); - if (p >= primitives.length) { - throw new Error(`Unknown primitive tag: ${p}`); - } - const prim = primitives[p]; - const argn = (tag - 3) >> 1; - let res: Prim = { prim }; - // make two passes - let it: IterableIterator<ReadTransformFuncs> = passThrough(); - let savedrd = rd.copy(); - for (let n = 0; n < 2; n++) { - res = { prim }; - if (argn < 3) { - for (let i = 0; i < argn; i++) { - const a = it.next(); - if (a.done) { - throw new Error("REPORT ME: iterator is done"); - } - res.args = res.args || []; - res.args.push(readExpr(savedrd, a.value)); - } - } else { - res.args = res.args || []; - const length = savedrd.readUint32(); - const r = savedrd.reader(length); - while (r.length > 0) { - const a = it.next(); - if (a.done) { - throw new Error("REPORT ME: iterator is done"); - } - res.args.push(readExpr(r, a.value)); - } - } - // make a second pass with injected side effects - it = args(res); - savedrd = rd; - } - - if (((tag - 3) & 1) === 1 || argn === 3) { - // read annotations - const length = rd.readUint32(); - if (length !== 0) { - const bytes = rd.readBytes(length); - const dec = new TextDecoder(); - res.annots = dec.decode(new Uint8Array(bytes)).split(" "); - } - } - return tr(res); - } - } -} - -const isOrData = (e: Expr): e is MichelsonDataOr => "prim" in e && (e.prim === "Left" || e.prim === "Right"); -const isOptionData = (e: Expr): e is MichelsonDataOption => "prim" in e && (e.prim === "Some" || e.prim === "None"); - -const getWriteTransformFunc = (t: MichelsonType): WriteTransformFunc => { - if (isPairType(t)) { - return (d: Expr) => { - if (!isPairData(d)) { - throw new MichelsonTypeError(t, d, `pair expected: ${JSON.stringify(d)}`); - } - assertDataListIfAny(d); - // combs aren't used in pack format - const tc = unpackComb("pair", t); - const dc = unpackComb("Pair", d); - return [dc, (function* () { - for (const a of tc.args) { - yield getWriteTransformFunc(a); - } - })()]; - }; - } - - switch (t.prim) { - case "or": - return (d: Expr) => { - if (!isOrData(d)) { - throw new MichelsonTypeError(t, d, `or expected: ${JSON.stringify(d)}`); - } - return [d, (function* () { - yield getWriteTransformFunc(t.args[d.prim === "Left" ? 0 : 1]); - })()]; - }; - - case "option": - return (d: Expr) => { - if (!isOptionData(d)) { - throw new MichelsonTypeError(t, d, `option expected: ${JSON.stringify(d)}`); - } - return [d, (function* () { - const dd = d; - if (dd.prim === "Some") { - yield getWriteTransformFunc(t.args[0]); - } - })()]; - }; - - case "list": - case "set": - return (d: Expr) => { - if (!Array.isArray(d)) { - throw new MichelsonTypeError(t, d, `${t.prim} expected: ${JSON.stringify(d)}`); - } - return [d, (function* () { - for (const _v of d) { - yield getWriteTransformFunc(t.args[0]); - } - })()]; - }; - - case "map": - return (d: Expr) => { - if (!Array.isArray(d)) { - throw new MichelsonTypeError(t, d, `map expected: ${JSON.stringify(d)}`); - } - return [d, (function* (): Generator<WriteTransformFunc> { - for (const _elt of d) { - yield (elt: Expr) => { - if (!("prim" in elt) || elt.prim !== "Elt") { - throw new MichelsonTypeError(t, elt, `map element expected: ${JSON.stringify(elt)}`); - } - return [elt, (function* () { - for (const a of t.args) { - yield getWriteTransformFunc(a); - } - })()]; - }; - } - })()]; - }; - - case "chain_id": - return (d: Expr) => { - if (!("bytes" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `chain id expected: ${JSON.stringify(d)}`); - } - let bytes: BytesLiteral; - if ("string" in d) { - const id = checkDecodeTezosID(d.string, "ChainID"); - if (id === null) { - throw new MichelsonTypeError(t, d, `chain id base58 expected: ${d.string}`); - } - bytes = { bytes: hexBytes(id[1]) }; - } else { - bytes = d; - } - return [bytes, [][Symbol.iterator]()]; - }; - - case "signature": - return (d: Expr) => { - if (!("bytes" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `signature expected: ${JSON.stringify(d)}`); - } - let bytes: BytesLiteral; - if ("string" in d) { - const sig = checkDecodeTezosID(d.string, "ED25519Signature", "SECP256K1Signature", "P256Signature", "GenericSignature"); - if (sig === null) { - throw new MichelsonTypeError(t, d, `signature base58 expected: ${d.string}`); - } - bytes = { bytes: hexBytes(sig[1]) }; - } else { - bytes = d; - } - return [bytes, [][Symbol.iterator]()]; - }; - - case "key_hash": - return (d: Expr) => { - if (!("bytes" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `key hash expected: ${JSON.stringify(d)}`); - } - let bytes: BytesLiteral; - if ("string" in d) { - const pkh = checkDecodeTezosID(d.string, "ED25519PublicKeyHash", "SECP256K1PublicKeyHash", "P256PublicKeyHash"); - if (pkh === null) { - throw new MichelsonTypeError(t, d, `key hash base58 expected: ${d.string}`); - } - const w = new Writer(); - writePublicKeyHash({ type: pkh[0], hash: pkh[1] }, w); - bytes = { bytes: hexBytes(w.buffer) }; - } else { - bytes = d; - } - return [bytes, [][Symbol.iterator]()]; - }; - - case "key": - return (d: Expr) => { - if (!("bytes" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `public key expected: ${JSON.stringify(d)}`); - } - let bytes: BytesLiteral; - if ("string" in d) { - const key = checkDecodeTezosID(d.string, "ED25519PublicKey", "SECP256K1PublicKey", "P256PublicKey"); - if (key === null) { - throw new MichelsonTypeError(t, d, `public key base58 expected: ${d.string}`); - } - const w = new Writer(); - writePublicKey({ type: key[0], publicKey: key[1] }, w); - bytes = { bytes: hexBytes(w.buffer) }; - } else { - bytes = d; - } - return [bytes, [][Symbol.iterator]()]; - }; - - case "address": - return (d: Expr) => { - if (!("bytes" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `address expected: ${JSON.stringify(d)}`); - } - let bytes: BytesLiteral; - if ("string" in d) { - const s = d.string.split("%"); - const address = checkDecodeTezosID(s[0], "ED25519PublicKeyHash", "SECP256K1PublicKeyHash", "P256PublicKeyHash", "ContractHash"); - if (address === null) { - throw new MichelsonTypeError(t, d, `address base58 expected: ${d.string}`); - } - const w = new Writer(); - writeAddress({ type: address[0], hash: address[1], entryPoint: s.length > 1 ? s[1] : undefined }, w); - bytes = { bytes: hexBytes(w.buffer) }; - } else { - bytes = d; - } - return [bytes, [][Symbol.iterator]()]; - }; - - case "timestamp": - return (d: Expr) => { - if (!("string" in d) && !("int" in d)) { - throw new MichelsonTypeError(t, d, `timestamp expected: ${JSON.stringify(d)}`); - } - let int: IntLiteral; - if ("string" in d) { - const p = parseDate(d); - if (p === null) { - throw new MichelsonTypeError(t, d, `can't parse date: ${d.string}`); - } - int = { int: String(Math.floor(p.getTime() / 1000)) }; - } else { - int = d; - } - return [int, [][Symbol.iterator]()]; - }; - - default: - return writePassThrough; - } -}; - -type PushInstruction = MichelsonInstruction & Prim<"PUSH">; -const isPushInstruction = (e: Expr): e is PushInstruction => "prim" in e && e.prim === "PUSH"; - -const writePassThrough: WriteTransformFunc = (e: Expr) => { - if (isPushInstruction(e)) { - assertMichelsonInstruction(e); - // capture inlined type definition - return [e, (function* () { - yield writePassThrough; - yield getWriteTransformFunc(e.args[0]); - })()]; - } - - return [e, (function* () { - while (true) { - yield writePassThrough; - } - })()]; -}; - -/** - * Serializes any value of packable type to its optimized binary representation - * identical to the one used by PACK and UNPACK Michelson instructions. - * Without a type definition (not recommended) the data will be encoded as a binary form of a generic Michelson expression. - * Type definition allows some types like `timestamp` and `address` and other base58 representable types to be encoded to - * corresponding optimized binary forms borrowed from the Tezos protocol - * - * ```typescript - * const data: MichelsonData = { - * string: "KT1RvkwF4F7pz1gCoxkyZrG1RkrxQy3gmFTv%foo" - * }; - * - * const typ: MichelsonType = { - * prim: "address" - * }; - * - * const packed = packData(data, typ); - * - * // 050a0000001901be41ee922ddd2cf33201e49d32da0afec571dce300666f6f - * ``` - * - * Without a type definition the base58 encoded address will be treated as a string - * ```typescript - * const data: MichelsonData = { - * string: "KT1RvkwF4F7pz1gCoxkyZrG1RkrxQy3gmFTv%foo" - * }; - * - * const packed = packData(data); - * - * // 0501000000284b543152766b7746344637707a3167436f786b795a724731526b7278517933676d46547625666f6f - * ``` - * @param d Data object - * @param t Optional type definition - * @returns Binary representation as numeric array - */ -export function packData(d: MichelsonData, t?: MichelsonType): number[] { - const w = new Writer(); - w.writeUint8(5); - writeExpr(d, w, t !== undefined ? getWriteTransformFunc(t) : writePassThrough); - return w.buffer; -} - -/** - * Serializes any value of packable type to its optimized binary representation - * identical to the one used by PACK and UNPACK Michelson instructions. - * Same as {@link packData} but returns a `bytes` Michelson data literal instead of an array - * - * ```typescript - * const data: MichelsonData = { - * string: "2019-09-26T10:59:51Z" - * }; - * - * const typ: MichelsonType = { - * prim: "timestamp" - * }; - * - * const packed = packDataBytes(data, typ); - * - * // { bytes: "0500a7e8e4d80b" } - * ``` - * @param d Data object - * @param t Optional type definition - * @returns Binary representation as a bytes literal - */ -export function packDataBytes(d: MichelsonData, t?: MichelsonType): BytesLiteral { - return { bytes: hexBytes(packData(d, t)) }; -} - -const getReadTransformFuncs = (t: MichelsonType): ReadTransformFuncs => { - if (isPairType(t)) { - const args = Array.isArray(t) ? t : t.args; - return [ - (d: Expr) => { - if (!isPairData(d)) { - throw new MichelsonTypeError(t, d, `pair expected: ${JSON.stringify(d)}`); - } - return (function* () { - for (const a of args) { - yield getReadTransformFuncs(a); - } - })(); - }, - (d: Expr) => d - ]; - } - - switch (t.prim) { - case "or": - return [ - (d: Expr) => { - if (!isOrData(d)) { - throw new MichelsonTypeError(t, d, `or expected: ${JSON.stringify(d)}`); - } - return (function* () { - yield getReadTransformFuncs(t.args[d.prim === "Left" ? 0 : 1]); - })(); - }, - (d: Expr) => d - ]; - - case "option": - return [ - (d: Expr) => { - if (!isOptionData(d)) { - throw new MichelsonTypeError(t, d, `option expected: ${JSON.stringify(d)}`); - } - return (function* () { - if (d.prim === "Some") { - yield getReadTransformFuncs(t.args[0]); - } - })(); - }, - (d: Expr) => d - ]; - - case "list": - case "set": - return [ - (d: Expr) => { - if (!Array.isArray(d)) { - throw new MichelsonTypeError(t, d, `${t.prim} expected: ${JSON.stringify(d)}`); - } - return (function* () { - while (true) { - yield getReadTransformFuncs(t.args[0]); - } - })(); - }, - (d: Expr) => d - ]; - - case "map": - return [ - (d: Expr): IterableIterator<ReadTransformFuncs> => { - if (!Array.isArray(d)) { - throw new MichelsonTypeError(t, d, `map expected: ${JSON.stringify(d)}`); - } - return (function* (): Generator<ReadTransformFuncs> { - while (true) { - yield [ - (elt: Expr) => { - if (!("prim" in elt) || elt.prim !== "Elt") { - throw new MichelsonTypeError(t, elt, `map element expected: ${JSON.stringify(elt)}`); - } - return (function* () { - for (const a of t.args) { - yield getReadTransformFuncs(a); - } - })(); - }, - (elt: Expr) => elt - ]; - } - })(); - }, - (d: Expr) => d - ]; - - case "chain_id": - return [ - () => [][Symbol.iterator](), - (d: Expr) => { - if (!("bytes" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `chain id expected: ${JSON.stringify(d)}`); - } - if ("string" in d) { - return d; - } - const bytes = parseBytes(d.bytes); - if (bytes === null) { - throw new MichelsonTypeError(t, d, `can't parse bytes: ${d.bytes}`); - } - return { string: encodeTezosID("ChainID", bytes) }; - } - ]; - - case "signature": - return [ - () => [][Symbol.iterator](), - (d: Expr) => { - if (!("bytes" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `signature expected: ${JSON.stringify(d)}`); - } - if ("string" in d) { - return d; - } - const bytes = parseBytes(d.bytes); - if (bytes === null) { - throw new MichelsonTypeError(t, d, `can't parse bytes: ${d.bytes}`); - } - return { string: encodeTezosID("GenericSignature", bytes) }; - } - ]; - - case "key_hash": - return [ - () => [][Symbol.iterator](), - (d: Expr) => { - if (!("bytes" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `key hash expected: ${JSON.stringify(d)}`); - } - if ("string" in d) { - return d; - } - const bytes = parseBytes(d.bytes); - if (bytes === null) { - throw new MichelsonTypeError(t, d, `can't parse bytes: ${d.bytes}`); - } - const rd = new Reader(new Uint8Array(bytes)); - const addr = readPublicKeyHash(rd); - return { string: encodeTezosID(addr.type, addr.hash) + (addr.entryPoint ? "%" + addr.entryPoint : "") }; - } - ]; - - case "key": - return [ - () => [][Symbol.iterator](), - (d: Expr) => { - if (!("bytes" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `public key expected: ${JSON.stringify(d)}`); - } - if ("string" in d) { - return d; - } - const bytes = parseBytes(d.bytes); - if (bytes === null) { - throw new MichelsonTypeError(t, d, `can't parse bytes: ${d.bytes}`); - } - const rd = new Reader(new Uint8Array(bytes)); - const pk = readPublicKey(rd); - return { string: encodeTezosID(pk.type, pk.publicKey) }; - } - ]; - - case "address": - return [ - () => [][Symbol.iterator](), - (d: Expr) => { - if (!("bytes" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `address expected: ${JSON.stringify(d)}`); - } - if ("string" in d) { - return d; - } - const bytes = parseBytes(d.bytes); - if (bytes === null) { - throw new MichelsonTypeError(t, d, `can't parse bytes: ${d.bytes}`); - } - const rd = new Reader(new Uint8Array(bytes)); - const addr = readAddress(rd); - return { string: encodeTezosID(addr.type, addr.hash) + (addr.entryPoint ? "%" + addr.entryPoint : "") }; - } - ]; - - case "timestamp": - return [ - () => [][Symbol.iterator](), - (d: Expr) => { - if (!("int" in d) && !("string" in d)) { - throw new MichelsonTypeError(t, d, `address expected: ${JSON.stringify(d)}`); - } - if ("string" in d) { - return d; - } - const date = new Date(parseInt(d.int, 10) * 1000); - return { string: date.toISOString().slice(0, 19) + "Z" }; - } - ]; - - default: - return readPassThrough; - } -}; - -const readPassThrough: ReadTransformFuncs = [ - (e: Expr) => { - if (isPushInstruction(e)) { - assertMichelsonInstruction(e); - // capture inlined type definition - return (function* () { - yield readPassThrough; - yield getReadTransformFuncs(e.args[0]); - })(); - } - - return (function* () { - while (true) { - yield readPassThrough; - } - })(); - }, - (e: Expr) => e -]; - -/** - * Deserialize a byte array into the corresponding Michelson value. - * Without a type definition (not recommended) the binary data will be treated as a binary form of a generic Michelson expression and returned as is. - * Type definition allows some types like `timestamp` and `address` and other types usually encoded in optimized binary forms to be transformed - * back to their string representations like base58 and ISO timestamps. - * - * ```typescript - * const src = [0x05, 0x00, 0xa7, 0xe8, 0xe4, 0xd8, 0x0b]; - * - * const typ: MichelsonType = { - * prim: "timestamp" - * }; - * - * const data = unpackData(src, typ); - * - * // { string: "2019-09-26T10:59:51Z" } - * ``` - * - * Same binary data without a type definition - * ```typescript - * const src = [0x05, 0x00, 0xa7, 0xe8, 0xe4, 0xd8, 0x0b]; - * - * const data = unpackData(src); - * - * // { int: "1569495591" } - * ``` - * @param src Byte array - * @param t Optional type definition - * @returns Deserialized data - */ -export function unpackData(src: number[] | Uint8Array, t?: MichelsonType): MichelsonData { - const r = new Reader(src); - if (r.readUint8() !== 5) { - throw new Error("incorrect packed data magic number"); - } - const ex = readExpr(r, t !== undefined ? getReadTransformFuncs(t) : readPassThrough); - if (assertMichelsonData(ex)) { - return ex; - } - throw new Error(); // never -} - -/** - * Deserialize a byte array into the corresponding Michelson value. - * Same as {@link unpackData} but takes a `bytes` Michelson data literal instead of an array - * - * ```typescript - * const src = { bytes: "0500a7e8e4d80b" }; - * - * const typ: MichelsonType = { - * prim: "timestamp" - * }; - * - * const data = unpackDataBytes(src, typ); - * - * // { string: "2019-09-26T10:59:51Z" } - * ``` - * @param src Bytes object - * @param t Optional type definition - * @returns Deserialized data - */ -export function unpackDataBytes(src: BytesLiteral, t?: MichelsonType): MichelsonData { - const bytes = parseBytes(src.bytes); - if (bytes === null) { - throw new Error(`can't parse bytes: "${src.bytes}"`); - } - return unpackData(bytes, t); -} - -// helper functions also used by validator - -export function decodeAddressBytes(b: BytesLiteral): Address { - const bytes = parseBytes(b.bytes); - if (bytes === null) { - throw new Error(`can't parse bytes: "${b.bytes}"`); - } - const rd = new Reader(new Uint8Array(bytes)); - return readAddress(rd); -} - -export function decodePublicKeyHashBytes(b: BytesLiteral): Address { - const bytes = parseBytes(b.bytes); - if (bytes === null) { - throw new Error(`can't parse bytes: "${b.bytes}"`); - } - const rd = new Reader(new Uint8Array(bytes)); - return readPublicKeyHash(rd); -} - -export function decodePublicKeyBytes(b: BytesLiteral): PublicKey { - const bytes = parseBytes(b.bytes); - if (bytes === null) { - throw new Error(`can't parse bytes: "${b.bytes}"`); - } - const rd = new Reader(new Uint8Array(bytes)); - return readPublicKey(rd); -} \ No newline at end of file diff --git a/packages/taquito-michel-codec/src/formatters.ts b/packages/taquito-michel-codec/src/formatters.ts index 34971160d1..5e0cc701c5 100644 --- a/packages/taquito-michel-codec/src/formatters.ts +++ b/packages/taquito-michel-codec/src/formatters.ts @@ -1,10 +1,10 @@ -import { sourceReference, Expr } from "./micheline"; -import { InstructionTrace, MichelsonInstructionError } from "./michelson-typecheck"; +import { sourceReference } from "./micheline"; +import { InstructionTrace, MichelsonInstructionError, MichelsonTypeError } from "./michelson-typecheck"; import { emitMicheline } from "./micheline-emitter"; -import { unpackAnnotations, MichelsonError, MichelsonTypeError } from "./utils"; -import { MichelsonReturnType } from "./michelson-types"; +import { unpackAnnotations, MichelsonError } from "./utils"; +import { MichelsonStackType } from "./michelson-types"; -export function formatStack(s: MichelsonReturnType): string { +export function formatStack(s: MichelsonStackType): string { if ("failed" in s) { return `[FAILED: ${emitMicheline(s.failed)}]`; } @@ -41,7 +41,7 @@ ${formatStack(err.stackState)} `; } else if (err instanceof MichelsonTypeError) { const type = Array.isArray(err.val) ? - "[" + (err.val as Expr[]).map((v, i) => `[${i}]: ${emitMicheline(v)}`).join("; ") + "]" : + "[" + err.val.map((v, i) => `[${i}]: ${emitMicheline(v)}`).join("; ") + "]" : emitMicheline(err.val); return `Type: ${type} diff --git a/packages/taquito-michel-codec/src/macros.ts b/packages/taquito-michel-codec/src/macros.ts index d730f14273..4dd32e4419 100644 --- a/packages/taquito-michel-codec/src/macros.ts +++ b/packages/taquito-michel-codec/src/macros.ts @@ -1,5 +1,4 @@ import { Prim, Expr, IntLiteral } from "./micheline"; -import { DefaultProtocol, Protocol, ProtocolOptions } from "./michelson-types"; import { Tuple, NoArgs, ReqArgs, NoAnnots } from "./utils"; export class MacroError extends Error { @@ -164,9 +163,7 @@ const mapCadrRe = /^MAP_C[AD]+R$/; const diipRe = /^DI{2,}P$/; const duupRe = /^DU+P$/; -export function expandMacros(ex: Prim, opt?: ProtocolOptions): Expr { - const proto = opt?.protocol || DefaultProtocol; - +export function expandMacros(ex: Prim): Expr { function mayRename(annots?: string[]): Prim[] { return annots !== undefined ? [{ prim: "RENAME", annots }] : []; } @@ -335,23 +332,6 @@ export function expandMacros(ex: Prim, opt?: ProtocolOptions): Expr { if (assertArgs(ex, 2)) { return [mkPrim({ prim: "IF_LEFT", annots: ex.annots, args: [ex.args[1], ex.args[0]] })]; } - break; - - // CAR/CDR n - case "CAR": - case "CDR": - if (ex.args !== undefined) { - if (assertArgs(ex, 1) && assertIntArg(ex, ex.args[0])) { - const n = parseInt(ex.args[0].int, 10); - return mkPrim({ - prim: "GET", - args: [{ int: ex.prim === "CAR" ? String(n * 2 + 1) : String(n * 2) }], - annots: ex.annots, - }); - } - } else { - return ex; - } } // More syntactic conveniences @@ -379,25 +359,7 @@ export function expandMacros(ex: Prim, opt?: ProtocolOptions): Expr { // UNPAPPAIIR macro if (unpairRe.test(ex.prim)) { - if (proto === Protocol.PtEdo2Zk || proto === Protocol.PsFLorena) { - if (ex.prim === "UNPAIR") { - return ex; - } - if (assertArgs(ex, 0)) { - // 008_edo: annotations are deprecated - const { r } = parsePairUnpairExpr(ex, ex.prim.slice(3), [], (l, r, top) => [top, ...(r || []), ...(l || [])]); - return r.map(([v]) => { - const leaf = mkPrim({ - prim: "UNPAIR", - }); - - return v === 0 ? leaf : { - prim: "DIP", - args: v === 1 ? [[leaf]] : [{ int: String(v) }, [leaf]], - }; - }); - } - } else if (assertArgs(ex, 0)) { + if (assertArgs(ex, 0)) { const { r } = parsePairUnpairExpr(ex, ex.prim.slice(3), ex.annots || [], (l, r, top) => [top, ...(r || []), ...(l || [])]); return r.map(([v, a]) => { const leaf: Prim[] = [ @@ -522,57 +484,50 @@ export function expandMacros(ex: Prim, opt?: ProtocolOptions): Expr { } } - // Expand DU...UP and DUP n + // Expand modern DUP n or deprecated DU...UP if (duupRe.test(ex.prim)) { let n = 0; while (ex.prim[1 + n] === "U") { n++; } - if (proto === Protocol.PtEdo2Zk || proto === Protocol.PsFLorena) { - if (n === 1) { - return ex; + + if (n === 1) { + if (ex.args === undefined) { + return ex; // skip } - if (assertArgs(ex, 0)) { - return mkPrim({ prim: "DUP", args: [{ int: String(n) }], annots: ex.annots }); + if (assertArgs(ex, 1) && assertIntArg(ex, ex.args[0])) { + n = parseInt(ex.args[0].int, 10); } } else { - if (n === 1) { - if (ex.args === undefined) { - return ex; // skip - } - if (assertArgs(ex, 1) && assertIntArg(ex, ex.args[0])) { - n = parseInt(ex.args[0].int, 10); - } - } else { - assertArgs(ex, 0); - } + assertArgs(ex, 0); + } - if (n === 1) { - return [mkPrim({ prim: "DUP", annots: ex.annots })]; + if (n === 1) { + return [mkPrim({ prim: "DUP", annots: ex.annots })]; - } else if (n === 2) { - return [ - { - prim: "DIP", - args: [[mkPrim({ prim: "DUP", annots: ex.annots })]], - }, - { prim: "SWAP" }, - ]; + } else if (n === 2) { + return [ + { + prim: "DIP", + args: [[mkPrim({ prim: "DUP", annots: ex.annots })]], + }, + { prim: "SWAP" }, + ]; - } else { - return [ - { - prim: "DIP", - args: [ - { int: String(n - 1) }, - [mkPrim({ prim: "DUP", annots: ex.annots })], - ], - }, - { - prim: "DIG", - args: [{ int: String(n) }], - }, - ]; - } + } else { + return [ + { + prim: "DIP", + args: [ + { int: String(n - 1) }, + [mkPrim({ prim: "DUP", annots: ex.annots })], + ], + }, + { + prim: "DIG", + args: [{ int: String(n) }], + }, + ]; } + } return ex; diff --git a/packages/taquito-michel-codec/src/micheline-parser.ts b/packages/taquito-michel-codec/src/micheline-parser.ts index 12e2cdc801..ed9ef01e9a 100644 --- a/packages/taquito-michel-codec/src/micheline-parser.ts +++ b/packages/taquito-michel-codec/src/micheline-parser.ts @@ -1,7 +1,7 @@ import { scan, Token, Literal } from './scan'; import { Expr, Prim, StringLiteral, IntLiteral, BytesLiteral, sourceReference, List, SourceReference } from './micheline'; import { expandMacros } from './macros'; -import { ProtocolOptions } from './michelson-types'; +import { lstat } from 'fs'; export class MichelineParseError extends Error { /** @@ -34,11 +34,11 @@ function isAnnotation(tok: Token): boolean { const intRe = new RegExp('^-?[0-9]+$'); const bytesRe = new RegExp('^([0-9a-fA-F]{2})*$'); -export interface ParserOptions extends ProtocolOptions { +export interface ParserOptions { /** * Expand [Michelson macros](https://tezos.gitlab.io/whitedoc/michelson.html#macros) during parsing. */ - expandMacros?: boolean; + expandMacros: boolean; } /** @@ -74,12 +74,11 @@ export interface ParserOptions extends ProtocolOptions { * ``` */ export class Parser { - constructor(private opt?: ParserOptions) { - } + constructor(private opt?: ParserOptions) { } private expand(ex: Prim): Expr { - if (this.opt?.expandMacros !== undefined ? this.opt?.expandMacros : true) { - const ret = expandMacros(ex, this.opt); + if (this.opt?.expandMacros) { + const ret = expandMacros(ex); if (ret !== ex) { ret[sourceReference] = { ...(ex[sourceReference] || { first: 0, last: 0 }), macro: ex }; } @@ -89,22 +88,10 @@ export class Parser { } } - private parseListExpr(scanner: Iterator<Token>, start: Token): Expr { - const ref: SourceReference = { - first: start.first, - last: start.last, - }; - - const expectBracket = start.t === "("; - let tok: IteratorResult<Token>; - if (expectBracket) { - tok = scanner.next(); - if (tok.done) { - throw errEOF; - } - ref.last = tok.value.last; - } else { - tok = { value: start }; + private parseList(scanner: Iterator<Token>, start: Token): Expr { + const tok = scanner.next(); + if (tok.done) { + throw errEOF; } if (tok.value.t !== Literal.Ident) { @@ -113,33 +100,30 @@ export class Parser { const ret: Prim = { prim: tok.value.v, - [sourceReference]: ref, }; + let last: number; for (; ;) { const tok = scanner.next(); if (tok.done) { - if (expectBracket) { - throw errEOF; - } - break; - } else if (tok.value.t === ')') { - if (!expectBracket) { - throw new MichelineParseError(tok.value, `unexpected closing bracket`); - } - ref.last = tok.value.last; + throw errEOF; + } + if (tok.value.t === ')') { + last = tok.value.last; break; - } else if (isAnnotation(tok.value)) { + } + if (isAnnotation(tok.value)) { ret.annots = ret.annots || []; ret.annots.push(tok.value.v); - ref.last = tok.value.last; } else { ret.args = ret.args || []; - const arg = this.parseExpr(scanner, tok.value); - ref.last = arg[sourceReference]?.last || ref.last; - ret.args.push(arg); + ret.args.push(this.parseExpr(scanner, tok.value)); } } + ret[sourceReference] = { + first: start.first, + last, + }; return this.expand(ret); } @@ -149,10 +133,7 @@ export class Parser { first: start.first, last: start.last, }; - const p: Prim = { - prim: start.v, - [sourceReference]: ref, - }; + const p: Prim = { prim: start.v, [sourceReference]: ref }; for (; ;) { const t = scanner.next(); @@ -173,7 +154,7 @@ export class Parser { } } - private parseSequenceExpr(scanner: Iterator<Token>, start: Token): List<Expr> { + private parseSequence(scanner: Iterator<Token>, start: Token): List<Expr> { const ref: SourceReference = { first: start.first, last: start.last, @@ -245,11 +226,14 @@ export class Parser { case Literal.Bytes: return { bytes: tok.v.slice(2), [sourceReference]: { first: tok.first, last: tok.last } }; + case '(': + return this.parseList(scanner, tok); + case '{': - return this.parseSequenceExpr(scanner, tok); + return this.parseSequence(scanner, tok); default: - return this.parseListExpr(scanner, tok); + throw new MichelineParseError(tok, `unexpected token: ${tok.v}`); } } @@ -257,26 +241,7 @@ export class Parser { * Parses a Micheline sequence expression, such as smart contract source. Enclosing curly brackets may be omitted. * @param src A Micheline sequence `{parameter ...; storage int; code { DUP ; ...};}` or `parameter ...; storage int; code { DUP ; ...};` */ - parseSequence(src: string): Expr[] | null { - // tslint:disable-next-line: strict-type-predicates - if (typeof src !== "string") { - throw new TypeError(`string type was expected, got ${typeof src} instead`); - } - - const scanner = scan(src); - const tok = scanner.next(); - if (tok.done) { - return null; - } - return this.parseSequenceExpr(scanner, tok.value); - } - - /** - * Parse a Micheline sequence expression. Enclosing curly brackets may be omitted. - * @param src A Michelson list expression such as `(Pair {Elt "0" 0} 0)` or `Pair {Elt "0" 0} 0` - * @returns An AST node or null for empty document. - */ - parseList(src: string): Expr | null { + parseScript(src: string): Expr[] | null { // tslint:disable-next-line: strict-type-predicates if (typeof src !== "string") { throw new TypeError(`string type was expected, got ${typeof src} instead`); @@ -287,7 +252,7 @@ export class Parser { if (tok.done) { return null; } - return this.parseListExpr(scanner, tok.value); + return this.parseSequence(scanner, tok.value); } /** @@ -309,25 +274,6 @@ export class Parser { return this.parseExpr(scanner, tok.value); } - /** - * Parse a Micheline sequence expression, such as smart contract source. Enclosing curly brackets may be omitted. - * An alias for `parseSequence` - * @param src A Micheline sequence `{parameter ...; storage int; code { DUP ; ...};}` or `parameter ...; storage int; code { DUP ; ...};` - */ - parseScript(src: string): Expr[] | null { - return this.parseSequence(src); - } - - /** - * Parse a Micheline sequence expression. Enclosing curly brackets may be omitted. - * An alias for `parseList` - * @param src A Michelson list expression such as `(Pair {Elt "0" 0} 0)` or `Pair {Elt "0" 0} 0` - * @returns An AST node or null for empty document. - */ - parseData(src: string): Expr | null { - return this.parseList(src); - } - /** * Takes a JSON-encoded Michelson, validates it, strips away unneeded properties and optionally expands macros (See {@link ParserOptions}). * @param src An object containing JSON-encoded Michelson, usually returned by `JSON.parse()` diff --git a/packages/taquito-michel-codec/src/micheline.ts b/packages/taquito-michel-codec/src/micheline.ts index 2d248a309a..d7d220b02b 100644 --- a/packages/taquito-michel-codec/src/micheline.ts +++ b/packages/taquito-michel-codec/src/micheline.ts @@ -22,8 +22,8 @@ export interface StringLiteral extends Node { /** * An AST node representing Michelson int literal. */ -export interface IntLiteral<T extends string = string> extends Node { - int: T; +export interface IntLiteral extends Node { + int: string; } /** diff --git a/packages/taquito-michel-codec/src/michelson-contract.ts b/packages/taquito-michel-codec/src/michelson-contract.ts index 124fc1f160..ba0b4a2237 100644 --- a/packages/taquito-michel-codec/src/michelson-contract.ts +++ b/packages/taquito-michel-codec/src/michelson-contract.ts @@ -1,24 +1,23 @@ import { MichelsonContract, MichelsonContractSection, MichelsonType, - MichelsonData, MichelsonCode, MichelsonReturnType + MichelsonData, MichelsonCode, MichelsonStackType } from "./michelson-types"; import { assertContractValid, contractSection, contractEntryPoint, assertDataValid, assertTypeAnnotationsValid, - InstructionTrace, Context, functionType, - isDataValid, contractEntryPoints + InstructionTrace, Context, functionType } from "./michelson-typecheck"; -import { Parser, ParserOptions } from "./micheline-parser"; +import { Parser } from "./micheline-parser"; import { assertMichelsonContract, assertMichelsonType, assertMichelsonData } from "./michelson-validator"; -export interface ContractOptions extends ParserOptions { +export interface ContractOptions { traceCallback?: (t: InstructionTrace) => void; } export class Contract { private ctx: Context; - public readonly output: MichelsonReturnType; + public readonly output: MichelsonStackType; constructor(public readonly contract: MichelsonContract, opt?: ContractOptions) { this.ctx = { contract, ...opt }; @@ -26,7 +25,7 @@ export class Contract { } static parse(src: string | object, opt?: ContractOptions): Contract { - const p = new Parser(opt); + const p = new Parser({ expandMacros: true }); const expr = typeof src === "string" ? p.parseScript(src) : p.parseJSON(src); if (expr === null) { throw new Error("empty contract"); @@ -37,8 +36,8 @@ export class Contract { throw undefined; } - static parseTypeExpression(src: string | object, opt?: ParserOptions): MichelsonType { - const p = new Parser(opt); + static parseTypeExpression(src: string | object): MichelsonType { + const p = new Parser({ expandMacros: true }); const expr = typeof src === "string" ? p.parseScript(src) : p.parseJSON(src); if (expr === null) { throw new Error("empty type expression"); @@ -49,8 +48,8 @@ export class Contract { throw undefined; } - static parseDataExpression(src: string | object, opt?: ParserOptions): MichelsonData { - const p = new Parser(opt); + static parseDataExpression(src: string | object): MichelsonData { + const p = new Parser({ expandMacros: true }); const expr = typeof src === "string" ? p.parseScript(src) : p.parseJSON(src); if (expr === null) { throw new Error("empty data expression"); @@ -65,20 +64,12 @@ export class Contract { return contractSection(this.contract, section); } - entryPoints(): [string, MichelsonType][] { - return contractEntryPoints(this.contract); - } - entryPoint(ep?: string): MichelsonType | null { return contractEntryPoint(this.contract, ep); } - assertDataValid(d: MichelsonData, t: MichelsonType): void { - assertDataValid(d, t, this.ctx); - } - - isDataValid(d: MichelsonData, t: MichelsonType): boolean { - return isDataValid(d, t, this.ctx); + assertDataValid(t: MichelsonType, d: MichelsonData): void { + assertDataValid(t, d, this.ctx); } assertParameterValid(ep: string | null, d: MichelsonData): void { @@ -86,19 +77,10 @@ export class Contract { if (t === null) { throw new Error(`contract has no entrypoint named ${ep}`); } - this.assertDataValid(d, t); - } - - isParameterValid(ep: string | null, d: MichelsonData): boolean { - try { - this.assertParameterValid(ep, d); - return true; - } catch { - return false; - } + this.assertDataValid(t, d); } - functionType(inst: MichelsonCode, stack: MichelsonType[]): MichelsonReturnType { + functionType(inst: MichelsonCode, stack: MichelsonType[]): MichelsonStackType { return functionType(inst, stack, this.ctx); } } diff --git a/packages/taquito-michel-codec/src/michelson-typecheck.ts b/packages/taquito-michel-codec/src/michelson-typecheck.ts index 594358449f..c6b5701583 100644 --- a/packages/taquito-michel-codec/src/michelson-typecheck.ts +++ b/packages/taquito-michel-codec/src/michelson-typecheck.ts @@ -1,75 +1,66 @@ -import { Prim, Expr } from "./micheline"; +import { StringLiteral, IntLiteral, Prim, Expr } from "./micheline"; import { - MichelsonType, MichelsonData, MichelsonMapElt, MichelsonCode, MichelsonTypeOption, - MichelsonContract, MichelsonContractSection, MichelsonReturnType, MichelsonTypePair, - MichelsonInstruction, InstructionList, MichelsonTypeID, MichelsonTypeOr, - DefaultProtocol, - Protocol, - refContract, - MichelsonTypeAddress + MichelsonType, MichelsonData, MichelsonComparableType, MichelsonMapElt, MichelsonCode, + MichelsonTypeOption, MichelsonContract, + MichelsonContractSection, MichelsonStackType } from "./michelson-types"; import { unpackAnnotations, MichelsonError, isNatural, LongInteger, parseBytes, compareBytes, isDecimal, - checkDecodeTezosID, UnpackedAnnotations, Nullable, - UnpackAnnotationsOptions, unpackComb, MichelsonTypeError, isPairType, isPairData, parseDate, + checkTezosID, tezosPrefix, UnpackedAnnotations, Nullable, UnpackAnnotationsOptions, } from "./utils"; import { decodeBase58Check } from "./base58"; -import { decodeAddressBytes, decodePublicKeyBytes, decodePublicKeyHashBytes } from "./binary"; import { - assertMichelsonComparableType, - assertMichelsonPackableType, assertMichelsonStorableType, - assertMichelsonBigMapStorableType, assertMichelsonPushableType, isInstruction, assertDataListIfAny + assertMichelsonComparableType, instructionIDs, + assertMichelsonSerializableType, assertMichelsonStorableType } from "./michelson-validator"; -import { ParserOptions } from "./micheline-parser"; -export interface Context extends ParserOptions { +export interface Context { contract?: MichelsonContract; traceCallback?: (t: InstructionTrace) => void; } +export class MichelsonTypeError extends MichelsonError<MichelsonType | MichelsonType[]> { + public data?: MichelsonData; + + /** + * @param val Value of a type node caused the error + * @param data Value of a data node caused the error + * @param message An error message + */ + constructor(val: MichelsonType | MichelsonType[], data?: MichelsonData, message?: string) { + super(val, message); + if (data !== undefined) { + this.data = data; + } + Object.setPrototypeOf(this, MichelsonTypeError.prototype); + } +} + export class MichelsonInstructionError extends MichelsonError<MichelsonCode> { /** * @param val Value of a type node caused the error * @param stackState Current stack state * @param message An error message */ - constructor(val: MichelsonCode, public stackState: MichelsonReturnType, message?: string) { + constructor(val: MichelsonCode, public stackState: MichelsonStackType, message?: string) { super(val, message); Object.setPrototypeOf(this, MichelsonInstructionError.prototype); } } -// 'sequence as a pair' edo syntax helpers -function typeID(t: MichelsonType): MichelsonTypeID { - return Array.isArray(t) ? "pair" : t.prim; -} - -type TypeArgs<T extends MichelsonType> = T extends Prim ? T["args"] : T; -function typeArgs<T extends MichelsonType>(t: T): TypeArgs<T> { - return ("prim" in t ? (t as Extract<MichelsonType, Prim>).args : t) as TypeArgs<T>; -} - function assertScalarTypesEqual(a: MichelsonType, b: MichelsonType, field: boolean = false): void { - if (typeID(a) !== typeID(b)) { - throw new MichelsonTypeError(a, undefined, `types mismatch: ${typeID(a)} != ${typeID(b)}`); + if (a.prim !== b.prim) { + throw new MichelsonTypeError(a, undefined, `types mismatch: ${a.prim} != ${b.prim}`); } const ann = [unpackAnnotations(a), unpackAnnotations(b)]; if (ann[0].t && ann[1].t && ann[0].t[0] !== ann[1].t[0]) { - throw new MichelsonTypeError(a, undefined, `${typeID(a)}: type names mismatch: ${ann[0].t[0]} != ${ann[1].t[0]}`); + throw new MichelsonTypeError(a, undefined, `${a.prim}: type names mismatch: ${ann[0].t[0]} != ${ann[1].t[0]}`); } if (field && (ann[0].f && ann[1].f && ann[0].f[0] !== ann[1].f[0])) { - throw new MichelsonTypeError(a, undefined, `${typeID(a)}: field names mismatch: ${ann[0].f[0]} != ${ann[1].f}`); - } - - if (isPairType(a)) { - const aArgs = unpackComb("pair", a); - const bArgs = unpackComb("pair", b as typeof a); - assertScalarTypesEqual(aArgs.args[0], bArgs.args[0], true); - assertScalarTypesEqual(aArgs.args[1], bArgs.args[1], true); - return; + throw new MichelsonTypeError(a, undefined, `${a.prim}: field names mismatch: ${ann[0].f[0]} != ${ann[1].f}`); } switch (a.prim) { @@ -77,10 +68,10 @@ function assertScalarTypesEqual(a: MichelsonType, b: MichelsonType, field: boole case "list": case "contract": case "set": - case "ticket": assertScalarTypesEqual(a.args[0], (b as typeof a).args[0]); break; + case "pair": case "or": assertScalarTypesEqual(a.args[0], (b as typeof a).args[0], true); assertScalarTypesEqual(a.args[1], (b as typeof a).args[1], true); @@ -91,49 +82,39 @@ function assertScalarTypesEqual(a: MichelsonType, b: MichelsonType, field: boole case "big_map": assertScalarTypesEqual(a.args[0], (b as typeof a).args[0]); assertScalarTypesEqual(a.args[1], (b as typeof a).args[1]); - break; - - case "sapling_state": - case "sapling_transaction": - if (parseInt(a.args[0].int, 10) !== parseInt((b as typeof a).args[0].int, 10)) { - throw new MichelsonTypeError(a, undefined, `${typeID(a)}: type argument mismatch: ${a.args[0].int} != ${(b as typeof a).args[0].int}`); - } } } -function assertStacksEqual<T1 extends MichelsonType[], T2 extends T1>(a: T1, b: T2): void { - if (a.length !== b.length) { - throw new MichelsonTypeError(a, undefined, `stack length mismatch: ${a.length} != ${b.length}`); - } - for (let i = 0; i < a.length; i++) { - assertScalarTypesEqual(a[i], b[i]); +function assertTypesEqualInternal<T1 extends MichelsonType | MichelsonType[], T2 extends T1>(a: T1, b: T2, field: boolean = false): void { + if (Array.isArray(a)) { + // type guards don't work for parametrized generic types + const aa = a as MichelsonType[]; + const bb = b as MichelsonType[]; + if (aa.length !== bb.length) { + throw new MichelsonTypeError(aa, undefined, `stack length mismatch: ${aa.length} != ${bb.length}`); + } + for (let i = 0; i < aa.length; i++) { + assertScalarTypesEqual(aa[i], bb[i], field); + } + } else { + assertScalarTypesEqual(a as MichelsonType, b as MichelsonType, field); } } export function assertTypeAnnotationsValid(t: MichelsonType, field: boolean = false): void { - if (!Array.isArray(t)) { - const ann = unpackAnnotations(t); - if ((ann.t?.length || 0) > 1) { - throw new MichelsonTypeError(t, undefined, `${t.prim}: at most one type annotation allowed: ${t.annots}`); - } - - if (field) { - if ((ann.f?.length || 0) > 1) { - throw new MichelsonTypeError(t, undefined, `${t.prim}: at most one field annotation allowed: ${t.annots}`); - } - } else { - if ((ann.f?.length || 0) > 0) { - throw new MichelsonTypeError(t, undefined, `${t.prim}: field annotations aren't allowed: ${t.annots}`); - } - } + const ann = unpackAnnotations(t); + if ((ann.t?.length || 0) > 1) { + throw new MichelsonTypeError(t, undefined, `${t.prim}: at most one type annotation allowed: ${t.annots}`); } - if (isPairType(t)) { - const args = typeArgs(t); - for (const a of args) { - assertTypeAnnotationsValid(a, true); + if (field) { + if ((ann.f?.length || 0) > 1) { + throw new MichelsonTypeError(t, undefined, `${t.prim}: at most one field annotation allowed: ${t.annots}`); + } + } else { + if ((ann.f?.length || 0) > 0) { + throw new MichelsonTypeError(t, undefined, `${t.prim}: field annotations aren't allowed: ${t.annots}`); } - return; } switch (t.prim) { @@ -144,10 +125,10 @@ export function assertTypeAnnotationsValid(t: MichelsonType, field: boolean = fa assertTypeAnnotationsValid(t.args[0]); break; + case "pair": case "or": - for (const a of t.args) { - assertTypeAnnotationsValid(a, true); - } + assertTypeAnnotationsValid(t.args[0], true); + assertTypeAnnotationsValid(t.args[1], true); break; case "lambda": @@ -160,112 +141,104 @@ export function assertTypeAnnotationsValid(t: MichelsonType, field: boolean = fa // Data integrity check -function compareMichelsonData(t: MichelsonType, a: MichelsonData, b: MichelsonData): number { - if (isPairType(t)) { - if (isPairData(a) && isPairData(b)) { - assertDataListIfAny(a); - assertDataListIfAny(b); - const tComb = unpackComb("pair", t); - const aComb = unpackComb("Pair", a); - const bComb = unpackComb("Pair", b); - const x = compareMichelsonData(tComb.args[0], aComb.args[0], bComb.args[0]); - if (x !== 0) { +const rfc3339Re = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])[T ]([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|[+-]([01][0-9]|2[0-3]):([0-5][0-9]))$/; + +function parseDate(a: StringLiteral | IntLiteral): Date | null { + if ("string" in a) { + if (isNatural(a.string)) { + return new Date(parseInt(a.string, 10)); + } else if (rfc3339Re.test(a.string)) { + const x = new Date(a.string); + if (!Number.isNaN(x.valueOf)) { return x; } - return compareMichelsonData(tComb.args[0], aComb.args[1], bComb.args[1]); } - } else { - switch (t.prim) { - case "int": - case "nat": - case "mutez": - if (("int" in a) && ("int" in b)) { - return new LongInteger(a.int).cmp(new LongInteger(b.int)); - } - break; + } else if (isNatural(a.int)) { + return new Date(parseInt(a.int, 10)); + } + return null; +} - case "string": - if (("string" in a) && ("string" in b)) { - const x = a.string.localeCompare(b.string); - return x < 0 ? -1 : x > 0 ? 1 : 0; - } - break; +function compareMichelsonData(t: MichelsonComparableType, a: MichelsonData, b: MichelsonData): number { + switch (t.prim) { + case "int": + case "nat": + case "mutez": + if (("int" in a) && ("int" in b)) { + return new LongInteger(a.int).cmp(new LongInteger(b.int)); + } + break; - case "bytes": - if (("bytes" in a) && ("bytes" in b)) { - const aa = parseBytes(a.bytes); - const bb = parseBytes(b.bytes); - if (aa !== null && bb !== null) { - return compareBytes(aa, bb); - } - } - break; + case "string": + if (("string" in a) && ("string" in b)) { + const x = a.string.localeCompare(b.string); + return x < 0 ? -1 : x > 0 ? 1 : 0; + } + break; - case "bool": - if (("prim" in a) && ("prim" in b) && (a.prim === "True" || a.prim === "False") && (b.prim === "True" || b.prim === "False")) { - return a.prim === b.prim ? 0 : a.prim === "False" ? -1 : 1; + case "bytes": + if (("bytes" in a) && ("bytes" in b)) { + const aa = parseBytes(a.bytes); + const bb = parseBytes(b.bytes); + if (aa !== null && bb !== null) { + return compareBytes(aa, bb); } - break; + } + break; - case "key": - case "key_hash": - case "address": - case "signature": - case "chain_id": - if (("string" in a || "bytes" in a) && ("string" in b || "bytes" in b)) { - return compareBytes("string" in a ? decodeBase58Check(a.string) : parseBytes(a.bytes) || [], "string" in b ? decodeBase58Check(b.string) : parseBytes(b.bytes) || []); - } - break; + case "bool": + if (("prim" in a) && ("prim" in b) && (a.prim === "True" || a.prim === "False") && (b.prim === "True" || b.prim === "False")) { + return a.prim === b.prim ? 0 : a.prim === "False" ? -1 : 1; + } + break; - case "timestamp": - if ((("string" in a) || ("int" in a)) && (("string" in b) || ("int" in b))) { - const aa = parseDate(a); - const bb = parseDate(b); - if (aa !== null && bb !== null) { - const x = aa.valueOf() - bb.valueOf(); - return x < 0 ? -1 : x > 0 ? 1 : 0; - } + case "key_hash": + case "address": + if (("string" in a) && ("string" in b)) { + return compareBytes(decodeBase58Check(a.string), decodeBase58Check(b.string)); + } + break; + + case "timestamp": + if ((("string" in a) || ("int" in a)) && (("string" in b) || ("int" in b))) { + const aa = parseDate(a); + const bb = parseDate(b); + if (aa !== null && bb !== null) { + const x = aa.valueOf() - bb.valueOf(); + return x < 0 ? -1 : x > 0 ? 1 : 0; } - break; + } + break; - case "unit": - if (("prim" in a) && ("prim" in b) && a.prim === "Unit" && b.prim === "Unit") { - return 0; + case "pair": + if (("prim" in a) && ("prim" in b) && (a.prim === "Pair") && (b.prim === "Pair")) { + const x = compareMichelsonData(t.args[0], a.args[0], b.args[0]); + if (x !== 0) { + return x; } - } - } + return compareMichelsonData(t.args[1], a.args[1], b.args[1]); + } + } // Unlikely, types are expected to be verified before the function call - throw new MichelsonTypeError(t, undefined, `${typeID(t)}: not comparable values: ${JSON.stringify(a)}, ${JSON.stringify(b)}`); + throw new MichelsonTypeError(t, undefined, `non comparable values: ${a}, ${b}`); } // Simplified version of assertMichelsonInstruction() for previously validated data -function isFunction(d: MichelsonData): d is InstructionList { +function isFunction(d: MichelsonData): d is MichelsonCode[] { if (!Array.isArray(d)) { return false; } for (const v of d) { if (!(Array.isArray(v) && isFunction(v) || - ("prim" in v) && isInstruction(v))) { + ("prim" in v) && Object.prototype.hasOwnProperty.call(instructionIDs, v.prim))) { return false; } } return true; } -function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Context | null): void { - if (isPairType(t)) { - if (isPairData(d)) { - assertDataListIfAny(d); - const dc = unpackComb("Pair", d); - const tc = unpackComb("pair", t); - assertDataValidInternal(dc.args[0], tc.args[0], ctx); - assertDataValidInternal(dc.args[1], tc.args[1], ctx); - return; - } - throw new MichelsonTypeError(t, d, `pair expected: ${JSON.stringify(d)}`); - } - +function assertDataValidInternal(t: MichelsonType, d: MichelsonData, ctx: Context | null): void { switch (t.prim) { // Atomic literals case "int": @@ -288,9 +261,7 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex throw new MichelsonTypeError(t, d, `string value expected: ${JSON.stringify(d)}`); case "bytes": - case "bls12_381_g1": - case "bls12_381_g2": - if ("bytes" in d && parseBytes(d.bytes) !== null) { + if ("bytes" in d) { return; } throw new MichelsonTypeError(t, d, `bytes value expected: ${JSON.stringify(d)}`); @@ -303,18 +274,11 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex case "key_hash": if (("string" in d) && - checkDecodeTezosID(d.string, + checkTezosID(d.string, "ED25519PublicKeyHash", "SECP256K1PublicKeyHash", "P256PublicKeyHash") !== null) { return; - } else if ("bytes" in d) { - try { - decodePublicKeyHashBytes(d); - return; - } catch (err) { - // ignore message - } } throw new MichelsonTypeError(t, d, `key hash expected: ${JSON.stringify(d)}`); @@ -332,37 +296,23 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex // trim entry point address = d.string.slice(0, ep); } - if (checkDecodeTezosID(address, + if (checkTezosID(address, "ED25519PublicKeyHash", "SECP256K1PublicKeyHash", "P256PublicKeyHash", "ContractHash") !== null) { return; } - } else if ("bytes" in d) { - try { - decodeAddressBytes(d); - return; - } catch (err) { - // ignore message - } } throw new MichelsonTypeError(t, d, `address expected: ${JSON.stringify(d)}`); case "key": if (("string" in d) && - checkDecodeTezosID(d.string, + checkTezosID(d.string, "ED25519PublicKey", "SECP256K1PublicKey", "P256PublicKey") !== null) { return; - } else if ("bytes" in d) { - try { - decodePublicKeyBytes(d); - return; - } catch (err) { - // ignore message - } } throw new MichelsonTypeError(t, d, `public key expected: ${JSON.stringify(d)}`); @@ -373,8 +323,8 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex throw new MichelsonTypeError(t, d, `unit value expected: ${JSON.stringify(d)}`); case "signature": - if (("bytes" in d) || ("string" in d) && - checkDecodeTezosID(d.string, + if (("string" in d) && + checkTezosID(d.string, "ED25519Signature", "SECP256K1Signature", "P256Signature", @@ -384,9 +334,9 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex throw new MichelsonTypeError(t, d, `signature expected: ${JSON.stringify(d)}`); case "chain_id": - if ("bytes" in d || "string" in d) { - const x = "string" in d ? decodeBase58Check(d.string) : parseBytes(d.bytes); - if (x !== null) { + if ("bytes" in d) { + const x = parseBytes(d.bytes); + if (x !== null && x.length === tezosPrefix.ChainID[0]) { return; } } @@ -404,7 +354,7 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex if (d.prim === "None") { return; } else if (d.prim === "Some") { - assertDataValidInternal(d.args[0], t.args[0], ctx); + assertDataValidInternal(t.args[0], d.args[0], ctx); return; } } @@ -412,10 +362,13 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex case "list": case "set": - if (assertDataListIfAny(d)) { + if (Array.isArray(d)) { let prev: MichelsonData | undefined; for (const v of d) { - assertDataValidInternal(v, t.args[0], ctx); + if (("prim" in v) && v.prim === "Elt") { + throw new MichelsonTypeError(t, d, `Elt item outside of a map literal: ${JSON.stringify(d)}`); + } + assertDataValidInternal(t.args[0], v, ctx); if (t.prim === "set") { if (prev === undefined) { prev = v; @@ -428,13 +381,21 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex } throw new MichelsonTypeError(t, d, `${t.prim} expected: ${JSON.stringify(d)}`); + case "pair": + if (("prim" in d) && d.prim === "Pair") { + assertDataValidInternal(t.args[0], d.args[0], ctx); + assertDataValidInternal(t.args[1], d.args[1], ctx); + return; + } + throw new MichelsonTypeError(t, d, `pair expected: ${JSON.stringify(d)}`); + case "or": if ("prim" in d) { if (d.prim === "Left") { - assertDataValidInternal(d.args[0], t.args[0], ctx); + assertDataValidInternal(t.args[0], d.args[0], ctx); return; } else if (d.prim === "Right") { - assertDataValidInternal(d.args[0], t.args[1], ctx); + assertDataValidInternal(t.args[1], d.args[0], ctx); return; } } @@ -449,7 +410,7 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex if (ret.length !== 1) { throw new MichelsonTypeError(t, d, `function must return a value`); } - assertScalarTypesEqual(t.args[1], ret[0]); + assertTypesEqualInternal(t.args[1], ret[0]); return; } throw new MichelsonTypeError(t, d, `function expected: ${JSON.stringify(d)}`); @@ -462,8 +423,8 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex if (!("prim" in v) || v.prim !== "Elt") { throw new MichelsonTypeError(t, d, `map elements expected: ${JSON.stringify(d)}`); } - assertDataValidInternal(v.args[0], t.args[0], ctx); - assertDataValidInternal(v.args[1], t.args[1], ctx); + assertDataValidInternal(t.args[0], v.args[0], ctx); + assertDataValidInternal(t.args[1], v.args[1], ctx); if (prev === undefined) { prev = v; } else if (compareMichelsonData(t.args[0], prev.args[0], v.args[0]) > 0) { @@ -474,79 +435,63 @@ function assertDataValidInternal(d: MichelsonData, t: MichelsonType, ctx: Contex } throw new MichelsonTypeError(t, d, `${t.prim} expected: ${JSON.stringify(d)}`); - case "bls12_381_fr": - if ("int" in d && isDecimal(d.int) || "bytes" in d && parseBytes(d.bytes) !== null) { - return; - } - throw new MichelsonTypeError(t, d, `BLS12-381 element expected: ${JSON.stringify(d)}`); - - case "sapling_state": - if (Array.isArray(d)) { - return; - } - throw new MichelsonTypeError(t, d, `sapling state expected: ${JSON.stringify(d)}`); - - case "ticket": - assertDataValidInternal(d, { - prim: "pair", args: [ - { prim: "address" }, - t.args[0], - { prim: "nat" }, - ] - }, ctx); - return; - default: - throw new MichelsonTypeError(t, d, `unexpected type: ${typeID(t)}`); + throw new MichelsonTypeError((t as MichelsonType), d, `unexpected type: ${(t as MichelsonType).prim}`); } } // Code validation -type StackType<T extends (MichelsonTypeID[] | null)[]> = { - [N in keyof T]: T[N] extends MichelsonTypeID[] ? MichelsonType<T[N][number]> : MichelsonType; -}; +type MichelsonTypeID = MichelsonType["prim"]; + +type TT1<T1 extends MichelsonTypeID[] | null> = [T1]; +type TT2<T1 extends MichelsonTypeID[] | null, T2 extends MichelsonTypeID[] | null> = [T1, T2]; +type TT3<T1 extends MichelsonTypeID[] | null, T2 extends MichelsonTypeID[] | null, T3 extends MichelsonTypeID[] | null> = [T1, T2, T3]; +type TT4<T1 extends MichelsonTypeID[] | null, T2 extends MichelsonTypeID[] | null, T3 extends MichelsonTypeID[] | null, T4 extends MichelsonTypeID[] | null> = [T1, T2, T3, T4]; +type MT<T extends MichelsonTypeID[] | null> = MichelsonType<T extends MichelsonTypeID[] ? T[number] : MichelsonTypeID>; + +type StackType<T extends (MichelsonTypeID[] | null)[]> = + T extends TT1<infer T1> ? [MT<T1>] : + T extends TT2<infer T1, infer T2> ? [MT<T1>, MT<T2>] : + T extends TT3<infer T1, infer T2, infer T3> ? [MT<T1>, MT<T2>, MT<T3>] : + T extends TT4<infer T1, infer T2, infer T3, infer T4> ? [MT<T1>, MT<T2>, MT<T3>, MT<T4>] : + never; export interface InstructionTrace { op: MichelsonCode; in: MichelsonType[]; - out: MichelsonReturnType; + out: MichelsonStackType; } -function instructionListType(inst: InstructionList, stack: MichelsonType[], ctx: Context | null): MichelsonReturnType { - let ret: MichelsonReturnType = stack; - let s = stack; - let i = 0; - for (const op of inst) { - const ft = functionTypeInternal(op, s, ctx); - ret = ft; - if ("failed" in ft) { - break; +function functionTypeInternal(inst: MichelsonCode, stack: MichelsonType[], ctx: Context | null): MichelsonStackType { + if (Array.isArray(inst)) { + let ret: MichelsonStackType = stack; + let s = stack; + let i = 0; + for (const op of inst) { + const ft = functionTypeInternal(op, s, ctx); + ret = ft; + if ("failed" in ft) { + break; + } + s = ft; + i++; } - s = ft; - i++; - } - - if (("failed" in ret) && i !== inst.length - 1) { - throw new MichelsonInstructionError(inst, ret, "FAIL must appear in a tail position"); - } - if (ctx?.traceCallback !== undefined) { - const trace: InstructionTrace = { - op: inst, - in: stack, - out: ret, - }; - ctx.traceCallback(trace); - } - return ret; -} + if (("failed" in ret) && i !== inst.length - 1) { + throw new MichelsonInstructionError(inst, ret, "FAIL must appear in a tail position"); + } -function functionTypeInternal(inst: MichelsonCode, stack: MichelsonType[], ctx: Context | null): MichelsonReturnType { - const proto = ctx?.protocol || DefaultProtocol; + if (ctx?.traceCallback !== undefined) { + const trace: InstructionTrace = { + op: inst, + in: stack, + out: ret, + }; + ctx.traceCallback(trace); + } - if (Array.isArray(inst)) { - return instructionListType(inst, stack, ctx); + return ret; } const instruction = inst; // Make it const for type guarding @@ -560,11 +505,11 @@ function functionTypeInternal(inst: MichelsonCode, stack: MichelsonType[], ctx: for (const ids of typeIds) { if (ids !== null && ids.length !== 0) { let ii = 0; - while (ii < ids.length && ids[ii] !== typeID(stack[i])) { + while (ii < ids.length && ids[ii] !== stack[i].prim) { ii++; } if (ii === ids.length) { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: stack type mismatch: [${i}] expected to be ${ids}, got ${typeID(stack[i])} instead`); + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: stack type mismatch: [${i}] expected to be ${ids}, got ${stack[i].prim} instead`); } } i++; @@ -572,7 +517,7 @@ function functionTypeInternal(inst: MichelsonCode, stack: MichelsonType[], ctx: return stack.slice(n, typeIds.length + n) as StackType<T>; } - function rethrow<T extends unknown[], U>(fn: (...args: T) => U) { + function wrap<T extends unknown[], U>(fn: (...args: T) => U) { return (...args: T): U => { try { return fn(...args); @@ -586,7 +531,7 @@ function functionTypeInternal(inst: MichelsonCode, stack: MichelsonType[], ctx: }; } - function rethrowTypeGuard<T extends Expr, U extends MichelsonType & T>(fn: (arg: T) => arg is U) { + function wrapPred<T extends Expr, U extends MichelsonType & T>(fn: (arg: T) => arg is U) { return (arg: T): arg is U => { try { return fn(arg); @@ -600,22 +545,15 @@ function functionTypeInternal(inst: MichelsonCode, stack: MichelsonType[], ctx: }; } - const argAnn = rethrow(unpackAnnotations); - const ensureStacksEqual = rethrow(assertStacksEqual); - const ensureTypesEqual = rethrow(assertScalarTypesEqual); - const ensureComparableType = rethrowTypeGuard(assertMichelsonComparableType); - const ensurePackableType = rethrowTypeGuard(assertMichelsonPackableType); - const ensureStorableType = rethrowTypeGuard(assertMichelsonStorableType); - const ensurePushableType = rethrowTypeGuard(assertMichelsonPushableType); - const ensureBigMapStorableType = rethrowTypeGuard(assertMichelsonBigMapStorableType); + const argAnnotations = wrap(unpackAnnotations); + const ensureTypesEqual = wrap(assertTypesEqualInternal); + const ensureComparableType = wrapPred(assertMichelsonComparableType); + const ensureSerializableType = wrapPred(assertMichelsonSerializableType); + const ensureStorableType = wrapPred(assertMichelsonStorableType); // unpack instruction annotations and assert their maximum number - function instructionAnn(num: { f?: number; t?: number; v?: number }, opt?: UnpackAnnotationsOptions) { - const a = argAnn(instruction, { - ...opt, - emptyFields: num.f !== undefined && num.f > 1, - emptyVar: num.v !== undefined && num.v > 1, - }); + function instructionAnnotations(num: { f?: number; t?: number; v?: number }, opt?: UnpackAnnotationsOptions) { + const a = unpackAnnotations(instruction, opt); const assertNum = (a: string[] | undefined, n: number | undefined, type: string) => { if (a && a.length > (n || 0)) { throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: at most ${n || 0} ${type} annotations allowed`); @@ -628,10 +566,8 @@ function functionTypeInternal(inst: MichelsonCode, stack: MichelsonType[], ctx: } // also keeps annotation class if null is provided - function annotate<T extends MichelsonType>(tt: T, a: Nullable<UnpackedAnnotations>): T { - const tx: MichelsonType = tt; - const t: Extract<MichelsonType, Prim> = Array.isArray(tx) ? { prim: "pair", args: tx } : tx; - const src = argAnn(t); + function annotate<T extends MichelsonType>(t: T, a: Nullable<UnpackedAnnotations>): T { + const src = argAnnotations(t); const ann = (a.v !== undefined || a.t !== undefined || a.f !== undefined) ? [ ...((a.v === null ? src.v : a.v) || []), @@ -645,100 +581,18 @@ function functionTypeInternal(inst: MichelsonCode, stack: MichelsonType[], ctx: // shortcut to copy at most one variable annotation from the instruction to the type function annotateVar<T extends MichelsonType>(t: T, def?: string) { - const ia = instructionAnn({ v: 1 }); - return annotate(t, { v: ia.v !== undefined ? ia.v : def !== undefined ? [def] : null, t: null }); - } - - // annotate CAR/CDR/UNPAIR/GET - function annotateField(arg: MichelsonTypePair<MichelsonType[]>, field: MichelsonType, insAnn: UnpackedAnnotations, n: number, defField: string): MichelsonType { - const fieldAnn = argAnn(field).f?.[0]; // field's field annotation - const insFieldAnn = insAnn.f?.[n]; - if (insFieldAnn !== undefined && insFieldAnn !== "%" && fieldAnn !== undefined && insFieldAnn !== fieldAnn) { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: field names doesn't match: ${insFieldAnn} !== ${fieldAnn}`); - } - const insVarAnn = insAnn.v?.[n]; // nth instruction's variable annotation - const varAnn = argAnn(arg).v?.[0]; // instruction argument's variable annotation - return annotate(field, { - t: null, - v: insVarAnn ? - insVarAnn === "@%" ? - fieldAnn ? ["@" + fieldAnn.slice(1)] : undefined : - insVarAnn === "@%%" ? - varAnn ? - ["@" + varAnn.slice(1) + "." + (fieldAnn ? fieldAnn.slice(1) : defField)] : - fieldAnn ? ["@" + fieldAnn.slice(1)] : undefined : - [insVarAnn] : - null, - }); - } - - // comb helper functions - function getN(src: MichelsonTypePair<MichelsonType[]>, n: number, i: number = n): MichelsonType[] { - const p = unpackComb("pair", src); - if (i === 1) { - return [p.args[0]]; - } else if (i === 2) { - return p.args; - } - const right = p.args[1]; - if (isPairType(right)) { - return [p.args[0], ...getN(right, n, i - 1)]; - } else { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: at least ${n} fields are expected`); - } - } - - function getNth(src: MichelsonTypePair<MichelsonType[]>, n: number, i: number = n): MichelsonType { - if (i === 0) { - return src; - } - const p = unpackComb("pair", src); - if (i === 1) { - return p.args[0]; - } - const right = p.args[1]; - if (isPairType(right)) { - return getNth(right, n, i - 2); - } else if (i === 2) { - return right; - } - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: at least ${n + 1} fields are expected`); - } - - function updateNth(src: MichelsonTypePair<MichelsonType[]>, x: MichelsonType, n: number, i: number = n): MichelsonType { - if (i === 0) { - return x; - } - const p = unpackComb("pair", src); - if (i === 1) { - return { - ...p, - args: [x, p.args[1]], - }; - } - const right = p.args[1]; - if (isPairType(right)) { - return { - ...p, - args: [p.args[0], updateNth(right, x, n, i - 2)], - }; - } else if (i === 2) { - return { - ...p, - args: [p.args[0], x], - }; - } - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: at least ${n + 1} fields are expected`); + const ia = instructionAnnotations({ v: 1 }); + return annotate(t, { v: ia.v !== undefined ? ia.v : def !== undefined ? [def] : null }); } const varSuffix = (a: UnpackedAnnotations, suffix: string) => ["@" + (a.v ? a.v[0].slice(1) + "." : "") + suffix]; - function branchType(br0: MichelsonReturnType, br1: MichelsonReturnType): MichelsonReturnType { + function branchType(br0: MichelsonStackType, br1: MichelsonStackType): MichelsonStackType { if (("failed" in br0) || ("failed" in br1)) { // Might be useful for debugging if (("failed" in br0) && ("failed" in br1)) { try { - assertScalarTypesEqual(br0.failed, br1.failed); + assertTypesEqualInternal(br0.failed, br1.failed); return br0; } catch { return { failed: { prim: "or", args: [br0.failed, br1.failed] } }; @@ -747,896 +601,784 @@ function functionTypeInternal(inst: MichelsonCode, stack: MichelsonType[], ctx: return ("failed" in br0) ? br1 : br0; } } else { - ensureStacksEqual(br0, br1); + ensureTypesEqual(br0, br1); return br0; } } - const retStack = ((instruction: MichelsonInstruction): MichelsonReturnType => { - switch (instruction.prim) { - case "DUP": - { - const n = instruction.args ? parseInt(instruction.args[0].int, 10) : 1; - if (n === 0) { - throw new MichelsonInstructionError(instruction, stack, "DUP 0 is forbidden"); - } - const s = args(n - 1, null)[0]; - if (typeID(s) === "ticket") { - throw new MichelsonInstructionError(instruction, stack, "ticket can't be DUPed"); - } - return [s, ...stack]; - } - - case "SWAP": - { - const s = args(0, null, null); - instructionAnn({}); - return [s[1], s[0], ...stack.slice(2)]; - } + let ret: MichelsonStackType; - case "SOME": - return [annotate({ prim: "option", args: [args(0, null)[0]] }, instructionAnn({ t: 1, v: 1 })), ...stack.slice(1)]; + switch (instruction.prim) { + case "DUP": + ret = [args(0, null)[0], ...stack]; + break; - case "UNIT": - return [annotate({ prim: "unit" }, instructionAnn({ v: 1, t: 1 })), ...stack]; + case "SWAP": + { + const s = args(0, null, null); + instructionAnnotations({}); + ret = [s[1], s[0], ...stack.slice(2)]; + break; + } - case "PAIR": - { - const n = instruction.args ? parseInt(instruction.args[0].int, 10) : 2; - if (n < 2) { - throw new MichelsonInstructionError(instruction, stack, `PAIR ${n} is forbidden`); - } - const s = args(0, ...new Array<null>(n).fill(null)); - const ia = instructionAnn({ f: n, t: 1, v: 1 }, { specialFields: true }); - const trim = (s: string) => { - const i = s.lastIndexOf("."); - return s.slice(i > 0 ? i + 1 : 1); - }; - const retArgs = s.map((v, i) => { - const va = argAnn(v); - const f = ia.f && ia.f.length > i && ia.f[i] !== "%" ? - ia.f[i] === "%@" ? - va.v ? ["%" + trim(va.v?.[0] || "")] : undefined : - [ia.f[i]] : - undefined; - return annotate(v, { v: null, t: null, f }); - }); - return [ - annotate({ - prim: "pair", - args: retArgs, - }, { t: ia.t, v: ia.v }), - ...stack.slice(n) - ]; - } + case "SOME": + ret = [annotate({ prim: "option", args: [args(0, null)[0]] }, instructionAnnotations({ t: 1, v: 1 })), ...stack.slice(1)]; + break; - case "UNPAIR": - { - const n = instruction.args ? parseInt(instruction.args[0].int, 10) : 2; - if (n < 2) { - throw new MichelsonInstructionError(instruction, stack, `UNPAIR ${n} is forbidden`); - } - const s = args(0, ["pair"])[0]; - const ia = instructionAnn({ f: 2, v: 2 }, { specialVar: true }); - const fields = getN(s, n); - return [...fields.map((field, i) => annotateField(s, field, ia, i, i === 0 ? "car" : "cdr")), ...stack.slice(1)]; - } + case "UNIT": + ret = [annotate({ prim: "unit" }, instructionAnnotations({ v: 1, t: 1 })), ...stack]; + break; - case "CAR": - case "CDR": - { - const s = unpackComb("pair", args(0, ["pair"])[0]); - const field = s.args[instruction.prim === "CAR" ? 0 : 1]; - const ia = instructionAnn({ f: 1, v: 1 }, { specialVar: true }); - return [annotateField(s, field, ia, 0, instruction.prim.toLocaleLowerCase()), ...stack.slice(1)]; - } + case "PAIR": + { + const s = args(0, null, null); + const va = [argAnnotations(s[0]), argAnnotations(s[1])] as const; // stack annotations + const ia = instructionAnnotations({ f: 2, t: 1, v: 1 }, { specialFields: true, emptyFields: true }); // instruction annotations + const trim = (s: string) => { + const i = s.lastIndexOf("."); + return s.slice(i > 0 ? i + 1 : 1); + }; + const field = (n: 0 | 1) => + ia.f && ia.f.length > n && ia.f[n] !== "%" ? + ia.f[n] === "%@" ? + va[n].v ? ["%" + trim(va[n].v?.[0] || "")] : undefined : + [ia.f[n]] : + undefined; + + ret = [annotate({ + prim: "pair", args: [ + annotate(s[0], { v: null, t: null, f: field(0) }), + annotate(s[1], { v: null, t: null, f: field(1) }), + ] + }, { t: ia.t, v: ia.v }), ...stack.slice(2)]; + break; + } - case "CONS": - { - const s = args(0, null, ["list"]); - ensureTypesEqual(s[0], s[1].args[0]); - return [annotateVar({ prim: "list", args: [s[1].args[0]] }), ...stack.slice(2)]; - } + case "CAR": + case "CDR": + { + const s = args(0, ["pair"]); + const ia = instructionAnnotations({ f: 1, v: 1 }, { specialVar: true }); + const child = s[0].args[instruction.prim === "CAR" ? 0 : 1]; + const ca = argAnnotations(child); + if (ia.f && ca.f && ia.f[0] !== ca.f[0]) { + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: field names doesn't match: ${ia.f[0]} !== ${ca.f[0]}`); + } + const va = argAnnotations(s[0]); + ret = [annotate(child, { + t: null, + v: ia.v ? + ia.v[0] === "@%" ? + ca.f ? ["@" + ca.f[0].slice(1)] : undefined : + ia.v[0] === "@%%" ? + va.v ? + ["@" + va.v[0].slice(1) + "." + (ca.f ? ca.f[0].slice(1) : instruction.prim.toLocaleLowerCase())] : + ca.f ? ["@" + ca.f[0].slice(1)] : undefined : + ia.v : + null + }), ...stack.slice(1)]; + break; + } - case "SIZE": - args(0, ["string", "list", "set", "map", "bytes"]); - return [annotateVar({ prim: "nat" }), ...stack.slice(1)]; + case "CONS": + { + const s = args(0, null, ["list"]); + ensureTypesEqual(s[0], s[1].args[0]); + ret = [annotateVar({ prim: "list", args: [s[1].args[0]] }), ...stack.slice(2)]; + break; + } - case "MEM": - { - const s = args(0, null, ["set", "map", "big_map"]); - ensureComparableType(s[0]); - ensureTypesEqual(s[0], s[1].args[0]); - return [annotateVar({ prim: "bool" }), ...stack.slice(2)]; - } + case "SIZE": + args(0, ["string", "list", "set", "map", "bytes"]); + ret = [annotateVar({ prim: "nat" }), ...stack.slice(1)]; + break; - case "GET": - if (instruction.args) { - // comb operation - const n = parseInt(instruction.args[0].int, 10); - const s = args(0, ["pair"])[0]; - return [annotateVar(getNth(s, n)), ...stack.slice(1)]; - } else { - // map operation - const s = args(0, null, ["map", "big_map"]); - ensureComparableType(s[0]); - ensureTypesEqual(s[0], s[1].args[0]); - return [annotateVar({ prim: "option", args: [s[1].args[1]] }), ...stack.slice(2)]; - } + case "MEM": + { + const s = args(0, null, ["set", "map", "big_map"]); + ensureComparableType(s[0]); + ensureTypesEqual(s[0], s[1].args[0]); + ret = [annotateVar({ prim: "bool" }), ...stack.slice(2)]; + break; + } - case "UPDATE": - if (instruction.args) { - // comb operation - const n = parseInt(instruction.args[0].int, 10); - const s = args(0, null, ["pair"]); - return [annotateVar(updateNth(s[1], s[0], n)), ...stack.slice(2)]; + case "GET": + { + const s = args(0, null, ["map", "big_map"]); + ensureComparableType(s[0]); + ensureTypesEqual(s[0], s[1].args[0]); + ret = [annotateVar({ prim: "option", args: [s[1].args[1]] }), ...stack.slice(2)]; + break; + } - } else { - // map operation - const s0 = args(0, null, ["bool", "option"]); - ensureComparableType(s0[0]); + case "UPDATE": + { + const s0 = args(0, null, ["bool", "option"]); + if (ensureComparableType(s0[0])) { if (s0[1].prim === "bool") { const s1 = args(2, ["set"]); - ensureTypesEqual(s0[0], s1[0].args[0]); - return [annotateVar({ + ensureTypesEqual<MichelsonComparableType, MichelsonComparableType>(s0[0], s1[0].args[0]); + ret = [annotateVar({ prim: "set", args: [annotate(s0[0], { t: null })], }), ...stack.slice(3)]; - } - - const s1 = args(2, ["map", "big_map"]); - ensureTypesEqual(s0[0], s1[0].args[0]); - if (s1[0].prim === "map") { - return [annotateVar({ - prim: "map", - args: [ - annotate(s0[0], { t: null }), - annotate(s0[1].args[0], { t: null }), - ], - }), ...stack.slice(3)]; - } - ensureBigMapStorableType(s0[1].args[0]); - return [annotateVar({ - prim: "big_map", - args: [ - annotate(s0[0], { t: null }), - annotate(s0[1].args[0], { t: null }), - ], - }), ...stack.slice(3)]; - } - - case "GET_AND_UPDATE": - { - const ia = instructionAnn({ v: 2 }); - const s = args(0, null, ["option"], ["map", "big_map"]); - ensureComparableType(s[0]); - ensureTypesEqual(s[0], s[2].args[0]); - ensureTypesEqual(s[1].args[0], s[2].args[1]); - const va = ia.v?.map(v => v !== "@" ? [v] : undefined); - if (s[2].prim === "map") { - return [ - annotate({ prim: "option", args: [s[2].args[1]] }, { v: va?.[0] }), - annotate({ + } else { + const s1 = args(2, ["map", "big_map"]); + ensureTypesEqual<MichelsonComparableType, MichelsonComparableType>(s0[0], s1[0].args[0]); + if (s1[0].prim === "map") { + ret = [annotateVar({ prim: "map", args: [ - annotate(s[0], { t: null }), - annotate(s[1].args[0], { t: null }), + annotate(s0[0], { t: null }), + annotate(s0[1].args[0], { t: null }), ], - }, { v: va?.[1] }), - ...stack.slice(3), - ]; + }), ...stack.slice(3)]; + } else if (ensureSerializableType(s0[1].args[0])) { + ret = [annotateVar({ + prim: "big_map", + args: [ + annotate(s0[0], { t: null }), + annotate(s0[1].args[0], { t: null }), + ], + }), ...stack.slice(3)]; + } else { + ret = []; // never + } } - ensureBigMapStorableType(s[1].args[0]); - return [ - annotate({ prim: "option", args: [s[2].args[1]] }, { v: va?.[0] }), - annotate({ - prim: "big_map", - args: [ - annotate(s[0], { t: null }), - annotate(s[1].args[0], { t: null }), - ], - }, { v: va?.[1] }), - ...stack.slice(3), - ]; - } - - case "EXEC": - { - const s = args(0, null, ["lambda"]); - ensureTypesEqual(s[0], s[1].args[0]); - return [annotateVar(s[1].args[1]), ...stack.slice(2)]; + } else { + ret = []; // never } + break; + } - case "APPLY": - { - const s = args(0, null, ["lambda"]); - ensureStorableType(s[0]); - ensurePushableType(s[0]); - if (!isPairType(s[1].args[0])) { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: function's argument must be a pair: ${typeID(s[1].args[0])}`); - } - const pt = s[1].args[0]; - ensureTypesEqual(s[0], typeArgs(pt)[0]); - return [annotateVar({ prim: "lambda", args: [typeArgs(pt)[1], s[1].args[1]] }), ...stack.slice(2)]; - } + case "EXEC": + { + const s = args(0, null, ["lambda"]); + ensureTypesEqual(s[0], s[1].args[0]); + ret = [annotateVar(s[1].args[1]), ...stack.slice(2)]; + break; + } - case "FAILWITH": - { - const s = args(0, null)[0]; - if (proto === Protocol.PtEdo2Zk || proto === Protocol.PsFLorena) { - ensurePackableType(s); - } - return { failed: s }; + case "APPLY": + { + const s = args(0, null, ["lambda"]); + if (s[1].args[0].prim !== "pair") { + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: function's argument must be a pair: ${s[1].args[0].prim}`); } + const pt = s[1].args[0]; + ensureTypesEqual(s[0], pt.args[0]); + ret = [annotateVar({ prim: "lambda", args: [pt.args[1], s[1].args[1]] }), ...stack.slice(2)]; + break; + } - case "NEVER": - args(0, ["never"]); - return { failed: { prim: "never" } }; - + case "FAILWITH": + ret = { failed: args(0, null)[0] }; + break; - case "RENAME": - return [annotateVar(args(0, null)[0]), ...stack.slice(1)]; + case "RENAME": + ret = [annotateVar(args(0, null)[0]), ...stack.slice(1)]; + break; - case "CONCAT": - { - const s0 = args(0, ["string", "list", "bytes"]); - if (s0[0].prim === "list") { - if (typeID(s0[0].args[0]) !== "string" && typeID(s0[0].args[0]) !== "bytes") { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: can't concatenate list of ${typeID(s0[0].args[0])}'s`); - } - return [annotateVar(s0[0].args[0]), ...stack.slice(1)]; + case "CONCAT": + { + const s0 = args(0, ["string", "list", "bytes"]); + if (s0[0].prim === "list") { + if (s0[0].args[0].prim !== "string" && s0[0].args[0].prim !== "bytes") { + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: can't concatenate list of ${s0[0].args[0].prim}'s`); } + ret = [annotateVar(s0[0].args[0]), ...stack.slice(1)]; + } else { const s1 = args(1, ["string", "bytes"]); if (s0[0].prim !== s1[0].prim) { throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: can't concatenate ${s0[0].prim} with ${s1[0].prim}`); } - return [annotateVar(s1[0]), ...stack.slice(2)]; + ret = [annotateVar(s1[0]), ...stack.slice(2)]; } + break; + } - case "SLICE": - return [annotateVar({ prim: "option", args: [args(0, ["nat"], ["nat"], ["string", "bytes"])[2]] }, "@slice"), ...stack.slice(3)]; + case "SLICE": + ret = [annotateVar({ prim: "option", args: [args(0, ["nat"], ["nat"], ["string", "bytes"])[2]] }), ...stack.slice(3)]; + break; - case "PACK": - { - const s = args(0, null)[0]; - ensurePackableType(s); - return [annotateVar({ prim: "bytes" }, "@packed"), ...stack.slice(1)]; - } + case "PACK": + { + const s = args(0, null); + ensureSerializableType(s[0]); + ret = [annotateVar({ prim: "bytes" }), ...stack.slice(1)]; + break; + } - case "ADD": - { - const s = args(0, - ["nat", "int", "timestamp", "mutez", "bls12_381_g1", "bls12_381_g2", "bls12_381_fr"], - ["nat", "int", "timestamp", "mutez", "bls12_381_g1", "bls12_381_g2", "bls12_381_fr"] - ); - if (s[0].prim === "nat" && s[1].prim === "int" || s[0].prim === "int" && s[1].prim === "nat") { - return [annotateVar({ prim: "int" }), ...stack.slice(2)]; - } else if (s[0].prim === "int" && s[1].prim === "timestamp" || s[0].prim === "timestamp" && s[1].prim === "int") { - return [annotateVar({ prim: "timestamp" }), ...stack.slice(2)]; - } else if ((s[0].prim === "int" || s[0].prim === "nat" || s[0].prim === "mutez" || s[0].prim === "bls12_381_g1" || s[0].prim === "bls12_381_g2" || s[0].prim === "bls12_381_fr") && s[0].prim === s[1].prim) { - return [annotateVar(s[0]), ...stack.slice(2)]; - } + case "ADD": + { + const s = args(0, ["nat", "int", "timestamp", "mutez"], ["nat", "int", "timestamp", "mutez"]); + if (s[0].prim === "nat" && s[1].prim === "nat") { + ret = [annotateVar({ prim: "nat" }), ...stack.slice(2)]; + } else if ((s[0].prim === "nat" || s[0].prim === "int") && (s[1].prim === "nat" || s[1].prim === "int")) { + ret = [annotateVar({ prim: "int" }), ...stack.slice(2)]; + } else if (s[0].prim === "int" && s[1].prim === "timestamp" || s[0].prim === "timestamp" && s[1].prim === "int") { + ret = [annotateVar({ prim: "timestamp" }), ...stack.slice(2)]; + } else if (s[0].prim === "mutez" && s[1].prim === "mutez") { + ret = [annotateVar({ prim: "mutez" }), ...stack.slice(2)]; + } else { throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: can't add ${s[0].prim} to ${s[1].prim}`); } + break; + } - case "SUB": - { - const s = args(0, ["nat", "int", "timestamp", "mutez"], ["nat", "int", "timestamp", "mutez"]); - if (((s[0].prim === "nat" || s[0].prim === "int") && (s[1].prim === "nat" || s[1].prim === "int")) || - s[0].prim === "timestamp" && s[1].prim === "timestamp") { - return [annotateVar({ prim: "int" }), ...stack.slice(2)]; - } else if (s[0].prim === "timestamp" && s[1].prim === "int") { - return [annotateVar({ prim: "timestamp" }), ...stack.slice(2)]; - } else if (s[0].prim === "mutez" && s[1].prim === "mutez") { - return [annotateVar({ prim: "mutez" }), ...stack.slice(2)]; - } + case "SUB": + { + const s = args(0, ["nat", "int", "timestamp", "mutez"], ["nat", "int", "timestamp", "mutez"]); + if (((s[0].prim === "nat" || s[0].prim === "int") && (s[1].prim === "nat" || s[1].prim === "int")) || + s[0].prim === "timestamp" && s[1].prim === "timestamp") { + ret = [annotateVar({ prim: "int" }), ...stack.slice(2)]; + } else if (s[0].prim === "timestamp" && s[1].prim === "int") { + ret = [annotateVar({ prim: "timestamp" }), ...stack.slice(2)]; + } else if (s[0].prim === "mutez" && s[1].prim === "mutez") { + ret = [annotateVar({ prim: "mutez" }), ...stack.slice(2)]; + } else { throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: can't subtract ${s[0].prim} from ${s[1].prim}`); } + break; + } - case "MUL": - { - const s = args(0, - ["nat", "int", "mutez", "bls12_381_g1", "bls12_381_g2", "bls12_381_fr"], - ["nat", "int", "mutez", "bls12_381_g1", "bls12_381_g2", "bls12_381_fr"] - ); - if (s[0].prim === "nat" && s[1].prim === "int" || s[0].prim === "int" && s[1].prim === "nat") { - return [annotateVar({ prim: "int" }), ...stack.slice(2)]; - } else if (s[0].prim === "nat" && s[1].prim === "mutez" || s[0].prim === "mutez" && s[1].prim === "nat") { - return [annotateVar({ prim: "mutez" }), ...stack.slice(2)]; - } else if ((s[0].prim === "bls12_381_g1" || s[0].prim === "bls12_381_g2" || s[0].prim === "bls12_381_fr") && s[1].prim === "bls12_381_fr" || - (s[0].prim === "nat" || s[0].prim === "int") && s[0].prim === s[1].prim) { - return [annotateVar(s[0]), ...stack.slice(2)]; - } else if ((s[0].prim === "nat" || s[0].prim === "int") && s[1].prim === "bls12_381_fr" || - (s[1].prim === "nat" || s[1].prim === "int") && s[0].prim === "bls12_381_fr") { - return [annotateVar({ prim: "bls12_381_fr" }), ...stack.slice(2)]; - } + case "MUL": + { + const s = args(0, ["nat", "int", "mutez"], ["nat", "int", "mutez"]); + if (s[0].prim === "nat" && s[1].prim === "nat") { + ret = [annotateVar({ prim: "nat" }), ...stack.slice(2)]; + } else if ((s[0].prim === "nat" || s[0].prim === "int") && (s[1].prim === "nat" || s[1].prim === "int")) { + ret = [annotateVar({ prim: "int" }), ...stack.slice(2)]; + } else if (s[0].prim === "nat" && s[1].prim === "mutez" || s[0].prim === "mutez" && s[1].prim === "nat") { + ret = [annotateVar({ prim: "mutez" }), ...stack.slice(2)]; + } else { throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: can't multiply ${s[0].prim} by ${s[1].prim}`); } + break; + } - case "EDIV": - { - const res = (a: "nat" | "int" | "mutez", b: "nat" | "int" | "mutez"): MichelsonTypeOption<MichelsonType> => ({ prim: "option", args: [{ prim: "pair", args: [{ prim: a }, { prim: b }] }] }); - const s = args(0, ["nat", "int", "mutez"], ["nat", "int", "mutez"]); - if (s[0].prim === "nat" && s[1].prim === "nat") { - return [annotateVar(res("nat", "nat")), ...stack.slice(2)]; - } else if ((s[0].prim === "nat" || s[0].prim === "int") && (s[1].prim === "nat" || s[1].prim === "int")) { - return [annotateVar(res("int", "nat")), ...stack.slice(2)]; - } else if (s[0].prim === "mutez" && s[1].prim === "nat") { - return [annotateVar(res("mutez", "mutez")), ...stack.slice(2)]; - } else if (s[0].prim === "mutez" && s[1].prim === "mutez") { - return [annotateVar(res("nat", "mutez")), ...stack.slice(2)]; - } + case "EDIV": + { + const res = (a: "nat" | "int" | "mutez", b: "nat" | "int" | "mutez"): MichelsonTypeOption => ({ prim: "option", args: [{ prim: "pair", args: [{ prim: a }, { prim: b }] }] }); + const s = args(0, ["nat", "int", "mutez"], ["nat", "int", "mutez"]); + if (s[0].prim === "nat" && s[1].prim === "nat") { + ret = [annotateVar(res("nat", "nat")), ...stack.slice(2)]; + } else if ((s[0].prim === "nat" || s[0].prim === "int") && (s[1].prim === "nat" || s[1].prim === "int")) { + ret = [annotateVar(res("int", "nat")), ...stack.slice(2)]; + } else if (s[0].prim === "mutez" && s[1].prim === "nat") { + ret = [annotateVar(res("mutez", "mutez")), ...stack.slice(2)]; + } else if (s[0].prim === "mutez" && s[1].prim === "mutez") { + ret = [annotateVar(res("nat", "mutez")), ...stack.slice(2)]; + } else { throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: can't euclideally divide ${s[0].prim} by ${s[1].prim}`); } + break; + } - case "ABS": - args(0, ["int"]); - return [annotateVar({ prim: "nat" }), ...stack.slice(1)]; + case "ABS": + args(0, ["int"]); + ret = [annotateVar({ prim: "nat" }), ...stack.slice(1)]; + break; - case "ISNAT": - args(0, ["int"]); - return [annotateVar({ prim: "option", args: [{ prim: "nat" }] }), ...stack.slice(1)]; + case "ISNAT": + args(0, ["int"]); + ret = [annotateVar({ prim: "option", args: [{ prim: "nat" }] }), ...stack.slice(1)]; + break; - case "INT": - args(0, ["nat", "bls12_381_fr"]); - return [annotateVar({ prim: "int" }), ...stack.slice(1)]; + case "INT": + args(0, ["nat"]); + ret = [annotateVar({ prim: "int" }), ...stack.slice(1)]; + break; - case "NEG": - { - const s = args(0, ["nat", "int", "bls12_381_g1", "bls12_381_g2", "bls12_381_fr"])[0]; - if (s.prim === "nat" || s.prim === "int") { - return [annotateVar({ prim: "int" }), ...stack.slice(1)]; - } - return [annotateVar(s), ...stack.slice(1)]; - } + case "NEG": + args(0, ["nat", "int"]); + ret = [annotateVar({ prim: "int" }), ...stack.slice(1)]; + break; - case "LSL": - case "LSR": - args(0, ["nat"], ["nat"]); - return [annotateVar({ prim: "nat" }), ...stack.slice(2)]; - - case "OR": - case "XOR": - { - const s = args(0, ["nat", "bool"], ["nat", "bool"]); - if (s[0].prim !== s[1].prim) { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: both arguments must be of the same type: ${s[0].prim}, ${s[1].prim}`); - } - return [annotateVar(s[1]), ...stack.slice(2)]; - } + case "LSL": + case "LSR": + args(0, ["nat"], ["nat"]); + ret = [annotateVar({ prim: "nat" }), ...stack.slice(2)]; + break; - case "AND": - { - const s = args(0, ["nat", "bool", "int"], ["nat", "bool"]); - if ((s[0].prim !== "int" || s[1].prim !== "nat") && s[0].prim !== s[1].prim) { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: both arguments must be of the same type: ${s[0].prim}, ${s[1].prim}`); - } - return [annotateVar(s[1]), ...stack.slice(2)]; + case "OR": + case "XOR": + { + const s = args(0, ["nat", "bool"], ["nat", "bool"]); + if (s[0].prim !== s[1].prim) { + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: both arguments must be of the same type: ${s[0].prim}, ${s[1].prim}`); } + ret = [annotateVar(s[1]), ...stack.slice(2)]; + break; + } - case "NOT": - { - const s = args(0, ["nat", "bool", "int"])[0]; - if (s.prim === "bool") { - return [annotateVar({ prim: "bool" }), ...stack.slice(1)]; - } - return [annotateVar({ prim: "int" }), ...stack.slice(1)]; + case "AND": + { + const s = args(0, ["nat", "bool", "int"], ["nat", "bool"]); + if ((s[0].prim !== "int" || s[1].prim !== "nat") && s[0].prim !== s[1].prim) { + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: both arguments must be of the same type: ${s[0].prim}, ${s[1].prim}`); } + ret = [annotateVar(s[1]), ...stack.slice(2)]; + break; + } - case "COMPARE": - { - const s = args(0, null, null); - ensureComparableType(s[0]); - ensureComparableType(s[1]); - return [annotateVar({ prim: "int" }), ...stack.slice(2)]; + case "NOT": + { + const s = args(0, ["nat", "bool", "int"]); + if (s[0].prim === "bool") { + ret = [annotateVar({ prim: "bool" }), ...stack.slice(1)]; + } else { + ret = [annotateVar({ prim: "int" }), ...stack.slice(1)]; } + break; + } - case "EQ": - case "NEQ": - case "LT": - case "GT": - case "LE": - case "GE": - args(0, ["int"]); - return [annotateVar({ prim: "bool" }), ...stack.slice(1)]; - - case "SELF": - { - if (ctx?.contract === undefined) { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: contract required`); - } - const ia = instructionAnn({ f: 1, v: 1 }); - const ep = contractEntryPoint(ctx.contract, ia.f?.[0]); - if (ep === null) { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: contract has no entrypoint ${ep}`); - } - return [annotate({ prim: "contract", args: [ep] }, { v: ia.v ? ia.v : ["@self"] }), ...stack]; - } + case "COMPARE": + { + const s = args(0, null, null); + ensureComparableType(s[0]); + ensureComparableType(s[1]); + ret = [annotateVar({ prim: "int" }), ...stack.slice(2)]; + break; + } + + case "EQ": + case "NEQ": + case "LT": + case "GT": + case "LE": + case "GE": + args(0, ["int"]); + ret = [annotateVar({ prim: "bool" }), ...stack.slice(1)]; + break; - case "TRANSFER_TOKENS": - { - const s = args(0, null, ["mutez"], ["contract"]); - ensureTypesEqual(s[0], s[2].args[0]); - return [annotateVar({ prim: "operation" }), ...stack.slice(3)]; + case "SELF": + { + if (ctx?.contract === undefined) { + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: contract required`); } + const ia = instructionAnnotations({ f: 1, v: 1 }); + const ep = contractEntryPoint(ctx.contract, ia.f?.[0]); + if (ep === null) { + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: contract has no entrypoint named ${ep}`); + } + ret = [annotate({ prim: "contract", args: [ep] }, { v: ia.v ? ia.v : ["@self"] }), ...stack]; + break; + } - case "SET_DELEGATE": - { - const s = args(0, ["option"])[0]; - if (typeID(s.args[0]) !== "key_hash") { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: key hash expected: ${typeID(s.args[0])}`); - } - return [annotateVar({ prim: "operation" }), ...stack.slice(1)]; + case "TRANSFER_TOKENS": + { + const s = args(0, null, ["mutez"], ["contract"]); + ensureTypesEqual(s[0], s[2].args[0]); + ret = [annotateVar({ prim: "operation" }), ...stack.slice(3)]; + break; + } + + case "SET_DELEGATE": + { + const s = args(0, ["option"]); + if (s[0].args[0].prim !== "key_hash") { + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: key hash expected: ${s[0].args[0].prim}`); } + ret = [annotateVar({ prim: "operation" }), ...stack.slice(1)]; + break; + } - case "IMPLICIT_ACCOUNT": - args(0, ["key_hash"]); - return [annotateVar({ prim: "contract", args: [{ prim: "unit" }] }), ...stack.slice(1)]; + case "CREATE_ACCOUNT": + { + const ia = instructionAnnotations({ v: 2 }, { emptyVar: true }); + const s = args(0, ["key_hash"], ["option"], ["bool"], ["mutez"]); + if (s[1].args[0].prim !== "key_hash") { + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: key hash expected: ${s[1].args[0].prim}`); + } + ret = [ + annotate({ prim: "operation" }, { v: ia.v && ia.v.length > 0 && ia.v[0] !== "@" ? [ia.v[0]] : undefined }), + annotate({ prim: "address" }, { v: ia.v && ia.v.length > 1 && ia.v[1] !== "@" ? [ia.v[1]] : undefined }), + ...stack.slice(4) + ]; + break; + } - case "NOW": - return [annotateVar({ prim: "timestamp" }, "@now"), ...stack]; + case "IMPLICIT_ACCOUNT": + args(0, ["key_hash"]); + ret = [annotateVar({ prim: "contract", args: [{ prim: "unit" }] }), ...stack.slice(1)]; + break; - case "AMOUNT": - return [annotateVar({ prim: "mutez" }, "@amount"), ...stack]; + case "NOW": + ret = [annotateVar({ prim: "timestamp" }, "@now"), ...stack]; + break; - case "BALANCE": - return [annotateVar({ prim: "mutez" }, "@balance"), ...stack]; + case "AMOUNT": + ret = [annotateVar({ prim: "mutez" }, "@amount"), ...stack]; + break; - case "CHECK_SIGNATURE": - args(0, ["key"], ["signature"], ["bytes"]); - return [annotateVar({ prim: "bool" }), ...stack.slice(3)]; + case "BALANCE": + ret = [annotateVar({ prim: "mutez" }, "@balance"), ...stack]; + break; - case "BLAKE2B": - case "SHA256": - case "SHA512": - case "KECCAK": - case "SHA3": - args(0, ["bytes"]); - return [annotateVar({ prim: "bytes" }), ...stack.slice(1)]; + case "CHECK_SIGNATURE": + args(0, ["key"], ["signature"], ["bytes"]); + ret = [annotateVar({ prim: "bool" }), ...stack.slice(3)]; + break; - case "HASH_KEY": - args(0, ["key"]); - return [annotateVar({ prim: "key_hash" }), ...stack.slice(1)]; + case "BLAKE2B": + case "SHA256": + case "SHA512": + args(0, ["bytes"]); + ret = [annotateVar({ prim: "bytes" }), ...stack.slice(1)]; + break; - case "SOURCE": - return [annotateVar({ prim: "address" }, "@source"), ...stack]; + case "HASH_KEY": + args(0, ["key"]); + ret = [annotateVar({ prim: "key_hash" }), ...stack.slice(1)]; + break; - case "SENDER": - return [annotateVar({ prim: "address" }, "@sender"), ...stack]; + case "STEPS_TO_QUOTA": + ret = [annotateVar({ prim: "nat" }, "@steps"), ...stack]; + break; - case "ADDRESS": - { - const s = args(0, ["contract"])[0]; - const ia = instructionAnn({ v: 1 }); - return [ - annotate({ prim: "address", [refContract]: s }, { v: ia.v ? ia.v : varSuffix(argAnn(s), "address") }), - ...stack.slice(1)]; - } + case "SOURCE": + ret = [annotateVar({ prim: "address" }, "@source"), ...stack]; + break; - case "SELF_ADDRESS": - { - const addr: MichelsonTypeAddress = { prim: "address" }; - if (ctx?.contract !== undefined) { - addr[refContract] = { prim: "contract", args: [contractSection(ctx.contract, "parameter").args[0]] }; - } - return [annotateVar(addr, "@address"), ...stack]; - } + case "SENDER": + ret = [annotateVar({ prim: "address" }, "@sender"), ...stack]; + break; - case "CHAIN_ID": - return [annotateVar({ prim: "chain_id" }), ...stack]; + case "ADDRESS": + { + const s = args(0, ["contract"]); + const ia = instructionAnnotations({ v: 1 }); + ret = [ + annotate({ prim: "address" }, { v: ia.v ? ia.v : varSuffix(argAnnotations(s[0]), "address") }), + ...stack.slice(1)]; + break; + } - case "DROP": - { - instructionAnn({}); - const n = instruction.args !== undefined ? parseInt(instruction.args[0].int, 10) : 1; - args(n - 1, null); - return stack.slice(n); - } + case "CHAIN_ID": + ret = [annotateVar({ prim: "chain_id" }), ...stack]; + break; - case "DIG": - { - instructionAnn({}); - const n = parseInt(instruction.args[0].int, 10); - return [args(n, null)[0], ...stack.slice(0, n), ...stack.slice(n + 1)]; - } + case "DROP": + { + instructionAnnotations({}); + const n = instruction.args !== undefined ? parseInt(instruction.args[0].int, 10) : 1; + args(n - 1, null); + ret = stack.slice(n); + break; + } - case "DUG": - { - instructionAnn({}); - const n = parseInt(instruction.args[0].int, 10); - return [...stack.slice(1, n + 1), args(0, null)[0], ...stack.slice(n + 1)]; - } + case "DIG": + { + instructionAnnotations({}); + const n = parseInt(instruction.args[0].int, 10); + ret = [args(n, null)[0], ...stack.slice(0, n), ...stack.slice(n + 1)]; + break; + } - case "NONE": - assertTypeAnnotationsValid(instruction.args[0]); - return [annotate({ prim: "option", args: [instruction.args[0]] }, instructionAnn({ t: 1, v: 1 })), ...stack]; - - case "LEFT": - case "RIGHT": - { - const s = args(0, null)[0]; - const ia = instructionAnn({ f: 2, t: 1, v: 1 }, { specialFields: true }); - const va = argAnn(s); - - const children: [MichelsonType, MichelsonType] = [ - annotate(s, { - t: null, - v: null, - f: ia.f && ia.f.length > 0 && ia.f[0] !== "%" ? - ia.f[0] === "%@" ? - va.v ? ["%" + va.v[0].slice(1)] : undefined : - ia.f : - undefined, - }), - annotate(instruction.args[0], { - t: null, - f: ia.f && ia.f.length > 1 && ia.f[1] !== "%" ? ia.f : undefined, - }), - ]; - - return [annotate({ - prim: "or", args: instruction.prim === "LEFT" ? children : [children[1], children[0]] - }, { t: ia.t, v: ia.v }), ...stack.slice(1)]; - } + case "DUG": + { + instructionAnnotations({}); + const n = parseInt(instruction.args[0].int, 10); + ret = [...stack.slice(1, n + 1), args(0, null)[0], ...stack.slice(n + 1)]; + break; + } - case "NIL": - assertTypeAnnotationsValid(instruction.args[0]); - return [annotate({ prim: "list", args: [instruction.args[0]] }, instructionAnn({ t: 1, v: 1 })), ...stack]; + case "NONE": + assertTypeAnnotationsValid(instruction.args[0]); + ret = [annotate({ prim: "option", args: [instruction.args[0]] }, instructionAnnotations({ t: 1, v: 1 })), ...stack]; + break; - case "UNPACK": - args(0, ["bytes"]); - assertTypeAnnotationsValid(instruction.args[0]); - return [annotateVar({ prim: "option", args: [instruction.args[0]] }, "@unpacked"), ...stack.slice(1)]; - - case "CONTRACT": - { - const s = args(0, ["address"])[0]; - assertTypeAnnotationsValid(instruction.args[0]); - const ia = instructionAnn({ v: 1, f: 1 }); - const contract = s[refContract]; - if (contract !== undefined) { - const ep = contractEntryPoint(contract, ia.f?.[0]); - if (ep === null) { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: contract has no entrypoint ${ep}`); - } - ensureTypesEqual(ep, instruction.args[0]); - } - return [ - annotate({ prim: "option", args: [{ prim: "contract", args: [instruction.args[0]] }] }, { v: ia.v ? ia.v : varSuffix(argAnn(s), "contract") }), - ...stack.slice(1)]; - } + case "LEFT": + case "RIGHT": + { + const s = args(0, null); + const ia = instructionAnnotations({ f: 2, t: 1, v: 1 }, { specialFields: true }); + const va = argAnnotations(s[0]); + + const children: [MichelsonType, MichelsonType] = [ + annotate(s[0], { + t: null, + v: null, + f: ia.f && ia.f.length > 0 && ia.f[0] !== "%" ? + ia.f[0] === "%@" ? + va.v ? ["%" + va.v[0].slice(1)] : undefined : + ia.f : + undefined, + }), + annotate(instruction.args[0], { + t: null, + f: ia.f && ia.f.length > 1 && ia.f[1] !== "%" ? ia.f : undefined, + }), + ]; + + ret = [annotate({ + prim: "or", args: instruction.prim === "LEFT" ? children : [children[1], children[0]] + }, { t: ia.t, v: ia.v }), ...stack.slice(1)]; + break; + } + + case "NIL": + assertTypeAnnotationsValid(instruction.args[0]); + ret = [annotate({ prim: "list", args: [instruction.args[0]] }, instructionAnnotations({ t: 1, v: 1 })), ...stack]; + break; + + case "UNPACK": + args(0, ["bytes"]); + assertTypeAnnotationsValid(instruction.args[0]); + ret = [annotateVar({ prim: "option", args: [instruction.args[0]] }), ...stack.slice(1)]; + break; - case "CAST": - instructionAnn({}); - const s = args(0, null)[0]; + case "CONTRACT": + { + const s = args(0, ["address"]); assertTypeAnnotationsValid(instruction.args[0]); - ensureTypesEqual(instruction.args[0], s); - return [instruction.args[0], ...stack.slice(1)]; - - case "IF_NONE": - { - instructionAnn({}); - const s = args(0, ["option"])[0]; - const tail = stack.slice(1); - const br0 = functionTypeInternal(instruction.args[0], tail, ctx); - const br1 = functionTypeInternal(instruction.args[1], [annotate(s.args[0], { t: null, v: varSuffix(argAnn(s), "some") }), ...tail], ctx); - return branchType(br0, br1); - } + const ia = instructionAnnotations({ v: 1, f: 1 }); + ret = [ + annotate({ prim: "option", args: [{ prim: "contract", args: [instruction.args[0]] }] }, { v: ia.v ? ia.v : varSuffix(argAnnotations(s[0]), "contract") }), + ...stack.slice(1)]; + break; + } - case "IF_LEFT": - { - instructionAnn({}); - const s = args(0, ["or"])[0]; - const va = argAnn(s); - const lefta = argAnn(s.args[0]); - const righta = argAnn(s.args[1]); - const tail = stack.slice(1); - const br0 = functionTypeInternal(instruction.args[0], - [ - annotate(s.args[0], { t: null, v: varSuffix(va, lefta.f ? lefta.f[0].slice(1) : "left") }), - ...tail - ], - ctx); - const br1 = functionTypeInternal(instruction.args[1], - [ - annotate(s.args[1], { t: null, v: varSuffix(va, righta.f ? righta.f[0].slice(1) : "right") }), - ...tail - ], - ctx); - return branchType(br0, br1); - } + case "CAST": + instructionAnnotations({}); + const s = args(0, null); + assertTypeAnnotationsValid(instruction.args[0]); + assertTypesEqualInternal(instruction.args[0], s[0]); + ret = [instruction.args[0], ...stack.slice(1)]; + break; - case "IF_CONS": - { - instructionAnn({}); - const s = args(0, ["list"])[0]; - const va = argAnn(s); - const tail = stack.slice(1); - const br0 = functionTypeInternal(instruction.args[0], - [ - annotate(s.args[0], { t: null, v: varSuffix(va, "hd") }), - annotate(s, { t: null, v: varSuffix(va, "tl") }), - ...tail - ], - ctx); - const br1 = functionTypeInternal(instruction.args[1], tail, ctx); - return branchType(br0, br1); - } + case "IF_NONE": + { + instructionAnnotations({}); + const s = args(0, ["option"]); + const tail = stack.slice(1); + const br0 = functionTypeInternal(instruction.args[0], tail, ctx); + const br1 = functionTypeInternal(instruction.args[1], [annotate(s[0].args[0], { t: null, v: varSuffix(argAnnotations(s[0]), "some") }), ...tail], ctx); + ret = branchType(br0, br1); + break; + } - case "IF": - { - instructionAnn({}); - args(0, ["bool"]); - const tail = stack.slice(1); - const br0 = functionTypeInternal(instruction.args[0], tail, ctx); - const br1 = functionTypeInternal(instruction.args[1], tail, ctx); - return branchType(br0, br1); - } + case "IF_LEFT": + { + instructionAnnotations({}); + const s = args(0, ["or"]); + const va = argAnnotations(s[0]); + const lefta = argAnnotations(s[0].args[0]); + const righta = argAnnotations(s[0].args[1]); + const tail = stack.slice(1); + const br0 = functionTypeInternal(instruction.args[0], + [ + annotate(s[0].args[0], { t: null, v: varSuffix(va, lefta.f ? lefta.f[0].slice(1) : "left") }), + ...tail + ], + ctx); + const br1 = functionTypeInternal(instruction.args[1], + [ + annotate(s[0].args[1], { t: null, v: varSuffix(va, righta.f ? righta.f[0].slice(1) : "right") }), + ...tail + ], + ctx); + ret = branchType(br0, br1); + break; + } - case "MAP": - { - const s = args(0, ["list", "map"])[0]; - const tail = stack.slice(1); - const elt = s.prim === "map" ? { prim: "pair" as const, args: s.args } : s.args[0]; - const body = functionTypeInternal(instruction.args[0], - [annotate(elt, { t: null, v: varSuffix(argAnn(s), "elt") }), ...tail], - ctx); - if ("failed" in body) { - return body; - } + case "IF_CONS": + { + instructionAnnotations({}); + const s = args(0, ["list"]); + const va = argAnnotations(s[0]); + const tail = stack.slice(1); + const br0 = functionTypeInternal(instruction.args[0], + [ + annotate(s[0].args[0], { t: null, v: varSuffix(va, "hd") }), + annotate(s[0], { t: null, v: varSuffix(va, "tl") }), + ...tail + ], + ctx); + const br1 = functionTypeInternal(instruction.args[1], tail, ctx); + ret = branchType(br0, br1); + break; + } + + case "IF": + { + instructionAnnotations({}); + args(0, ["bool"]); + const tail = stack.slice(1); + const br0 = functionTypeInternal(instruction.args[0], tail, ctx); + const br1 = functionTypeInternal(instruction.args[1], tail, ctx); + ret = branchType(br0, br1); + break; + } + + case "MAP": + { + const s = args(0, ["list", "map"]); + const tail = stack.slice(1); + const elt = s[0].prim === "map" ? { prim: "pair" as const, args: s[0].args } : s[0].args[0]; + const body = functionTypeInternal(instruction.args[0], + [annotate(elt, { t: null, v: varSuffix(argAnnotations(s[0]), "elt") }), ...tail], + ctx); + if ("failed" in body) { + ret = body; + } else { if (body.length < 1) { throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: function must return a value`); } - ensureStacksEqual(body.slice(1), tail); - if (s.prim === "list") { - return [annotateVar({ prim: "list", args: [body[0]] }), ...tail]; + ensureTypesEqual(body.slice(1), tail); + if (s[0].prim === "list") { + ret = [annotateVar({ prim: "list", args: [body[0]] }), ...tail]; + } else { + ret = [annotateVar({ prim: "map", args: [s[0].args[0], body[0]] }), ...tail]; } - return [annotateVar({ prim: "map", args: [s.args[0], body[0]] }), ...tail]; } + break; + } - case "ITER": - { - instructionAnn({}); - const s = args(0, ["set", "list", "map"])[0]; - const tail = stack.slice(1); - const elt = s.prim === "map" ? { prim: "pair" as const, args: s.args } : s.args[0]; - const body = functionTypeInternal(instruction.args[0], - [annotate(elt, { t: null, v: varSuffix(argAnn(s), "elt") }), ...tail], - ctx); - if ("failed" in body) { - return body; - } - ensureStacksEqual(body, tail); - return tail; + case "ITER": + { + instructionAnnotations({}); + const s = args(0, ["set", "list", "map"]); + const tail = stack.slice(1); + const elt = s[0].prim === "map" ? { prim: "pair" as const, args: s[0].args } : s[0].args[0]; + const body = functionTypeInternal(instruction.args[0], + [annotate(elt, { t: null, v: varSuffix(argAnnotations(s[0]), "elt") }), ...tail], + ctx); + if ("failed" in body) { + ret = body; + } else { + ensureTypesEqual(body, tail); + ret = tail; } + break; + } - case "LOOP": - { - instructionAnn({}); - args(0, ["bool"]); - const tail = stack.slice(1); - const body = functionTypeInternal(instruction.args[0], tail, ctx); - if ("failed" in body) { - return body; - } - ensureStacksEqual(body, [{ prim: "bool" }, ...tail]); - return tail; + case "LOOP": + { + instructionAnnotations({}); + args(0, ["bool"]); + const tail = stack.slice(1); + const body = functionTypeInternal(instruction.args[0], tail, ctx); + if ("failed" in body) { + ret = body; + } else { + ensureTypesEqual(body, [{ prim: "bool" }, ...tail]); + ret = tail; } + break; + } - case "LOOP_LEFT": - { - instructionAnn({}); - const s = args(0, ["or"])[0]; - const tail = stack.slice(1); - const body = functionTypeInternal(instruction.args[0], - [annotate(s.args[0], { t: null, v: varSuffix(argAnn(s), "left") }), ...tail], - ctx); - if ("failed" in body) { - return body; - } - ensureStacksEqual(body, [s, ...tail]); - return [annotate(s.args[1], { t: null, v: instructionAnn({ v: 1 }).v }), ...tail]; + case "LOOP_LEFT": + { + instructionAnnotations({}); + const s = args(0, ["or"]); + const tail = stack.slice(1); + const body = functionTypeInternal(instruction.args[0], + [annotate(s[0].args[0], { t: null, v: varSuffix(argAnnotations(s[0]), "left") }), ...tail], + ctx); + if ("failed" in body) { + ret = body; + } else { + ensureTypesEqual(body, [s[0], ...tail]); + ret = [annotate(s[0].args[1], { t: null, v: instructionAnnotations({ v: 1 }).v }), ...tail]; } + break; + } - case "DIP": - { - instructionAnn({}); - const n = instruction.args.length === 2 ? parseInt(instruction.args[0].int, 10) : 1; - args(n - 1, null); - const head = stack.slice(0, n); - const tail = stack.slice(n); - // ternary operator is a type guard so use it instead of just `instruction.args.length - 1` - const body = instruction.args.length === 2 ? - functionTypeInternal(instruction.args[1], tail, ctx) : - functionTypeInternal(instruction.args[0], tail, ctx); - if ("failed" in body) { - return body; - } - return [...head, ...body]; + case "DIP": + { + instructionAnnotations({}); + const n = instruction.args.length === 2 ? parseInt(instruction.args[0].int, 10) : 1; + args(n - 1, null); + const head = stack.slice(0, n); + const tail = stack.slice(n); + // ternary operator is a type guard so use it instead of just `instruction.args.length - 1` + const body = instruction.args.length === 2 ? + functionTypeInternal(instruction.args[1], tail, ctx) : + functionTypeInternal(instruction.args[0], tail, ctx); + if ("failed" in body) { + ret = body; + } else { + ret = [...head, ...body]; } + break; + } - case "CREATE_CONTRACT": - { - const ia = instructionAnn({ v: 2 }); - const s = args(0, ["option"], ["mutez"], null); - if (typeID(s[0].args[0]) !== "key_hash") { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: key hash expected: ${typeID(s[0].args[0])}`); - } - if (ensureStorableType(s[2])) { - assertContractValid(instruction.args[0]); - assertScalarTypesEqual(contractSection(instruction.args[0], "storage").args[0], s[2]); - } + case "CREATE_CONTRACT": + { + const ia = instructionAnnotations({ v: 2 }, { emptyVar: true }); + const s = args(0, ["option"], ["mutez"], null); + if (s[0].args[0].prim !== "key_hash") { + throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: key hash expected: ${s[0].args[0].prim}`); + } + if (ensureStorableType(s[2])) { + assertContractValid(instruction.args[0]); + assertTypesEqualInternal(contractSection(instruction.args[0], "storage").args[0], s[2]); + } + ret = [ + annotate({ prim: "operation" }, { v: ia.v && ia.v.length > 0 && ia.v[0] !== "@" ? [ia.v[0]] : undefined }), + annotate({ prim: "address" }, { v: ia.v && ia.v.length > 1 && ia.v[1] !== "@" ? [ia.v[1]] : undefined }), + ...stack.slice(3) + ]; + break; + } - const va = ia.v?.map(v => v !== "@" ? [v] : undefined); - return [ - annotate({ prim: "operation" }, { v: va?.[0] }), - annotate({ - prim: "address", - [refContract]: { prim: "contract", args: [contractSection(instruction.args[0], "parameter").args[0]] }, - }, { v: va?.[1] }), - ...stack.slice(3) - ]; - } + case "PUSH": + assertTypeAnnotationsValid(instruction.args[0]); + assertDataValidInternal(instruction.args[0], instruction.args[1], ctx); + ret = [annotateVar(instruction.args[0]), ...stack]; + break; - case "PUSH": - assertTypeAnnotationsValid(instruction.args[0]); - assertDataValidInternal(instruction.args[1], instruction.args[0], { ...ctx, contract: undefined }); - return [annotateVar(instruction.args[0]), ...stack]; + case "EMPTY_SET": + assertTypeAnnotationsValid(instruction.args[0]); + ret = [annotate({ prim: "set", args: instruction.args }, instructionAnnotations({ t: 1, v: 1 })), ...stack]; + break; - case "EMPTY_SET": - assertTypeAnnotationsValid(instruction.args[0]); - ensureComparableType(instruction.args[0]); - return [annotate({ prim: "set", args: instruction.args }, instructionAnn({ t: 1, v: 1 })), ...stack]; + case "EMPTY_MAP": + assertTypeAnnotationsValid(instruction.args[0]); + assertTypeAnnotationsValid(instruction.args[1]); + ret = [annotate({ prim: "map", args: instruction.args }, instructionAnnotations({ t: 1, v: 1 })), ...stack]; + break; - case "EMPTY_MAP": - assertTypeAnnotationsValid(instruction.args[0]); - ensureComparableType(instruction.args[0]); - assertTypeAnnotationsValid(instruction.args[1]); - return [annotate({ prim: "map", args: instruction.args }, instructionAnn({ t: 1, v: 1 })), ...stack]; + case "EMPTY_BIG_MAP": + assertTypeAnnotationsValid(instruction.args[0]); + assertTypeAnnotationsValid(instruction.args[1]); + ret = [annotate({ prim: "big_map", args: instruction.args }, instructionAnnotations({ t: 1, v: 1 })), ...stack]; + break; - case "EMPTY_BIG_MAP": + case "LAMBDA": + { assertTypeAnnotationsValid(instruction.args[0]); - ensureComparableType(instruction.args[0]); assertTypeAnnotationsValid(instruction.args[1]); - ensureBigMapStorableType(instruction.args[0]); - return [annotate({ prim: "big_map", args: instruction.args }, instructionAnn({ t: 1, v: 1 })), ...stack]; - - case "LAMBDA": - { - assertTypeAnnotationsValid(instruction.args[0]); - assertTypeAnnotationsValid(instruction.args[1]); - const body = functionTypeInternal(instruction.args[2], [instruction.args[0]], { ...ctx, contract: undefined }); - if ("failed" in body) { - return body; - } + const body = functionTypeInternal(instruction.args[2], [instruction.args[0]], ctx); + if ("failed" in body) { + ret = body; + } else { if (body.length !== 1) { throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: function must return a value`); } - ensureTypesEqual(instruction.args[1], body[0]); - return [annotateVar({ prim: "lambda", args: [instruction.args[0], instruction.args[1]] }), ...stack]; - } - - case "LEVEL": - return [annotateVar({ prim: "nat" }, "@level"), ...stack]; - - case "TOTAL_VOTING_POWER": - return [annotateVar({ prim: "nat" }), ...stack]; - - case "VOTING_POWER": - args(0, ["key_hash"]); - return [annotateVar({ prim: "nat" }), ...stack.slice(1)]; - - case "TICKET": - { - const s = args(0, null, ["nat"])[0]; - ensureComparableType(s); - return [annotate({ prim: "ticket", args: [s] }, instructionAnn({ t: 1, v: 1 })), ...stack.slice(2)]; - } - - case "JOIN_TICKETS": - { - const s = unpackComb("pair", args(0, ["pair"])[0]); - if (typeID(s.args[0]) !== "ticket") { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: ticket expected: ${typeID(s.args[0])}`); - } - ensureTypesEqual(s.args[0], s.args[1]); - return [annotateVar({ - prim: "option", - args: [annotate(s.args[0], { t: null })], - }), ...stack.slice(1)]; - } - - case "SPLIT_TICKET": - { - const s = args(0, ["ticket"], ["pair"]); - const p = unpackComb("pair", s[1]); - if (typeID(p.args[0]) !== "nat") { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: nat expected: ${typeID(p.args[0])}`); - } - ensureTypesEqual(p.args[0], p.args[1]); - return [annotateVar({ - prim: "option", - args: [{ - prim: "pair", - args: [ - annotate(s[0], { t: null }), - annotate(s[0], { t: null }), - ], - }], - }), ...stack.slice(2)]; - } - - case "READ_TICKET": - { - const ia = instructionAnn({ v: 2 }); - const s = args(0, ["ticket"])[0]; - const va = ia.v?.map(v => v !== "@" ? [v] : undefined); - return [ - annotate({ - prim: "pair", - args: [ - { prim: "address" }, - annotate(s.args[0], { t: null }), - { prim: "nat" }, - ] - }, { v: va?.[0] }), - annotate(s, { v: va?.[1], t: null }), - ...stack.slice(1), - ]; + assertTypesEqualInternal(instruction.args[1], body[0]); + ret = [annotateVar({ prim: "lambda", args: [instruction.args[0], instruction.args[1]] }), ...stack]; } + break; + } - case "PAIRING_CHECK": - { - const p = args(0, ["list"])[0].args[0]; - if (!isPairType(p)) { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: pair expected: ${typeID(p)}`); - } - const c = unpackComb("pair", p); - if (typeID(c.args[0]) !== "bls12_381_g1") { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: bls12_381_g1 expected: ${typeID(c.args[0])}`); - } - if (typeID(c.args[1]) !== "bls12_381_g2") { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: bls12_381_g2 expected: ${typeID(c.args[1])}`); - } - return [annotateVar({ prim: "bool" }), ...stack.slice(1)]; - } - - case "SAPLING_EMPTY_STATE": - return [annotate({ prim: "sapling_state", args: [instruction.args[0]] }, instructionAnn({ v: 1, t: 1 })), ...stack]; - - case "SAPLING_VERIFY_UPDATE": - { - const s = args(0, ["sapling_transaction"], ["sapling_state"]); - if (parseInt(s[0].args[0].int, 10) !== parseInt(s[1].args[0].int, 10)) { - throw new MichelsonInstructionError(instruction, stack, `${instruction.prim}: sapling memo size mismatch: ${s[0].args[0].int} != ${s[1].args[0].int}`); - } - return [annotateVar({ - prim: "option", - args: [{ - prim: "pair", - args: [ - { prim: "int" }, - annotate(s[1], { t: null }), - ], - }], - }), ...stack.slice(2)]; - } + default: + throw new MichelsonError((instruction as MichelsonCode), `unexpected instruction: ${(instruction as Prim).prim}`); + } - default: - throw new MichelsonError((instruction as MichelsonCode), `unexpected instruction: ${(instruction as Prim).prim}`); - } - })(instruction); if (ctx?.traceCallback !== undefined) { const trace: InstructionTrace = { op: instruction, in: stack, - out: retStack, + out: ret, }; ctx.traceCallback(trace); } - return retStack; + return ret; } export function contractSection<T extends "parameter" | "storage" | "code">(contract: MichelsonContract, section: T): MichelsonContractSection<T> { @@ -1648,59 +1390,45 @@ export function contractSection<T extends "parameter" | "storage" | "code">(cont throw new MichelsonError(contract, `missing contract section: ${section}`); } -function isContract(v: Expr): v is MichelsonContract { - if (Array.isArray(v)) { - for (const s of v) { - if ("prim" in s && (s.prim === "parameter" || s.prim === "storage" || s.prim === "code")) { - return true; - } - } - } - return false; -} - export function contractEntryPoint(src: MichelsonContract | MichelsonType, ep?: string): MichelsonType | null { ep = ep || "%default"; - const entryPoint = contractEntryPoints(src).find(x => x[0] === ep); - - if (entryPoint !== undefined) { - return entryPoint[1]; - } else if (ep === "%default") { - return isContract(src) ? contractSection(src, "parameter").args[0] : src; - } - return null; -} - -function isOrType(t: MichelsonType): t is MichelsonTypeOr<[MichelsonType, MichelsonType]> { - return Array.isArray(t) || t.prim === "or"; -} + let parameter: MichelsonType; -export function contractEntryPoints(src: MichelsonContract | MichelsonType): [string, MichelsonType][] { - if (isContract(src)) { - const param = contractSection(src, "parameter"); - const ch = contractEntryPoints(param.args[0]); - const a = unpackAnnotations(param); - return a.f ? [[a.f[0], param.args[0]], ...ch] : ch; + if (Array.isArray(src)) { + const sec = contractSection(src, "parameter"); + const a = unpackAnnotations(sec); + if (a.f && a.f[0] === ep) { + return sec.args[0]; + } + parameter = sec.args[0]; + } else { + parameter = src; } - if (isOrType(src)) { - const args = typeArgs(src); - const getArg = (n: 0 | 1): [string, MichelsonType][] => { - const a = unpackAnnotations(args[n]); - if (typeID(args[n]) === "or") { - const ch = contractEntryPoints(args[n]); - return a.f ? [[a.f[0], args[n]], ...ch] : ch; + function lookup(parameter: MichelsonType, ep: string): MichelsonType | null { + const a = unpackAnnotations(parameter); + if (a.f && a.f[0] === ep) { + return parameter; + } else if (parameter.prim === "or") { + const left = lookup(parameter.args[0], ep); + const right = lookup(parameter.args[1], ep); + if (left !== null && right !== null) { + throw new MichelsonError(src, `duplicate entrypoint: ${ep}`); + } else { + return left || right; } - return a.f ? [[a.f[0], args[n]]] : []; - }; - return [...getArg(0), ...getArg(1)]; + } else { + return null; + } } - return []; + + const entrypoint = lookup(parameter, ep); + return entrypoint !== null ? entrypoint : ep === "%default" ? parameter : null; } // Contract validation -export function assertContractValid(contract: MichelsonContract, ctx?: Context): MichelsonReturnType { +export function assertContractValid(contract: MichelsonContract, ctx?: Context): MichelsonStackType { const parameter = contractSection(contract, "parameter").args[0]; assertTypeAnnotationsValid(parameter, true); @@ -1719,6 +1447,7 @@ export function assertContractValid(contract: MichelsonContract, ctx?: Context): const ret = functionTypeInternal(code, [arg], { ...ctx, ...{ contract } }); if ("failed" in ret) { + // throw new MichelsonInstructionError(code, ret, `contract fails with ${ret.failed.prim} error type`); return ret; } @@ -1731,7 +1460,7 @@ export function assertContractValid(contract: MichelsonContract, ctx?: Context): }; try { - assertStacksEqual(ret, [expected]); + assertTypesEqualInternal(ret, [expected]); } catch (err) { if (err instanceof MichelsonError) { throw new MichelsonInstructionError(code, ret, err.message); @@ -1745,12 +1474,12 @@ export function assertContractValid(contract: MichelsonContract, ctx?: Context): // Exported wrapper functions -export function assertDataValid(d: MichelsonData, t: MichelsonType, ctx?: Context): void { +export function assertDataValid(t: MichelsonType, d: MichelsonData, ctx?: Context): void { assertTypeAnnotationsValid(t); - assertDataValidInternal(d, t, ctx || null); + assertDataValidInternal(t, d, ctx || null); } -export function functionType(inst: MichelsonCode, stack: MichelsonType[], ctx?: Context): MichelsonReturnType { +export function functionType(inst: MichelsonCode, stack: MichelsonType[], ctx?: Context): MichelsonStackType { for (const t of stack) { assertTypeAnnotationsValid(t); } @@ -1778,40 +1507,5 @@ export function assertTypesEqual<T1 extends MichelsonType | MichelsonType[], T2 assertTypeAnnotationsValid(a as MichelsonType); assertTypeAnnotationsValid(b as MichelsonType); } - assertScalarTypesEqual(a, b, field); -} - -export function isTypeAnnotationsValid(t: MichelsonType, field: boolean = false): boolean { - try { - assertTypeAnnotationsValid(t, field); - return true; - } catch { - return false; - } -} - -export function isContractValid(contract: MichelsonContract, ctx?: Context): MichelsonReturnType | null { - try { - return assertContractValid(contract, ctx); - } catch { - return null; - } -} - -export function isDataValid(d: MichelsonData, t: MichelsonType, ctx?: Context): boolean { - try { - assertDataValid(d, t, ctx); - return true; - } catch { - return false; - } -} - -export function isTypeEqual<T1 extends MichelsonType | MichelsonType[], T2 extends T1>(a: T1, b: T2, field: boolean = false): boolean { - try { - assertTypesEqual(a, b, field); - return true; - } catch { - return false; - } + assertTypesEqualInternal(a, b, field); } \ No newline at end of file diff --git a/packages/taquito-michel-codec/src/michelson-types.ts b/packages/taquito-michel-codec/src/michelson-types.ts index 709e3ad37b..c8bea69448 100644 --- a/packages/taquito-michel-codec/src/michelson-types.ts +++ b/packages/taquito-michel-codec/src/michelson-types.ts @@ -1,74 +1,128 @@ -import { Prim, Expr, IntLiteral, StringLiteral, BytesLiteral, List, Node } from "./micheline"; - -interface Prim0<PT extends string = string> extends Prim<PT> { - args?: never; -} -interface PrimX<PT extends string = string, AT extends Expr[] = Expr[]> extends Prim<PT, AT> { - args: AT; -} +import { Prim, Expr, IntLiteral, StringLiteral, BytesLiteral, List } from "./micheline"; +import { NoArgs, ReqArgs } from "./utils"; // Instructions -type MichelsonNoArgInstructionID = "ABS" | "ADD" | "ADDRESS" | "AMOUNT" | "AND" | "APPLY" | "BALANCE" | - "BLAKE2B" | "CAR" | "CDR" | "CHAIN_ID" | "CHECK_SIGNATURE" | "COMPARE" | "CONCAT" | "CONS" | "EDIV" | - "EQ" | "EXEC" | "FAILWITH" | "GE" | "GET_AND_UPDATE" | "GT" | "HASH_KEY" | "IMPLICIT_ACCOUNT" | - "INT" | "ISNAT" | "JOIN_TICKETS" | "KECCAK" | "LE" | "LEVEL" | "LSL" | "LSR" | "LT" | "MEM" | "MUL" | - "NEG" | "NEQ" | "NEVER" | "NOT" | "NOW" | "OR" | "PACK" | "PAIRING_CHECK" | "READ_TICKET" | - "SAPLING_VERIFY_UPDATE" | "SELF" | "SELF_ADDRESS" | "SENDER" | "SET_DELEGATE" | "SHA256" | "SHA3" | - "SHA512" | "SIZE" | "SLICE" | "SOME" | "SOURCE" | "SPLIT_TICKET" | "SUB" | "SWAP" | "TICKET" | - "TOTAL_VOTING_POWER" | "TRANSFER_TOKENS" | "UNIT" | "VOTING_POWER" | "XOR" | "RENAME"; - -type MichelsonRegularInstructionID = "CONTRACT" | "CREATE_CONTRACT" | "DIG" | "DIP" | "DROP" | - "DUG" | "DUP" | "EMPTY_BIG_MAP" | "EMPTY_MAP" | "EMPTY_SET" | "GET" | "IF" | "IF_CONS" | "IF_LEFT" | - "IF_NONE" | "ITER" | "LAMBDA" | "LEFT" | "LOOP" | "LOOP_LEFT" | "MAP" | "NIL" | "NONE" | "PAIR" | - "PUSH" | "RIGHT" | "SAPLING_EMPTY_STATE" | "UNPACK" | "UNPAIR" | "UPDATE" | "CAST" | - // legacy - "CREATE_ACCOUNT" | "STEPS_TO_QUOTA"; - -export type MichelsonInstructionID = MichelsonNoArgInstructionID | MichelsonRegularInstructionID; -type InstrPrim<PT extends MichelsonInstructionID, AT extends Expr[]> = Prim<PT, AT>; -type Instr0<PT extends MichelsonNoArgInstructionID> = Prim0<PT>; -type InstrX<PT extends MichelsonRegularInstructionID, AT extends Expr[]> = PrimX<PT, AT>; -export type MichelsonCode = InstructionList | MichelsonInstruction; -export interface InstructionList extends List<MichelsonCode> { } +type MichelsonNoArgInstructionID = "DUP" | "SWAP" | "SOME" | "UNIT" | "PAIR" | "CAR" | "CDR" | + "CONS" | "SIZE" | "MEM" | "GET" | "UPDATE" | "EXEC" | "APPLY" | "FAILWITH" | "RENAME" | "CONCAT" | "SLICE" | + "PACK" | "ADD" | "SUB" | "MUL" | "EDIV" | "ABS" | "ISNAT" | "INT" | "NEG" | "LSL" | "LSR" | "OR" | + "AND" | "XOR" | "NOT" | "COMPARE" | "EQ" | "NEQ" | "LT" | "GT" | "LE" | "GE" | "SELF" | + "TRANSFER_TOKENS" | "SET_DELEGATE" | "CREATE_ACCOUNT" | "IMPLICIT_ACCOUNT" | "NOW" | "AMOUNT" | + "BALANCE" | "CHECK_SIGNATURE" | "BLAKE2B" | "SHA256" | "SHA512" | "HASH_KEY" | "STEPS_TO_QUOTA" | + "SOURCE" | "SENDER" | "ADDRESS" | "CHAIN_ID"; + +type MichelsonRegularInstructionID = "DROP" | "DIG" | "DUG" | "NONE" | "LEFT" | "RIGHT" | "NIL" | "UNPACK" | "CONTRACT" | "CAST" | + "IF_NONE" | "IF_LEFT" | "IF_CONS" | "IF" | "MAP" | "ITER" | "LOOP" | "LOOP_LEFT" | "DIP" | + "CREATE_CONTRACT" | "PUSH" | "EMPTY_SET" | "EMPTY_MAP" | "EMPTY_BIG_MAP" | "LAMBDA"; + +type MichelsonInstructionID = MichelsonNoArgInstructionID | MichelsonRegularInstructionID; + +type InstrPrim<PT extends MichelsonInstructionID, AT extends Expr[] = never> = Prim<PT, AT>; +type Instr0<PT extends MichelsonNoArgInstructionID> = NoArgs<InstrPrim<PT>>; +type InstrX<PT extends MichelsonRegularInstructionID, AT extends Expr[]> = ReqArgs<InstrPrim<PT, AT>>; + +interface InstructionList extends List<MichelsonCode> { } export type MichelsonNoArgInstruction = Instr0<MichelsonNoArgInstructionID>; export type MichelsonInstruction = MichelsonNoArgInstruction | - InstrX<"DIG" | "DUG" | "SAPLING_EMPTY_STATE", [IntLiteral]> | + InstrX<"DIG" | "DUG", [IntLiteral]> | InstrX<"NONE" | "LEFT" | "RIGHT" | "NIL" | "CAST", [MichelsonType]> | - InstrX<"IF_NONE" | "IF_LEFT" | "IF_CONS" | "IF", [InstructionList, InstructionList]> | - InstrX<"MAP" | "ITER" | "LOOP" | "LOOP_LEFT" | "DIP", [InstructionList]> | - InstrX<"UNPACK", [MichelsonType]> | - InstrX<"CONTRACT", [MichelsonType]> | + InstrX<"IF_NONE" | "IF_LEFT" | "IF_CONS" | "IF", [MichelsonCode, MichelsonCode]> | + InstrX<"MAP" | "ITER" | "LOOP" | "LOOP_LEFT" | "DIP", [MichelsonCode]> | + InstrX<"UNPACK", [MichelsonSerializableType]> | + InstrX<"CONTRACT", [MichelsonPassableType]> | InstrX<"CREATE_CONTRACT", [MichelsonContract]> | - InstrX<"PUSH", [MichelsonType, MichelsonData]> | - InstrX<"EMPTY_SET", [MichelsonType]> | - InstrX<"EMPTY_MAP", [MichelsonType, MichelsonType]> | - InstrX<"EMPTY_BIG_MAP", [MichelsonType, MichelsonType]> | - InstrX<"LAMBDA", [MichelsonType, MichelsonType, InstructionList]> | - InstrX<"DIP", [IntLiteral, InstructionList] | [InstructionList]> | - InstrPrim<"DROP" | "PAIR" | "UNPAIR" | "DUP" | "GET" | "UPDATE", [IntLiteral]>; - -// Types + InstrX<"PUSH", [MichelsonPushableType, MichelsonData]> | + InstrX<"EMPTY_SET", [MichelsonComparableType]> | + InstrX<"EMPTY_MAP", [MichelsonComparableType, MichelsonType]> | + InstrX<"EMPTY_BIG_MAP", [MichelsonComparableType, MichelsonSerializableType]> | + InstrX<"LAMBDA", [MichelsonType, MichelsonType, MichelsonCode]> | + InstrX<"DIP", [IntLiteral, MichelsonCode] | [MichelsonCode]> | + InstrPrim<"DROP", [IntLiteral]>; // Keep optional argument -export type MichelsonSimpleComparableTypeID = "string" | "nat" | "int" | "bytes" | "bool" | "mutez" | - "key_hash" | "address" | "timestamp" | "never" | "key" | "unit" | "signature" | "chain_id"; +export type MichelsonCode = InstructionList | MichelsonInstruction; -export type MichelsonTypeID = MichelsonSimpleComparableTypeID | - "option" | "list" | "set" | "contract" | "operation" | "pair" | "or" | "lambda" | "map" | "big_map" | - "sapling_transaction" | "sapling_state" | "ticket" | "bls12_381_g1" | "bls12_381_g2" | "bls12_381_fr"; +// Types -type Type0<PT extends MichelsonTypeID> = Prim0<PT>; -type TypeX<PT extends MichelsonTypeID, AT extends Expr[]> = PrimX<PT, AT>; +type MichelsonTypeID = "address" | "big_map" | "bool" | "bytes" | "chain_id" | "contract" | "int" | + "key_hash" | "key" | "lambda" | "list" | "map" | "mutez" | "nat" | "operation" | "option" | + "or" | "pair" | "set" | "signature" | "string" | "timestamp" | "unit"; + +type TypePrim<PT extends MichelsonTypeID, AT extends MichelsonType[] = never> = Prim<PT, AT>; +type Type0<PT extends MichelsonTypeID> = NoArgs<TypePrim<PT>>; +type TypeX<PT extends MichelsonTypeID, AT extends MichelsonType[]> = ReqArgs<TypePrim<PT, AT>>; + +// Type subclasses +// https://michelson.nomadic-labs.com/#types + +export type MichelsonSimpleComparableType = + MichelsonTypeInt | + MichelsonTypeNat | + MichelsonTypeString | + MichelsonTypeBytes | + MichelsonTypeMutez | + MichelsonTypeBool | + MichelsonTypeKeyHash | + MichelsonTypeTimestamp | + MichelsonTypeAddress; + +// C class +export type MichelsonComparableType = + MichelsonSimpleComparableType | + MichelsonTypePair<MichelsonSimpleComparableType, MichelsonComparableType>; + +type MichelsonSimpleType = + MichelsonSimpleComparableType | + MichelsonTypeChainID | + MichelsonTypeKey | + MichelsonTypeLambda | + MichelsonTypeSet | + MichelsonTypeSignature | + MichelsonTypeUnit; + +// B, PA class +export type MichelsonSerializableType = + MichelsonSimpleType | + MichelsonTypeContract | + MichelsonTypeList<MichelsonSerializableType> | + MichelsonTypeMap<MichelsonComparableType, MichelsonSerializableType> | + MichelsonTypeOption<MichelsonSerializableType> | + MichelsonTypeOr<MichelsonSerializableType, MichelsonSerializableType> | + MichelsonTypePair<MichelsonSerializableType, MichelsonSerializableType>; + +// PU class +export type MichelsonPushableType = + MichelsonSimpleType | + MichelsonTypeList<MichelsonPushableType> | + MichelsonTypeMap<MichelsonComparableType, MichelsonPushableType> | + MichelsonTypeOption<MichelsonPushableType> | + MichelsonTypeOr<MichelsonPushableType, MichelsonPushableType> | + MichelsonTypePair<MichelsonPushableType, MichelsonPushableType>; + +// S class +export type MichelsonStorableType = + MichelsonSimpleType | + MichelsonTypeList<MichelsonStorableType> | + MichelsonTypeMap<MichelsonComparableType, MichelsonStorableType> | + MichelsonTypeOption<MichelsonStorableType> | + MichelsonTypeOr<MichelsonStorableType, MichelsonStorableType> | + MichelsonTypePair<MichelsonStorableType, MichelsonStorableType> | + MichelsonTypeBigMap<MichelsonComparableType, MichelsonStorableType & MichelsonSerializableType>; + +// PM class +export type MichelsonPassableType = + MichelsonSimpleType | + MichelsonTypeContract | + MichelsonTypeList<MichelsonPassableType> | + MichelsonTypeMap<MichelsonComparableType, MichelsonPassableType> | + MichelsonTypeOption<MichelsonPassableType> | + MichelsonTypeOr<MichelsonPassableType, MichelsonPassableType> | + MichelsonTypePair<MichelsonPassableType, MichelsonPassableType> | + MichelsonTypeBigMap<MichelsonComparableType, MichelsonPassableType & MichelsonSerializableType>; // Michelson types -export const refContract: unique symbol = Symbol("ref_contract"); -export interface MichelsonTypeAddress extends Type0<"address"> { - [refContract]?: MichelsonTypeContract<MichelsonType>; -} - export type MichelsonTypeInt = Type0<"int">; export type MichelsonTypeNat = Type0<"nat">; export type MichelsonTypeString = Type0<"string">; @@ -77,30 +131,22 @@ export type MichelsonTypeMutez = Type0<"mutez">; export type MichelsonTypeBool = Type0<"bool">; export type MichelsonTypeKeyHash = Type0<"key_hash">; export type MichelsonTypeTimestamp = Type0<"timestamp">; +export type MichelsonTypeAddress = Type0<"address">; export type MichelsonTypeKey = Type0<"key">; export type MichelsonTypeUnit = Type0<"unit">; export type MichelsonTypeSignature = Type0<"signature">; export type MichelsonTypeOperation = Type0<"operation">; export type MichelsonTypeChainID = Type0<"chain_id">; -export type MichelsonTypeNever = Type0<"never">; -export type MichelsonTypeBLS12_381_G1 = Type0<"bls12_381_g1">; -export type MichelsonTypeBLS12_381_G2 = Type0<"bls12_381_g2">; -export type MichelsonTypeBLS12_381_FR = Type0<"bls12_381_fr">; - -type TypeList<T extends MichelsonType[]> = T & Node; -export type MichelsonTypePair<T extends MichelsonType[]> = TypeX<"pair", T> | TypeList<T>; - -export interface MichelsonTypeOption<T extends MichelsonType> extends TypeX<"option", [T]> { } -export interface MichelsonTypeList<T extends MichelsonType> extends TypeX<"list", [T]> { } -export interface MichelsonTypeContract<T extends MichelsonType> extends TypeX<"contract", [T]> { } -export interface MichelsonTypeOr<T extends [MichelsonType, MichelsonType]> extends TypeX<"or", T> { } -export interface MichelsonTypeLambda<Arg extends MichelsonType, Ret extends MichelsonType> extends TypeX<"lambda", [Arg, Ret]> { } -export interface MichelsonTypeSet<T extends MichelsonType> extends TypeX<"set", [T]> { } -export interface MichelsonTypeMap<K extends MichelsonType, V extends MichelsonType> extends TypeX<"map", [K, V]> { } -export interface MichelsonTypeBigMap<K extends MichelsonType, V extends MichelsonType> extends TypeX<"big_map", [K, V]> { } -export interface MichelsonTypeSaplingState<S extends string = string> extends TypeX<"sapling_state", [IntLiteral<S>]> { } -export interface MichelsonTypeSaplingTransaction<S extends string = string> extends TypeX<"sapling_transaction", [IntLiteral<S>]> { } -export interface MichelsonTypeTicket<T extends MichelsonType> extends TypeX<"ticket", [T]> { } + +export interface MichelsonTypeOption<T extends MichelsonType = MichelsonType> extends TypeX<"option", [T]> { } +export interface MichelsonTypeList<T extends MichelsonType = MichelsonType> extends TypeX<"list", [T]> { } +export interface MichelsonTypeContract<T extends MichelsonType = MichelsonType> extends TypeX<"contract", [T]> { } +export interface MichelsonTypePair<T1 extends MichelsonType = MichelsonType, T2 extends MichelsonType = MichelsonType> extends TypeX<"pair", [T1, T2]> { } +export interface MichelsonTypeOr<T1 extends MichelsonType = MichelsonType, T2 extends MichelsonType = MichelsonType> extends TypeX<"or", [T1, T2]> { } +export interface MichelsonTypeLambda<T1 extends MichelsonType = MichelsonType, T2 extends MichelsonType = MichelsonType> extends TypeX<"lambda", [T1, T2]> { } +export interface MichelsonTypeSet<T extends MichelsonComparableType = MichelsonComparableType> extends TypeX<"set", [T]> { } +export interface MichelsonTypeMap<T1 extends MichelsonComparableType = MichelsonComparableType, T2 extends MichelsonType = MichelsonType> extends TypeX<"map", [T1, T2]> { } +export interface MichelsonTypeBigMap<T1 extends MichelsonComparableType = MichelsonComparableType, T2 extends MichelsonSerializableType = MichelsonSerializableType> extends TypeX<"big_map", [T1, T2]> { } export type MichelsonType<T extends MichelsonTypeID = MichelsonTypeID> = T extends "int" ? MichelsonTypeInt : @@ -117,57 +163,52 @@ export type MichelsonType<T extends MichelsonTypeID = MichelsonTypeID> = T extends "signature" ? MichelsonTypeSignature : T extends "operation" ? MichelsonTypeOperation : T extends "chain_id" ? MichelsonTypeChainID : - T extends "option" ? MichelsonTypeOption<MichelsonType> : - T extends "list" ? MichelsonTypeList<MichelsonType> : - T extends "contract" ? MichelsonTypeContract<MichelsonType> : - T extends "ticket" ? MichelsonTypeTicket<MichelsonType> : - T extends "pair" ? MichelsonTypePair<MichelsonType[]> : - T extends "or" ? MichelsonTypeOr<[MichelsonType, MichelsonType]> : - T extends "lambda" ? MichelsonTypeLambda<MichelsonType, MichelsonType> : - T extends "set" ? MichelsonTypeSet<MichelsonType> : - T extends "map" ? MichelsonTypeMap<MichelsonType, MichelsonType> : - T extends "big_map" ? MichelsonTypeBigMap<MichelsonType, MichelsonType> : - T extends "never" ? MichelsonTypeNever : - T extends "bls12_381_g1" ? MichelsonTypeBLS12_381_G1 : - T extends "bls12_381_g2" ? MichelsonTypeBLS12_381_G2 : - T extends "bls12_381_fr" ? MichelsonTypeBLS12_381_FR : - T extends "sapling_transaction" ? MichelsonTypeSaplingTransaction : - MichelsonTypeSaplingState; + T extends "option" ? MichelsonTypeOption : + T extends "list" ? MichelsonTypeList : + T extends "contract" ? MichelsonTypeContract : + T extends "pair" ? MichelsonTypePair : + T extends "or" ? MichelsonTypeOr : + T extends "lambda" ? MichelsonTypeLambda : + T extends "set" ? MichelsonTypeSet : + T extends "map" ? MichelsonTypeMap : MichelsonTypeBigMap; // Data -export type MichelsonDataID = "Unit" | "True" | "False" | "None" | "Pair" | "Left" | "Right" | "Some"; - -type Data0<PT extends MichelsonDataID> = Prim0<PT>; -type DataX<PT extends MichelsonDataID, AT extends MichelsonData[]> = PrimX<PT, AT>; - -export type MichelsonDataOption = DataX<"Some", [MichelsonData]> | Data0<"None">; -export type MichelsonDataOr = DataX<"Left" | "Right", [MichelsonData]>; -type DataList<T extends MichelsonData[]> = T & Node; -export type MichelsonDataPair<T extends MichelsonData[]> = DataX<"Pair", T> | DataList<T>; -export type MichelsonMapElt = PrimX<"Elt", [MichelsonData, MichelsonData]>; -export type MichelsonMapEltList = List<MichelsonMapElt>; - -export type MichelsonData = - IntLiteral | - StringLiteral | - BytesLiteral | - Data0<"Unit" | "True" | "False"> | - MichelsonDataOption | - MichelsonDataOr | - DataList<MichelsonData[]> | - MichelsonDataPair<MichelsonData[]> | - InstructionList | - MichelsonMapEltList; +export type MichelsonMapElt<T1 extends MichelsonData = MichelsonData, T2 extends MichelsonData = MichelsonData> = ReqArgs<Prim<"Elt", [T1, T2]>>; +export type MichelsonDataId = "Unit" | "True" | "False" | "None" | "Pair" | "Left" | "Right" | "Some"; + +type DataPrim<PT extends MichelsonDataId, AT extends MichelsonData[] = never> = Prim<PT, AT>; +type Data0<PT extends "Unit" | "True" | "False" | "None"> = NoArgs<DataPrim<PT>>; +type DataX<PT extends "Pair" | "Left" | "Right" | "Some", AT extends MichelsonData[]> = ReqArgs<DataPrim<PT, AT>>; + +interface DataList<T extends MichelsonType> extends List<MichelsonData<T>> { } +interface EltList<T1 extends MichelsonComparableType, T2 extends MichelsonType> extends List<MichelsonMapElt<MichelsonData<T1>, MichelsonData<T2>>> { } + +export type MichelsonData<T extends MichelsonType = MichelsonType> = + T extends MichelsonTypeInt | MichelsonTypeNat | MichelsonTypeMutez ? IntLiteral : + T extends MichelsonTypeString | MichelsonTypeKeyHash | MichelsonTypeAddress | MichelsonTypeKey | MichelsonTypeSignature ? StringLiteral : + T extends MichelsonTypeBytes | MichelsonTypeChainID ? BytesLiteral : + T extends MichelsonTypeTimestamp ? IntLiteral | StringLiteral : + T extends MichelsonTypeUnit ? Data0<"Unit"> : + T extends MichelsonTypeBool ? Data0<"True" | "False"> : + T extends MichelsonTypeOption<infer A> ? Data0<"None"> | DataX<"Some", [MichelsonData<A>]> : + T extends MichelsonTypeList<infer A> ? DataList<A> : + T extends MichelsonTypePair<infer A1, infer A2> ? DataX<"Pair", [MichelsonData<A1>, MichelsonData<A2>]> : + T extends MichelsonTypeOr<infer A1, infer A2> ? DataX<"Left", [MichelsonData<A1>]> | DataX<"Right", [MichelsonData<A2>]> : + T extends MichelsonTypeLambda ? MichelsonCode : + T extends MichelsonTypeSet<infer A> ? DataList<A> : + T extends MichelsonTypeMap<infer A1, infer A2> ? EltList<A1, A2> : + T extends MichelsonTypeBigMap<infer A1, infer A2> ? EltList<A1, A2> : + never; // Top level script sections -export type MichelsonSectionID = "parameter" | "storage" | "code"; -type SectionPrim<PT extends MichelsonSectionID, AT extends Expr[]> = PrimX<PT, AT>; +type MichelsonSectionId = "parameter" | "storage" | "code"; +type SectionPrim<PT extends MichelsonSectionId, AT extends Expr[]> = ReqArgs<Prim<PT, AT>>; -export type MichelsonContractParameter = SectionPrim<"parameter", [MichelsonType]>; -export type MichelsonContractStorage = SectionPrim<"storage", [MichelsonType]>; -export type MichelsonContractCode = SectionPrim<"code", [InstructionList]>; +export type MichelsonContractParameter = SectionPrim<"parameter", [MichelsonPassableType]>; +export type MichelsonContractStorage = SectionPrim<"storage", [MichelsonStorableType]>; +export type MichelsonContractCode = SectionPrim<"code", [List<MichelsonCode>]>; export type MichelsonContract = [MichelsonContractParameter, MichelsonContractStorage, MichelsonContractCode] | @@ -177,7 +218,7 @@ export type MichelsonContract = [MichelsonContractCode, MichelsonContractStorage, MichelsonContractParameter] | [MichelsonContractCode, MichelsonContractParameter, MichelsonContractStorage]; -export type MichelsonContractSection<T extends MichelsonSectionID> = +export type MichelsonContractSection<T extends MichelsonSectionId> = T extends "parameter" ? MichelsonContractParameter : T extends "storage" ? MichelsonContractStorage : MichelsonContractCode; @@ -186,22 +227,4 @@ export interface MichelsonTypeFailed { failed: MichelsonType; } -export type MichelsonReturnType = MichelsonType[] | MichelsonTypeFailed; - -export enum Protocol { - Pt24m4xi = "Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd", - PsBABY5H = "PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU", - PsBabyM1 = "PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS", - PsCARTHA = "PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb", - PsDELPH1 = "PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo", - PtEdo2Zk = 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA', - PsFLorena = 'PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i' -} - -export const DefaultProtocol = Protocol.PsDELPH1; - -export type ProtocolID = `${Protocol}`; - -export interface ProtocolOptions { - protocol?: ProtocolID; -} \ No newline at end of file +export type MichelsonStackType = MichelsonType[] | MichelsonTypeFailed; diff --git a/packages/taquito-michel-codec/src/michelson-validator.ts b/packages/taquito-michel-codec/src/michelson-validator.ts index 336c12af7c..640ab3d365 100644 --- a/packages/taquito-michel-codec/src/michelson-validator.ts +++ b/packages/taquito-michel-codec/src/michelson-validator.ts @@ -1,41 +1,39 @@ import { Prim, Expr, IntLiteral } from "./micheline"; import { Tuple, NoArgs, ReqArgs, MichelsonError } from "./utils"; import { - MichelsonCode, MichelsonType, MichelsonData, MichelsonContract, MichelsonNoArgInstruction, - MichelsonInstruction, InstructionList, MichelsonTypeID, MichelsonSimpleComparableTypeID + MichelsonCode, MichelsonType, MichelsonComparableType, MichelsonSimpleComparableType, + MichelsonData, MichelsonContract, MichelsonNoArgInstruction, MichelsonInstruction, + MichelsonSerializableType, MichelsonPushableType, MichelsonStorableType, MichelsonPassableType } from "./michelson-types"; // Michelson validator const noArgInstructionIDs: Record<MichelsonNoArgInstruction["prim"], true> = { - "ABS": true, "ADD": true, "ADDRESS": true, "AMOUNT": true, "AND": true, "APPLY": true, "BALANCE": true, - "BLAKE2B": true, "CAR": true, "CDR": true, "CHAIN_ID": true, "CHECK_SIGNATURE": true, "COMPARE": true, "CONCAT": true, "CONS": true, "EDIV": true, - "EQ": true, "EXEC": true, "FAILWITH": true, "GE": true, "GET_AND_UPDATE": true, "GT": true, "HASH_KEY": true, "IMPLICIT_ACCOUNT": true, - "INT": true, "ISNAT": true, "JOIN_TICKETS": true, "KECCAK": true, "LE": true, "LEVEL": true, "LSL": true, "LSR": true, "LT": true, "MEM": true, "MUL": true, - "NEG": true, "NEQ": true, "NEVER": true, "NOT": true, "NOW": true, "OR": true, "PACK": true, "PAIRING_CHECK": true, "READ_TICKET": true, - "SAPLING_VERIFY_UPDATE": true, "SELF": true, "SELF_ADDRESS": true, "SENDER": true, "SET_DELEGATE": true, "SHA256": true, "SHA3": true, - "SHA512": true, "SIZE": true, "SLICE": true, "SOME": true, "SOURCE": true, "SPLIT_TICKET": true, "SUB": true, "SWAP": true, "TICKET": true, - "TOTAL_VOTING_POWER": true, "TRANSFER_TOKENS": true, "UNIT": true, "VOTING_POWER": true, "XOR": true, "RENAME": true, + "DUP": true, "SWAP": true, "SOME": true, "UNIT": true, "PAIR": true, "CAR": true, "CDR": true, + "CONS": true, "SIZE": true, "MEM": true, "GET": true, "UPDATE": true, "EXEC": true, "APPLY": true, "FAILWITH": true, "RENAME": true, "CONCAT": true, "SLICE": true, + "PACK": true, "ADD": true, "SUB": true, "MUL": true, "EDIV": true, "ABS": true, "ISNAT": true, "INT": true, "NEG": true, "LSL": true, "LSR": true, "OR": true, + "AND": true, "XOR": true, "NOT": true, "COMPARE": true, "EQ": true, "NEQ": true, "LT": true, "GT": true, "LE": true, "GE": true, "SELF": true, + "TRANSFER_TOKENS": true, "SET_DELEGATE": true, "CREATE_ACCOUNT": true, "IMPLICIT_ACCOUNT": true, "NOW": true, "AMOUNT": true, + "BALANCE": true, "CHECK_SIGNATURE": true, "BLAKE2B": true, "SHA256": true, "SHA512": true, "HASH_KEY": true, "STEPS_TO_QUOTA": true, + "SOURCE": true, "SENDER": true, "ADDRESS": true, "CHAIN_ID": true, }; export const instructionIDs: Record<MichelsonInstruction["prim"], true> = Object.assign({}, noArgInstructionIDs, { - "CONTRACT": true, "CREATE_CONTRACT": true, "DIG": true, "DIP": true, "DROP": true, - "DUG": true, "DUP": true, "EMPTY_BIG_MAP": true, "EMPTY_MAP": true, "EMPTY_SET": true, "GET": true, "IF": true, "IF_CONS": true, "IF_LEFT": true, - "IF_NONE": true, "ITER": true, "LAMBDA": true, "LEFT": true, "LOOP": true, "LOOP_LEFT": true, "MAP": true, "NIL": true, "NONE": true, "PAIR": true, - "PUSH": true, "RIGHT": true, "SAPLING_EMPTY_STATE": true, "UNPACK": true, "UNPAIR": true, "UPDATE": true, "CAST": true, + "DROP": true, "DIG": true, "DUG": true, "NONE": true, "LEFT": true, "RIGHT": true, "NIL": true, "UNPACK": true, "CONTRACT": true, "CAST": true, + "IF_NONE": true, "IF_LEFT": true, "IF_CONS": true, "IF": true, "MAP": true, "ITER": true, "LOOP": true, "LOOP_LEFT": true, "DIP": true, + "CREATE_CONTRACT": true, "PUSH": true, "EMPTY_SET": true, "EMPTY_MAP": true, "EMPTY_BIG_MAP": true, "LAMBDA": true, } as const); -const simpleComparableTypeIDs: Record<MichelsonSimpleComparableTypeID, true> = { - "unit": true, "never": true, "bool": true, "int": true, "nat": true, "string": true, - "chain_id": true, "bytes": true, "mutez": true, "key_hash": true, "key": true, - "signature": true, "timestamp": true, "address": true, +const simpleComparableTypeIDs: Record<MichelsonSimpleComparableType["prim"], true> = { + "int": true, "nat": true, "string": true, "bytes": true, "mutez": true, + "bool": true, "key_hash": true, "timestamp": true, "address": true, }; -const typeIDs: Record<MichelsonTypeID, true> = Object.assign({}, simpleComparableTypeIDs, { - "or": true, "pair": true, "set": true, "big_map": true, "contract": true, "lambda": true, - "list": true, "map": true, "operation": true, "option": true, "bls12_381_g1": true, - "bls12_381_g2": true, "bls12_381_fr": true, "sapling_transaction": true, "sapling_state": true, "ticket": true, -} as const); +const typeIDs: Record<MichelsonType["prim"], true> = { + "address": true, "big_map": true, "bool": true, "bytes": true, "chain_id": true, "contract": true, "int": true, + "key_hash": true, "key": true, "lambda": true, "list": true, "map": true, "mutez": true, "nat": true, "operation": true, "option": true, + "or": true, "pair": true, "set": true, "signature": true, "string": true, "timestamp": true, "unit": true, +}; export class MichelsonValidationError extends MichelsonError { /** @@ -52,10 +50,6 @@ function isPrim(ex: Expr): ex is Prim { return "prim" in ex; } -function isPrimOrSeq(ex: Expr): ex is Prim | Expr[] { - return Array.isArray(ex) || "prim" in ex; -} - function assertPrim(ex: Expr): ex is Prim { if (isPrim(ex)) { return true; @@ -70,13 +64,6 @@ function assertSeq(ex: Expr): ex is Expr[] { throw new MichelsonValidationError(ex, "sequence expression expected"); } -function assertPrimOrSeq(ex: Expr): ex is Prim | Expr[] { - if (isPrimOrSeq(ex)) { - return true; - } - throw new MichelsonValidationError(ex, "prim or sequence expression expected"); -} - function assertNatural(i: IntLiteral) { if (i.int[0] === "-") { throw new MichelsonValidationError(i, "natural number expected"); @@ -124,11 +111,6 @@ export function assertMichelsonInstruction(ex: Expr): ex is MichelsonCode { switch (ex.prim) { case "DROP": - case "PAIR": - case "UNPAIR": - case "DUP": - case "UPDATE": - case "GET": if (ex.args !== undefined && assertArgs(ex, 1)) { /* istanbul ignore else */ if (assertIntLiteral(ex.args[0])) { @@ -139,7 +121,6 @@ export function assertMichelsonInstruction(ex: Expr): ex is MichelsonCode { case "DIG": case "DUG": - case "SAPLING_EMPTY_STATE": /* istanbul ignore else */ if (assertArgs(ex, 1)) { /* istanbul ignore else */ @@ -163,7 +144,7 @@ export function assertMichelsonInstruction(ex: Expr): ex is MichelsonCode { case "UNPACK": /* istanbul ignore else */ if (assertArgs(ex, 1)) { - assertMichelsonPackableType(ex.args[0]); + assertMichelsonSerializableType(ex.args[0]); } break; @@ -255,7 +236,7 @@ export function assertMichelsonInstruction(ex: Expr): ex is MichelsonCode { /* istanbul ignore else */ if (assertArgs(ex, 2)) { assertMichelsonComparableType(ex.args[0]); - assertMichelsonBigMapStorableType(ex.args[1]); + assertMichelsonSerializableType(ex.args[1]); } break; @@ -278,94 +259,80 @@ export function assertMichelsonInstruction(ex: Expr): ex is MichelsonCode { return true; } -export function assertMichelsonComparableType(ex: Expr): ex is MichelsonType { +export function assertMichelsonComparableType(ex: Expr): ex is MichelsonComparableType { /* istanbul ignore else */ - if (assertPrimOrSeq(ex)) { - if (Array.isArray(ex) || ex.prim === "pair" || ex.prim === "or" || ex.prim === "option") { - traverseType(ex, (ex) => assertMichelsonComparableType(ex)); - } else if (!Object.prototype.hasOwnProperty.call(simpleComparableTypeIDs, ex.prim)) { + if (assertPrim(ex)) { + if (!Object.prototype.hasOwnProperty.call(simpleComparableTypeIDs, ex.prim) && ex.prim !== "pair") { throw new MichelsonValidationError(ex, `${ex.prim}: type is not comparable`); } + traverseType(ex, + (ex) => { + if (!Object.prototype.hasOwnProperty.call(simpleComparableTypeIDs, ex.prim)) { + throw new MichelsonValidationError(ex, `${ex.prim}: type is not comparable`); + } + assertArgs(ex, 0); + }, + (ex) => assertMichelsonComparableType(ex)); } return true; } -export function assertMichelsonPackableType(ex: Expr): ex is MichelsonType { - /* istanbul ignore else */ - if (assertPrimOrSeq(ex)) { - if (isPrim(ex)) { - if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim) || - ex.prim === "big_map" || - ex.prim === "operation" || - ex.prim === "sapling_state" || - ex.prim === "ticket") { - throw new MichelsonValidationError(ex, `${ex.prim}: type can't be used inside PACK/UNPACK instructions`); - } - traverseType(ex, (ex) => assertMichelsonPackableType(ex)); - } - } - return true; -} - -export function assertMichelsonPushableType(ex: Expr): ex is MichelsonType { +export function assertMichelsonSerializableType(ex: Expr): ex is MichelsonSerializableType { /* istanbul ignore else */ - if (assertPrimOrSeq(ex)) { - if (isPrim(ex)) { - if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim) || - ex.prim === "big_map" || - ex.prim === "operation" || - ex.prim === "sapling_state" || - ex.prim === "ticket" || - ex.prim === "contract") { - throw new MichelsonValidationError(ex, `${ex.prim}: type can't be pushed`); - } - traverseType(ex, (ex) => assertMichelsonPushableType(ex)); + if (assertPrim(ex)) { + if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim) || + ex.prim === "big_map" || + ex.prim === "operation") { + throw new MichelsonValidationError(ex, `${ex.prim}: type can't be used inside big_map or PACK/UNPACK instructions`); } + traverseType(ex, + (ex) => assertMichelsonSerializableType(ex), + (ex) => assertMichelsonSerializableType(ex)); } return true; } -export function assertMichelsonStorableType(ex: Expr): ex is MichelsonType { +export function assertMichelsonPushableType(ex: Expr): ex is MichelsonPushableType { /* istanbul ignore else */ - if (assertPrimOrSeq(ex)) { - if (isPrim(ex)) { - if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim) || - ex.prim === "operation" || - ex.prim === "contract") { - throw new MichelsonValidationError(ex, `${ex.prim}: type can't be used as part of a storage`); - } - traverseType(ex, (ex) => assertMichelsonStorableType(ex)); + if (assertPrim(ex)) { + if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim) || + ex.prim === "big_map" || + ex.prim === "operation" || + ex.prim === "contract") { + throw new MichelsonValidationError(ex, `${ex.prim}: type can't be pushed`); } + traverseType(ex, + (ex) => assertMichelsonPushableType(ex), + (ex) => assertMichelsonPushableType(ex)); } return true; } -export function assertMichelsonPassableType(ex: Expr): ex is MichelsonType { +export function assertMichelsonStorableType(ex: Expr): ex is MichelsonStorableType { /* istanbul ignore else */ - if (assertPrimOrSeq(ex)) { - if (isPrim(ex)) { - if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim) || - ex.prim === "operation") { - throw new MichelsonValidationError(ex, `${ex.prim}: type can't be used as part of a parameter`); - } - traverseType(ex, (ex) => assertMichelsonPassableType(ex)); + if (assertPrim(ex)) { + if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim) || + ex.prim === "operation" || + ex.prim === "contract") { + throw new MichelsonValidationError(ex, `${ex.prim}: type can't be used as part of a storage`); } + traverseType(ex, + (ex) => assertMichelsonStorableType(ex), + (ex) => assertMichelsonStorableType(ex)); } return true; } -export function assertMichelsonBigMapStorableType(ex: Expr): ex is MichelsonType { +export function assertMichelsonPassableType(ex: Expr): ex is MichelsonPassableType { /* istanbul ignore else */ - if (assertPrimOrSeq(ex)) { - if (isPrim(ex)) { - if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim) || - ex.prim === "big_map" || - ex.prim === "operation" || - ex.prim === "sapling_state") { - throw new MichelsonValidationError(ex, `${ex.prim}: type can't be used inside a big_map`); - } - traverseType(ex, (ex) => assertMichelsonBigMapStorableType(ex)); + if (assertPrim(ex)) { + if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim) || + ex.prim === "operation") { + throw new MichelsonValidationError(ex, `${ex.prim}: type can't be used as part of a parameter`); } + traverseType(ex, + (ex) => assertMichelsonPassableType(ex), + (ex) => assertMichelsonPassableType(ex)); } return true; } @@ -377,37 +344,26 @@ export function assertMichelsonBigMapStorableType(ex: Expr): ex is MichelsonType */ export function assertMichelsonType(ex: Expr): ex is MichelsonType { /* istanbul ignore else */ - if (assertPrimOrSeq(ex)) { - if (isPrim(ex)) { - if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim)) { - throw new MichelsonValidationError(ex, "type expected"); - } - traverseType(ex, (ex) => assertMichelsonType(ex)); + if (assertPrim(ex)) { + if (!Object.prototype.hasOwnProperty.call(typeIDs, ex.prim)) { + throw new MichelsonValidationError(ex, "type expected"); } + traverseType(ex, + (ex) => assertMichelsonType(ex), + (ex) => assertMichelsonType(ex)); } return true; } -function traverseType(ex: Prim | Expr[], cb: (ex: Prim | Expr[]) => void): ex is MichelsonType { - if (Array.isArray(ex) || ex.prim === "pair") { - const args = Array.isArray(ex) ? ex : ex.args; - if (args === undefined || args.length < 2) { - throw new MichelsonValidationError(ex, "at least 2 arguments expected"); - } - args.forEach(a => { - if (assertPrimOrSeq(a)) { - cb(a); - } - }); - return true; - } +function traverseType( + ex: Prim, left: (ex: Prim) => void, child: (ex: Prim) => void): ex is MichelsonType { switch (ex.prim) { case "option": case "list": /* istanbul ignore else */ - if (assertArgs(ex, 1) && assertPrimOrSeq(ex.args[0])) { - cb(ex.args[0]); + if (assertArgs(ex, 1) && assertPrim(ex.args[0])) { + child(ex.args[0]); } break; @@ -418,11 +374,19 @@ function traverseType(ex: Prim | Expr[], cb: (ex: Prim | Expr[]) => void): ex is } break; + case "pair": + /* istanbul ignore else */ + if (assertArgs(ex, 2) && assertPrim(ex.args[0]) && assertPrim(ex.args[1])) { + left(ex.args[0]); + child(ex.args[1]); + } + break; + case "or": /* istanbul ignore else */ - if (assertArgs(ex, 2) && assertPrimOrSeq(ex.args[0]) && assertPrimOrSeq(ex.args[1])) { - cb(ex.args[0]); - cb(ex.args[1]); + if (assertArgs(ex, 2) && assertPrim(ex.args[0]) && assertPrim(ex.args[1])) { + child(ex.args[0]); + child(ex.args[1]); } break; @@ -443,32 +407,18 @@ function traverseType(ex: Prim | Expr[], cb: (ex: Prim | Expr[]) => void): ex is case "map": /* istanbul ignore else */ - if (assertArgs(ex, 2) && assertPrimOrSeq(ex.args[0]) && assertPrimOrSeq(ex.args[1])) { + if (assertArgs(ex, 2) && assertPrim(ex.args[0]) && assertPrim(ex.args[1])) { assertMichelsonComparableType(ex.args[0]); - cb(ex.args[1]); + child(ex.args[1]); } break; case "big_map": /* istanbul ignore else */ - if (assertArgs(ex, 2) && assertPrimOrSeq(ex.args[0]) && assertPrimOrSeq(ex.args[1])) { + if (assertArgs(ex, 2) && assertPrim(ex.args[0]) && assertPrim(ex.args[1])) { assertMichelsonComparableType(ex.args[0]); - assertMichelsonBigMapStorableType(ex.args[1]); - cb(ex.args[1]); - } - break; - - case "ticket": - /* istanbul ignore else */ - if (assertArgs(ex, 1) && assertPrimOrSeq(ex.args[0])) { - assertMichelsonComparableType(ex.args[0]); - } - break; - - case "sapling_state": - case "sapling_transaction": - if (assertArgs(ex, 1)) { - assertIntLiteral(ex.args[0]); + assertMichelsonSerializableType(ex.args[1]); + child(ex.args[1]); } break; @@ -520,11 +470,9 @@ export function assertMichelsonData(ex: Expr): ex is MichelsonData { case "Pair": /* istanbul ignore else */ - if (ex.args === undefined || ex.args.length < 2) { - throw new MichelsonValidationError(ex, "at least 2 arguments expected"); - } - for (const a of ex.args) { - assertMichelsonData(a); + if (assertArgs(ex, 2)) { + assertMichelsonData(ex.args[0]); + assertMichelsonData(ex.args[1]); } break; @@ -558,37 +506,31 @@ export function assertMichelsonData(ex: Expr): ex is MichelsonData { */ export function assertMichelsonContract(ex: Expr): ex is MichelsonContract { /* istanbul ignore else */ - if (assertSeq(ex)) { - const ent: { [sec: string]: boolean } = {}; - for (const sec of ex) { - if (assertPrim(sec)) { - if (sec.prim !== "code" && sec.prim !== "parameter" && sec.prim !== "storage") { - throw new MichelsonValidationError(ex, `unexpected contract section: ${sec.prim}`); - } - if (sec.prim in ent) { - throw new MichelsonValidationError(ex, `duplicate contract section: ${sec.prim}`); - } - ent[sec.prim] = true; - + if (assertSeq(ex) && ex.length === 3 && assertPrim(ex[0]) && assertPrim(ex[1]) && assertPrim(ex[2])) { + const p = [ex[0].prim, ex[1].prim, ex[2].prim].sort(); + if (p[0] === "code" && p[1] === "parameter" && p[2] === "storage") { + for (const n of ex as Prim[]) { /* istanbul ignore else */ - if (assertArgs(sec, 1)) { - switch (sec.prim) { + if (assertArgs(n, 1)) { + switch (n.prim) { case "code": /* istanbul ignore else */ - if (assertSeq(sec.args[0])) { - assertMichelsonInstruction(sec.args[0]); + if (assertSeq(n.args[0])) { + assertMichelsonInstruction(n.args[0]); } break; case "parameter": - assertMichelsonPassableType(sec.args[0]); + assertMichelsonPassableType(n.args[0]); break; case "storage": - assertMichelsonStorableType(sec.args[0]); + assertMichelsonStorableType(n.args[0]); } } } + } else { + throw new MichelsonValidationError(ex, "valid Michelson script expected"); } } return true; @@ -624,7 +566,7 @@ export function isMichelsonData(ex: Expr): ex is MichelsonData { * Checks if the node is a valid Michelson code (sequence of instructions). * @param ex An AST node */ -export function isMichelsonCode(ex: Expr): ex is InstructionList { +export function isMichelsonCode(ex: Expr): ex is MichelsonCode[] { try { assertMichelsonInstruction(ex); return true; @@ -646,22 +588,3 @@ export function isMichelsonType(ex: Expr): ex is MichelsonType { } } -export function isInstruction(p: Prim): p is MichelsonInstruction { - return Object.prototype.hasOwnProperty.call(instructionIDs, p.prim); -} - -export function assertDataListIfAny(d: MichelsonData): d is MichelsonData[] { - if (!Array.isArray(d)) { - return false; - } - for (const v of d) { - if ("prim" in v) { - if (isInstruction(v)) { - throw new MichelsonError(d, `Instruction outside of a lambda: ${JSON.stringify(d)}`); - } else if (v.prim === "Elt") { - throw new MichelsonError(d, `Elt item outside of a map literal: ${JSON.stringify(d)}`); - } - } - } - return true; -} \ No newline at end of file diff --git a/packages/taquito-michel-codec/src/taquito-michel-codec.ts b/packages/taquito-michel-codec/src/taquito-michel-codec.ts index ead89fce02..790fbb797c 100644 --- a/packages/taquito-michel-codec/src/taquito-michel-codec.ts +++ b/packages/taquito-michel-codec/src/taquito-michel-codec.ts @@ -1,7 +1,3 @@ -/** - * @packageDocumentation - * @module @taquito/michel-codec - */ export * from "./micheline"; export * from "./micheline-parser"; export * from "./micheline-emitter"; @@ -10,7 +6,5 @@ export * from "./michelson-types"; export * from "./michelson-typecheck"; export * from "./michelson-contract"; export * from "./formatters"; -export * from "./binary"; -export { MichelsonError, isMichelsonError, MichelsonTypeError } from "./utils"; +export { MichelsonError, isMichelsonError } from "./utils"; export { MacroError } from "./macros"; -export { VERSION } from './version'; diff --git a/packages/taquito-michel-codec/src/utils.ts b/packages/taquito-michel-codec/src/utils.ts index f7011268b1..a299942235 100644 --- a/packages/taquito-michel-codec/src/utils.ts +++ b/packages/taquito-michel-codec/src/utils.ts @@ -1,20 +1,14 @@ -import { Prim, Expr, StringLiteral, IntLiteral } from "./micheline"; -import { decodeBase58Check, encodeBase58Check } from "./base58"; -import { MichelsonData, MichelsonDataPair, MichelsonType, MichelsonTypePair } from "./michelson-types"; +import { Prim, Expr } from "./micheline"; +import { decodeBase58Check } from "./base58"; -export type Tuple<N extends number, T> = - N extends 1 ? [T] : +export type Tuple<N extends number, T> = N extends 1 ? [T] : N extends 2 ? [T, T] : N extends 3 ? [T, T, T] : N extends 4 ? [T, T, T, T] : - N extends 5 ? [T, T, T, T, T] : - N extends 6 ? [T, T, T, T, T, T] : - N extends 7 ? [T, T, T, T, T, T, T] : - N extends 8 ? [T, T, T, T, T, T, T, T] : - T[]; + never; type RequiredProp<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>; -type OmitProp<T, K extends keyof T> = Omit<T, K> & { [P in K]?: undefined }; +type OmitProp<T, K extends keyof T> = Omit<T, K> & { [P in K]?: never }; export type ReqArgs<T extends Prim> = RequiredProp<T, "args">; export type NoArgs<T extends Prim> = OmitProp<T, "args">; @@ -38,23 +32,6 @@ export function isMichelsonError<T extends Expr = Expr>(err: any): err is Michel return err instanceof MichelsonError; } -export class MichelsonTypeError extends MichelsonError<MichelsonType | MichelsonType[]> { - public data?: Expr; - - /** - * @param val Value of a type node caused the error - * @param data Value of a data node caused the error - * @param message An error message - */ - constructor(val: MichelsonType | MichelsonType[], data?: Expr, message?: string) { - super(val, message); - if (data !== undefined) { - this.data = data; - } - Object.setPrototypeOf(this, MichelsonTypeError.prototype); - } -} - // Ad hoc big integer parser export class LongInteger { private neg = false; @@ -175,11 +152,7 @@ export interface UnpackAnnotationsOptions { const annRe = /^(@%|@%%|%@|[@:%]([_0-9a-zA-Z][_0-9a-zA-Z\.%@]*)?)$/; -export function unpackAnnotations(p: Prim | Expr[], opt?: UnpackAnnotationsOptions): UnpackedAnnotations { - if (Array.isArray(p)) { - return {}; - } - +export function unpackAnnotations(p: Prim, opt?: UnpackAnnotationsOptions): UnpackedAnnotations { let field: string[] | undefined; let type: string[] | undefined; let vars: string[] | undefined; @@ -260,99 +233,19 @@ export const tezosPrefix: Record<TezosIDType, TezosIDPrefix> = { ChainID: [4, [87, 82, 0]], }; -export function checkDecodeTezosID<T extends TezosIDType[]>(id: string, ...types: T): [T[number], number[]] | null { - const buf = decodeBase58Check(id); +export function checkTezosID(id: string | number[], ...types: TezosIDType[]): [TezosIDType, number[]] | null { + const buf = Array.isArray(id) ? id : decodeBase58Check(id); for (const t of types) { - const [plen, p] = tezosPrefix[t]; - if (buf.length === plen + p.length) { + const prefix = tezosPrefix[t]; + if (buf.length === prefix[0] + prefix[1].length) { let i = 0; - while (i < p.length && buf[i] === p[i]) { + while (i < prefix[1].length && buf[i] === prefix[1][i]) { i++; } - if (i === p.length) { - return [t, buf.slice(p.length)]; - } - } - } - return null; -} - -export function encodeTezosID(id: TezosIDType, data: number[] | Uint8Array): string { - const [plen, p] = tezosPrefix[id]; - if (data.length !== plen) { - throw new Error(`incorrect data length for ${id}: ${data.length}`); - } - return encodeBase58Check([...p, ...data]); -} - -// reassemble comb pair for transparent comparison etc. non-recursive! -type PairTypeOrDataPrim<I extends "pair" | "Pair"> = I extends "pair" ? Extract<MichelsonTypePair<MichelsonType[]>, Prim> : Extract<MichelsonDataPair<MichelsonData[]>, Prim>; -export function unpackComb<I extends "pair" | "Pair">(id: I, v: I extends "pair" ? MichelsonTypePair<MichelsonType[]> : MichelsonDataPair<MichelsonData[]>): PairTypeOrDataPrim<I> { - const vv: MichelsonTypePair<MichelsonType[]> | MichelsonDataPair<MichelsonData[]> = v; - const args = Array.isArray(vv) ? vv : vv.args; - if (args.length === 2) { - // it's a way to make a union of two interfaces not an interface with two independent properties of union types - const ret = id === "pair" ? { - prim: "pair", - args, - } : { - prim: "Pair", - args, - }; - return ret as PairTypeOrDataPrim<I>; - } - - return { - ...(Array.isArray(vv) ? { prim: id } : vv), - args: [ - args[0], - { - prim: id, - args: args.slice(1), - }, - ], - } as PairTypeOrDataPrim<I>; -} - -export function isPairType(t: MichelsonType): t is MichelsonTypePair<MichelsonType[]> { - return Array.isArray(t) || t.prim === "pair"; -} - -export function isPairData(d: Expr): d is MichelsonDataPair<MichelsonData[]> { - return Array.isArray(d) || "prim" in d && d.prim === "Pair"; -} - -const rfc3339Re = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])[T ]([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|[+-]([01][0-9]|2[0-3]):([0-5][0-9]))$/; - -export function parseDate(a: StringLiteral | IntLiteral): Date | null { - if ("string" in a) { - if (isNatural(a.string)) { - return new Date(parseInt(a.string, 10)); - } else if (rfc3339Re.test(a.string)) { - const x = new Date(a.string); - if (!Number.isNaN(x.valueOf)) { - return x; + if (i === prefix[1].length) { + return [t, buf.slice(prefix[1].length)]; } } - } else if (isNatural(a.int)) { - return new Date(parseInt(a.int, 10)); } return null; } - -export function parseHex(s: string): number[] { - const res: number[] = []; - for (let i = 0; i < s.length; i += 2) { - const ss = s.slice(i, i + 2); - const x = parseInt(ss, 16); - if (Number.isNaN(x)) { - throw new Error(`can't parse hex byte: ${ss}`); - } - res.push(x); - } - return res; -} - -export function hexBytes(bytes: number[]): string { - return bytes.map(x => ((x >> 4) & 0xf).toString(16) + (x & 0xf).toString(16)).join(""); -} diff --git a/packages/taquito-michel-codec/src/version.ts b/packages/taquito-michel-codec/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-michel-codec/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-michel-codec/test/attic.spec.ts b/packages/taquito-michel-codec/test/attic.spec.ts new file mode 100644 index 0000000000..8c1b17a8a5 --- /dev/null +++ b/packages/taquito-michel-codec/test/attic.spec.ts @@ -0,0 +1,955 @@ +import { Contract } from "../src/michelson-contract"; +import { MichelsonError } from "../src/utils"; +import { inspect } from "util"; + +describe('Attic', () => { + it("accounts", () => { + const src = `# This is a very simple accounts system. +# (Left key) initializes or deposits into an account +# (Right key (pair mutez (signed mutez))) withdraws mutez amount to a +# IMPLICIT_ACCOUNT created from the key if the balance is available +# and the key is correctly signed +parameter (or (key_hash %Initialize) + (pair %Withdraw + (key %from) + (pair + (mutez %withdraw_amount) + (signature %sig)))); +# Maps the key to the balance they have stored +storage (map :stored_balance key_hash mutez); +code { DUP; CAR; + # Deposit into account + IF_LEFT { DUP; DIIP{ CDR %stored_balance; DUP }; + DIP{ SWAP }; GET @opt_prev_balance; + # Create the account + IF_SOME # Add to an existing account + { RENAME @previous_balance; + AMOUNT; ADD; SOME; SWAP; UPDATE; NIL operation; PAIR } + { DIP{ AMOUNT; SOME }; UPDATE; NIL operation; PAIR }} + # Withdrawal + { DUP; DUP; DUP; DUP; + # Check signature on data + CAR %from; + DIIP{ CDAR %withdraw_amount; PACK ; BLAKE2B @signed_amount }; + DIP{ CDDR %sig }; CHECK_SIGNATURE; + IF {} { PUSH string "Bad signature"; FAILWITH }; + # Get user account information + DIIP{ CDR %stored_balance; DUP }; + CAR %from; HASH_KEY @from_hash; DUP; DIP{ DIP { SWAP }; SWAP}; GET; + # Account does not exist + IF_NONE { PUSH string "Account does not exist"; PAIR; FAILWITH } + # Account exists + { RENAME @previous_balance; + DIP { DROP }; + DUP; DIIP{ DUP; CDAR %withdraw_amount; DUP }; + # Ensure funds are available + DIP{ CMPLT @not_enough }; SWAP; + IF { PUSH string "Not enough funds"; FAILWITH } + { SUB @new_balance; DIP{ DUP; DIP{ SWAP }}; DUP; + # Delete account if balance is 0 + PUSH @zero mutez 0; CMPEQ @null_balance; + IF { DROP; NONE @new_balance mutez } + # Otherwise update storage with new balance + { SOME @new_balance }; + SWAP; CAR %from; HASH_KEY @from_hash; UPDATE; + SWAP; DUP; CDAR %withdraw_amount; + # Execute the transfer + DIP{ CAR %from; HASH_KEY @from_hash; IMPLICIT_ACCOUNT @from_account}; UNIT; + TRANSFER_TOKENS @withdraw_transfer_op; + NIL operation; SWAP; CONS; + PAIR }}}}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("add1", () => { + const src = `parameter int; +storage int; +code {CAR; # Get the parameter + PUSH int 1; # We're adding 1, so we need to put 1 on the stack + ADD; # Add the two numbers + NIL operation; # We put an empty list of operations on the stack + PAIR} # Create the end value`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("add1_list", () => { + const src = `parameter (list int); +storage (list int); +code { CAR; # Get the parameter + MAP { PUSH int 1; ADD }; # Map over the list adding one + NIL operation; # No internal op + PAIR } # Match the calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("after_strategy", () => { + const src = `parameter nat; +storage (pair (pair nat bool) timestamp); +code {DUP; CAR; DIP{CDDR; DUP; NOW; CMPGT}; PAIR; PAIR ; NIL operation ; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("always", () => { + const src = `parameter nat; +storage (pair nat bool); +code { CAR; PUSH bool True; SWAP; + PAIR; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("append", () => { + const src = `parameter (pair (list int) (list int)); +storage (list int); +code { CAR; UNPAIR ; # Unpack lists + NIL int; SWAP; # Setup reverse accumulator + ITER {CONS}; # Reverse list + ITER {CONS}; # Append reversed list + NIL operation; + PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("at_least", () => { + const src = `parameter unit; +storage mutez; # How much you have to send me +code {CDR; DUP; # Get the amount required (once for comparison, once to save back in storage) + AMOUNT; CMPLT; # Check to make sure no one is wasting my time + IF {FAIL} # Reject the person + {NIL operation;PAIR}} # Finish the transaction`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("auction", () => { + const src = `parameter key_hash; +storage (pair timestamp (pair mutez key_hash)); +code { DUP; CDAR; DUP; NOW; CMPGT; IF {FAIL} {}; SWAP; # Check if auction has ended + DUP; CAR; DIP{CDDR}; AMOUNT; PAIR; SWAP; DIP{SWAP; PAIR}; # Setup replacement storage + DUP; CAR; AMOUNT; CMPLE; IF {FAIL} {}; # Check to make sure that the new amount is greater + DUP; CAR; # Get amount of refund + DIP{CDR; IMPLICIT_ACCOUNT}; UNIT; TRANSFER_TOKENS; # Make refund + NIL operation; SWAP; CONS; PAIR} # Calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("bad_lockup", () => { + const src = `parameter unit; +storage (pair timestamp (pair address address)); +code { CDR; DUP; CAR; NOW; CMPLT; IF {FAIL} {}; + DUP; CDAR; CONTRACT unit ; ASSERT_SOME ; PUSH mutez 100000000; UNIT; TRANSFER_TOKENS; SWAP; + DUP; CDDR; CONTRACT unit ; ASSERT_SOME ; PUSH mutez 100000000; UNIT; TRANSFER_TOKENS; DIP {SWAP} ; + NIL operation ; SWAP ; CONS ; SWAP ; CONS ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("big_map_union", () => { + const src = `parameter (list (pair string int)) ; +storage (pair (big_map string int) unit) ; +code { UNPAPAIR ; + ITER { UNPAIR ; DUUUP ; DUUP; GET ; + IF_NONE { PUSH int 0 } {} ; + SWAP ; DIP { ADD ; SOME } ; + UPDATE } ; + PAIR ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("cadr_annotation", () => { + const src = `parameter (pair (pair %p1 unit (string %no_name)) bool); +storage unit; +code { CAR @param; CADR @name %no_name; DROP; UNIT; NIL operation; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("concat", () => { + const src = `parameter string; +storage string; +code { DUP; + DIP { CDR ; NIL string ; SWAP ; CONS } ; + CAR ; CONS ; + CONCAT; + NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("conditionals", () => { + const src = `parameter (or string (option int)); +storage string; +code { CAR; # Access the storage + IF_LEFT {} # The string is on top of the stack, nothing to do + { IF_NONE { FAIL} # Fail if None + { PUSH int 0; CMPGT; # Check for negative number + IF {FAIL} # Fail if negative + {PUSH string ""}}}; # Push the empty string + NIL operation; PAIR} # Calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("cons_twice", () => { + const src = `parameter nat; +storage (list nat); +code { DUP; # Duplicate the storage and parameter + CAR; # Extract the parameter + DIP{CDR}; # Extract the storage + DUP; # Duplicate the parameter + DIP{CONS}; # Add the first instance of the parameter to the list + CONS; # Add the second instance of the parameter to the list + NIL operation; PAIR} # Finish the calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("cps_fact", () => { + const src = `storage nat ; +parameter nat ; +code { UNPAIR ; + DIP { SELF ; ADDRESS ; SENDER; + IFCMPEQ {} { DROP ; PUSH @storage nat 1 } }; + DUP ; + PUSH nat 1 ; + IFCMPGE + { DROP ; NIL operation ; PAIR } + { PUSH nat 1 ; SWAP ; SUB @parameter ; ISNAT ; + IF_NONE + { NIL operation ; PAIR } + { DUP ; DIP { PUSH nat 1 ; ADD ; MUL @storage } ; SWAP; + DIP { DIP { SELF; PUSH mutez 0 } ; + TRANSFER_TOKENS ; NIL operation ; SWAP ; CONS } ; + SWAP ; PAIR } } }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("create_add1_lists", () => { + const src = `parameter unit; +storage address; +code { DROP; NIL int; # starting storage for contract + AMOUNT; # Push the starting balance + NONE key_hash; # No delegate + CREATE_CONTRACT # Create the contract + { parameter (list int) ; + storage (list int) ; + code + { CAR; + MAP {PUSH int 1; ADD}; + NIL operation; + PAIR } }; + NIL operation; SWAP; CONS; PAIR} # Ending calling convention stuff`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("data_publisher", () => { + const src = `parameter (pair signature (pair string nat)); +storage (pair (pair key nat) string); +code { DUP; CAR; DIP{CDR; DUP}; + SWAP; DIP{DUP}; CAAR; DIP{DUP; CAR; DIP{CDR; PACK ; BLAKE2B}}; + CHECK_SIGNATURE; + IF { CDR; DUP; DIP{CAR; DIP{CAAR}}; CDR; PUSH nat 1; ADD; + DIP{SWAP}; SWAP; PAIR; PAIR; NIL operation; PAIR} + {FAIL}}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("dispatch", () => { + const src = `parameter (or string (pair string (lambda unit string))); +storage (pair string (map string (lambda unit string))); +code { DUP; DIP{CDDR}; CAR; # Unpack stack + IF_LEFT { DIP{DUP}; GET; # Get lambda if it exists + IF_NONE {FAIL} {}; # Fail if it doesn't + UNIT; EXEC } # Execute the lambda + { DUP; CAR; DIP {CDR; SOME}; UPDATE; PUSH string ""}; # Update the storage + PAIR; + NIL operation; PAIR} # Calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("empty", () => { + const src = `parameter unit; +storage unit; +code {CDR; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("fail_amount", () => { + const src = `# Fail if the amount transferred is less than 10 +parameter unit; +storage unit; +code { DROP; + AMOUNT; PUSH mutez 10000000; CMPGT; IF {FAIL} {}; + UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("faucet", () => { + const src = `parameter key_hash ; +storage timestamp ; +code { UNPAIR ; SWAP ; + PUSH int 300 ; ADD @FIVE_MINUTES_LATER ; + NOW ; ASSERT_CMPGE ; + IMPLICIT_ACCOUNT ; PUSH mutez 1000000 ; UNIT ; TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS ; DIP { NOW } ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("forward", () => { + const src = `parameter + (or string nat) ; +storage + (pair + (pair nat (pair mutez mutez)) # counter from_buyer from_seller + (pair + (pair nat (pair timestamp timestamp)) # Q T Z + (pair + (pair mutez mutez) # K C + (pair + (pair address address) # B S + address)))) ; # W +code + { DUP ; CDDADDR ; # Z + PUSH int 86400 ; SWAP ; ADD ; # one day in second + NOW ; COMPARE ; LT ; + IF { # Before Z + 24 + DUP ; CAR ; # we must receive (Left "buyer") or (Left "seller") + IF_LEFT + { DUP ; PUSH string "buyer" ; COMPARE ; EQ ; + IF { DROP ; + DUP ; CDADAR ; # amount already versed by the buyer + DIP { AMOUNT } ; ADD ; # transaction + # then we rebuild the globals + DIP { DUP ; CDADDR } ; PAIR ; # seller amount + PUSH nat 0 ; PAIR ; # delivery counter at 0 + DIP { CDDR } ; PAIR ; # parameters + # and return Unit + NIL operation ; PAIR } + { PUSH string "seller" ; COMPARE ; EQ ; + IF { DUP ; CDADDR ; # amount already versed by the seller + DIP { AMOUNT } ; ADD ; # transaction + # then we rebuild the globals + DIP { DUP ; CDADAR } ; SWAP ; PAIR ; # buyer amount + PUSH nat 0 ; PAIR ; # delivery counter at 0 + DIP { CDDR } ; PAIR ; # parameters + # and return Unit + NIL operation ; PAIR } + { FAIL } } } # (Left _) + { FAIL } } # (Right _) + { # After Z + 24 + # if balance is emptied, just fail + BALANCE ; PUSH mutez 0 ; IFCMPEQ { FAIL } {} ; + # test if the required amount is reached + DUP ; CDDAAR ; # Q + DIP { DUP ; CDDDADR } ; MUL ; # C + PUSH nat 2 ; MUL ; + BALANCE ; COMPARE ; LT ; # balance < 2 * (Q * C) + IF { # refund the parties + CDR ; DUP ; CADAR ; # amount versed by the buyer + DIP { DUP ; CDDDAAR } ; # B + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS ; SWAP ; + DUP ; CADDR ; # amount versed by the seller + DIP { DUP ; CDDDADR } ; # S + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS ; SWAP ; + DIP { CONS } ; + DUP ; CADAR ; DIP { DUP ; CADDR } ; ADD ; + BALANCE ; SUB ; # bonus to the warehouse + DIP { DUP ; CDDDDR } ; # W + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS ; + DIP { SWAP } ; CONS ; + # leave the storage as-is, as the balance is now 0 + PAIR } + { # otherwise continue + DUP ; CDDADAR ; # T + NOW ; COMPARE ; LT ; + IF { FAIL } # Between Z + 24 and T + { # after T + DUP ; CDDADAR ; # T + PUSH int 86400 ; ADD ; # one day in second + NOW ; COMPARE ; LT ; + IF { # Between T and T + 24 + # we only accept transactions from the buyer + DUP ; CAR ; # we must receive (Left "buyer") + IF_LEFT + { PUSH string "buyer" ; COMPARE ; EQ ; + IF { DUP ; CDADAR ; # amount already versed by the buyer + DIP { AMOUNT } ; ADD ; # transaction + # The amount must not exceed Q * K + DUP ; + DIIP { DUP ; CDDAAR ; # Q + DIP { DUP ; CDDDAAR } ; MUL ; } ; # K + DIP { COMPARE ; GT ; # new amount > Q * K + IF { FAIL } { } } ; # abort or continue + # then we rebuild the globals + DIP { DUP ; CDADDR } ; PAIR ; # seller amount + PUSH nat 0 ; PAIR ; # delivery counter at 0 + DIP { CDDR } ; PAIR ; # parameters + # and return Unit + NIL operation ; PAIR } + { FAIL } } # (Left _) + { FAIL } } # (Right _) + { # After T + 24 + # test if the required payment is reached + DUP ; CDDAAR ; # Q + DIP { DUP ; CDDDAAR } ; MUL ; # K + DIP { DUP ; CDADAR } ; # amount already versed by the buyer + COMPARE ; NEQ ; + IF { # not reached, pay the seller + BALANCE ; + DIP { DUP ; CDDDDADR } ; # S + DIIP { CDR } ; + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS ; PAIR } + { # otherwise continue + DUP ; CDDADAR ; # T + PUSH int 86400 ; ADD ; + PUSH int 86400 ; ADD ; # two days in second + NOW ; COMPARE ; LT ; + IF { # Between T + 24 and T + 48 + # We accept only delivery notifications, from W + DUP ; CDDDDDR ; # W + SENDER ; + COMPARE ; NEQ ; + IF { FAIL } {} ; # fail if not the warehouse + DUP ; CAR ; # we must receive (Right amount) + IF_LEFT + { FAIL } # (Left _) + { # We increment the counter + DIP { DUP ; CDAAR } ; ADD ; + # And rebuild the globals in advance + DIP { DUP ; CDADR } ; PAIR ; + DIP { CDDR } ; PAIR ; + UNIT ; PAIR ; + # We test if enough have been delivered + DUP ; CDAAR ; + DIP { DUP ; CDDAAR } ; + COMPARE ; LT ; # counter < Q + IF { CDR ; NIL operation } # wait for more + { # Transfer all the money to the seller + BALANCE ; + DIP { DUP ; CDDDDADR } ; # S + DIIP { CDR } ; + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS } } ; + PAIR } + { # after T + 48, transfer everything to the buyer + BALANCE ; + DIP { DUP ; CDDDDAAR } ; # B + DIIP { CDR } ; + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS ; + PAIR} } } } } } }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("id", () => { + const src = `parameter string; +storage string; +code {CAR; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("infinite_loop", () => { + const src = `parameter unit; +storage unit; +code { DROP; PUSH bool True; LOOP {PUSH bool True}; UNIT; NIL operation; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("insertion_sort", () => { + const src = `parameter (list int) ; +storage (list int) ; +code { CAR ; + NIL int ; SWAP ; + ITER { SWAP; DIIP{NIL int} ; PUSH bool True ; + LOOP + { IF_CONS + { SWAP ; + DIP{DUP ; DIIP{DUP} ; DIP{CMPLT} ; SWAP} ; + SWAP ; + IF { DIP{SWAP ; DIP{CONS}} ; PUSH bool True} + { SWAP ; CONS ; PUSH bool False}} + { NIL int ; PUSH bool False}} ; + SWAP ; CONS ; SWAP ; + ITER {CONS}} ; + NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("int_publisher", () => { + const src = `# (signed hash of the string, string) +parameter (option (pair signature int)); +storage (pair key int); +code {DUP; DUP; CAR; + IF_NONE {PUSH mutez 1000000; # Fee pattern from July 26 + AMOUNT; CMPLE; IF {FAIL} {}; + # Provide the data + CDR; DIP {CDDR}} + {DUP; DIP{SWAP}; SWAP; CDAR; # Move key to the top + DIP {DUP; CAR; DIP {CDR; PACK ; BLAKE2B}}; # Arrange the new piece of data + CHECK_SIGNATURE; # Check to ensure the data is authentic + # Update data + IF {CDR; SWAP; DIP{DUP}; CDAR; PAIR} + # Revert the update. This could be replaced with FAIL + {DROP; DUP; CDR; DIP{CDDR}}}; + # Cleanup + DIP{DROP}; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("king_of_tez", () => { + const src = `parameter key_hash; +storage (pair timestamp (pair mutez key_hash)); +code { DUP; CDAR; + # If the time is more than 2 weeks, any amount makes you king + NOW; CMPGT; + # User becomes king of mutez + IF { CAR; AMOUNT; PAIR; NOW; PUSH int 604800; ADD; PAIR; + NIL operation } + # Check balance to see if user has paid enough to become the new king + { DUP; CDDAR; AMOUNT; CMPLT; + IF { FAIL } # user has not paid out + { CAR; DUP; + # New storage + DIP{ AMOUNT; PAIR; NOW; PUSH int 604800; ADD; PAIR }; + # Pay funds to old king + IMPLICIT_ACCOUNT; AMOUNT; UNIT; TRANSFER_TOKENS; + NIL operation; SWAP; CONS}}; + # Cleanup + PAIR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("list_of_transactions", () => { + const src = `parameter unit; +storage (list address); +code { CDR; DUP; + DIP {NIL operation}; PUSH bool True; # Setup loop + LOOP {IF_CONS { CONTRACT unit ; ASSERT_SOME ; PUSH mutez 1000000; UNIT; TRANSFER_TOKENS; # Make transfer + SWAP; DIP {CONS}; PUSH bool True} # Setup for next round of loop + { NIL address ; PUSH bool False}}; # Data to satisfy types and end loop + DROP; PAIR}; # Calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("queue", () => { + const src = `parameter (option string); +storage (pair (option string) (pair (pair nat nat) (map nat string))); +code { DUP; CAR; + # Retrieving an element + IF_NONE { CDDR; DUP; CAR; DIP{CDR; DUP}; DUP; + CAR; SWAP; DIP{GET}; # Check if an element is available + SWAP; + # Put NONE on stack and finish + IF_NONE { NONE string; DIP{PAIR}; PAIR} + # Reoption the element and remove the entry from the map + { SOME; + DIP{ DUP; DIP{ CAR; DIP{ NONE string }; UPDATE }; + # Increment the counter and cleanup + DUP; CAR; PUSH nat 1; ADD; DIP{ CDR }; PAIR; PAIR}; + PAIR }} + # Arrange the stack + { DIP{DUP; CDDAR; DIP{CDDDR}; DUP}; SWAP; CAR; + # Add the element to the map + DIP{ SOME; SWAP; CDR; DUP; DIP{UPDATE}; + # Increment the second number + PUSH nat 1; ADD}; + # Cleanup and finish + PAIR; PAIR; NONE string; PAIR }; + NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("reduce_map", () => { + const src = ` +parameter (pair (lambda int int) (list int)); +storage (list int); +code { DIP{NIL int}; + CAR; + DUP; + DIP{CAR; PAIR}; # Unpack data and setup accumulator + CDR; + ITER {PAIR; + DUP; CDAR; + DIP{ DUP; DIP{CDAR}; DUP; + CAR; DIP{CDDR; SWAP}; EXEC; CONS}; + PAIR}; + CDR; DIP{NIL int}; # First reduce + ITER {CONS}; # Reverse + NIL operation; PAIR} # Calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("reentrancy", () => { + const src = `parameter unit; +storage (pair address address); +code { CDR; DUP; CAR; + CONTRACT unit ; ASSERT_SOME ; PUSH mutez 5000000; UNIT; TRANSFER_TOKENS; + DIP {DUP; CDR; + CONTRACT unit ; ASSERT_SOME ; PUSH mutez 5000000; UNIT; TRANSFER_TOKENS}; + DIIP{NIL operation};DIP{CONS};CONS;PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("reservoir", () => { + const src = `parameter unit ; +storage + (pair + (pair (timestamp %T) (mutez %N)) + (pair (address %A) (address %B))) ; +code + { CDR ; DUP ; CAAR %T; # T + NOW ; COMPARE ; LE ; + IF { DUP ; CADR %N; # N + BALANCE ; + COMPARE ; LE ; + IF { NIL operation ; PAIR } + { DUP ; CDDR %B; # B + CONTRACT unit ; ASSERT_SOME ; + BALANCE ; UNIT ; + TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS ; + PAIR } } + { DUP ; CDAR %A; # A + CONTRACT unit ; ASSERT_SOME ; + BALANCE ; + UNIT ; + TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS ; + PAIR } }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("scrutable_reservoir", () => { + const src = `parameter unit ; +storage + (pair + string # S + (pair + timestamp # T + (pair + (pair mutez mutez) # P N + (pair + address # X + (pair address address))))) ; # A B +code + { DUP ; CDAR ; # S + PUSH string "open" ; + COMPARE ; NEQ ; + IF { FAIL } # on "success", "timeout" or a bad init value + { DUP ; CDDAR ; # T + NOW ; + COMPARE ; LT ; + IF { # Before timeout + # We compute (P + N) mutez + PUSH mutez 0 ; + DIP { DUP ; CDDDAAR } ; ADD ; # P + DIP { DUP ; CDDDADR } ; ADD ; # N + # We compare to the cumulated amount + BALANCE ; + COMPARE; LT ; + IF { # Not enough cash, we just accept the transaction + # and leave the global untouched + CDR ; NIL operation ; PAIR } + { # Enough cash, successful ending + # We update the global + CDDR ; PUSH string "success" ; PAIR ; + # We transfer the fee to the broker + DUP ; CDDAAR ; # P + DIP { DUP ; CDDDAR } ; # X + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS ; + # We transfer the rest to A + DIP { DUP ; CDDADR ; # N + DIP { DUP ; CDDDDAR } ; # A + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS } ; + NIL operation ; SWAP ; CONS ; SWAP ; CONS ; + PAIR } } + { # After timeout, we refund + # We update the global + CDDR ; PUSH string "timeout" ; PAIR ; + # We try to transfer the fee to the broker + BALANCE ; # available + DIP { DUP ; CDDAAR } ; # P + COMPARE ; LT ; # available < P + IF { BALANCE ; # available + DIP { DUP ; CDDDAR } ; # X + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS } + { DUP ; CDDAAR ; # P + DIP { DUP ; CDDDAR } ; # X + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS } ; + # We transfer the rest to B + DIP { BALANCE ; # available + DIP { DUP ; CDDDDDR } ; # B + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT ; TRANSFER_TOKENS } ; + NIL operation ; SWAP ; CONS ; SWAP ; CONS ; + PAIR } } }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("spawn_identities", () => { + const src = `parameter nat; +storage (list address); +code { DUP; + CAR; # Get the number + DIP{CDR; NIL operation}; # Put the accumulators on the stack + PUSH bool True; # Push true so we have a do while loop + LOOP { DUP; PUSH nat 0; CMPEQ; # Check if the number is 0 + IF { PUSH bool False} # End the loop + { PUSH nat 1; SWAP; SUB; ABS; # Subtract 1. The ABS is to make it back into a nat + PUSH string "init"; # Storage type + PUSH mutez 5000000; # Starting balance + NONE key_hash; + CREATE_CONTRACT + { parameter string ; + storage string ; + code { CAR ; NIL operation ; PAIR } } ; # Make the contract + SWAP ; DIP { SWAP ; DIP { CONS } } ; # emit the operation + SWAP ; DIP { SWAP ; DIP { CONS } } ; # add to the list + PUSH bool True}}; # Continue the loop + DROP; PAIR} # Calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); +}); diff --git a/packages/taquito-michel-codec/test/base58.spec.ts b/packages/taquito-michel-codec/test/base58.spec.ts deleted file mode 100644 index 5b04a0da54..0000000000 --- a/packages/taquito-michel-codec/test/base58.spec.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { decodeBase58, decodeBase58Check, encodeBase58, encodeBase58Check } from "../src/base58"; -import { hexBytes, parseHex } from "../src/utils"; - -const test: { - vec: string; - s: string; -}[] = [ - { - vec: "00eb15231dfceb60925886b67d065299925915aeb172c06647", - s: "1NS17iag9jJgTHD1VXjvLCEnZuQ3rJDE9L", - }, - { - vec: "00000000000000000000", - s: "1111111111", - }, - { - vec: "000111d38e5fc9071ffcd20b4a763cc9ae4f252bb4e48fd66a835e252ada93ff480d6dd43dc62a641155a5", - s: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", - } - ]; - -const testCheck: { - vec: string; - s: string; -}[] = [ - { - vec: "025a7991a6caedf5419d01100e4587f0d4d9fc84b4749a", - s: "KT1MruMYHugk6x7qWQGeFKoV4fuarhTfoV6t", - } - ]; - -describe("Base58", () => { - it("encode", () => { - for (const t of test) { - expect(encodeBase58(parseHex(t.vec))).toEqual(t.s); - } - }); - it("decode", () => { - for (const t of test) { - expect(decodeBase58(t.s)).toEqual(parseHex(t.vec)); - } - }); -}); - -describe("Base58Check", () => { - it("encode", () => { - for (const t of testCheck) { - expect(encodeBase58Check(parseHex(t.vec))).toEqual(t.s); - } - }); - it("decode", () => { - for (const t of testCheck) { - expect(decodeBase58Check(t.s)).toEqual(parseHex(t.vec)); - } - }); -}); diff --git a/packages/taquito-michel-codec/test/binary-data1.json b/packages/taquito-michel-codec/test/binary-data1.json deleted file mode 100644 index 07d5b3b8e0..0000000000 --- a/packages/taquito-michel-codec/test/binary-data1.json +++ /dev/null @@ -1,484 +0,0 @@ -[ - { - "data": { - "string": "KT1RvkwF4F7pz1gCoxkyZrG1RkrxQy3gmFTv%foo" - }, - "type": { - "prim": "address" - }, - "packed": "050a0000001901be41ee922ddd2cf33201e49d32da0afec571dce300666f6f" - }, - { - "data": { - "string": "KT1RvkwF4F7pz1gCoxkyZrG1RkrxQy3gmFTv%foo" - }, - "type": { - "prim": "string" - }, - "packed": "0501000000284b543152766b7746344637707a3167436f786b795a724731526b7278517933676d46547625666f6f" - }, - { - "data": { - "string": "NetXynUjJNZm7wi" - }, - "type": { - "prim": "chain_id" - }, - "packed": "050a00000004f3d48554" - }, - { - "data": { - "string": "edpkuBknW28nW72KG6RoHtYW7p12T6GKc7nAbwYX5m8Wd9sDVC9yav" - }, - "type": { - "prim": "key" - }, - "packed": "050a00000021004798d2cc98473d7e250c898885718afd2e4efbcb1a1595ab9730761ed830de0f" - }, - { - "data": { - "string": "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx" - }, - "type": { - "prim": "key_hash" - }, - "packed": "050a000000150002298c03ed7d454a101eb7022bc95f7e5f41ac78" - }, - { - "data": [ - { - "prim": "PUSH", - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ] - }, - { - "prim": "ADD" - } - ], - "type": { - "prim": "lambda", - "args": [ - { - "prim": "nat" - }, - { - "prim": "nat" - } - ] - }, - "packed": "0502000000080743036200010312" - }, - { - "data": [ - { - "prim": "PUSH", - "args": [ - { - "prim": "address" - }, - { - "string": "KT1RvkwF4F7pz1gCoxkyZrG1RkrxQy3gmFTv%foo" - } - ] - }, - { - "prim": "DROP" - } - ], - "type": { - "prim": "lambda", - "args": [ - { - "prim": "unit" - }, - { - "prim": "unit" - } - ] - }, - "packed": "0502000000240743036e0a0000001901be41ee922ddd2cf33201e49d32da0afec571dce300666f6f0320" - }, - { - "data": [ - { - "prim": "DROP" - }, - { - "prim": "SELF_ADDRESS" - } - ], - "type": { - "prim": "lambda", - "args": [ - { - "prim": "unit" - }, - { - "prim": "address" - } - ] - }, - "packed": "05020000000403200377" - }, - { - "data": [ - { - "prim": "CONTRACT", - "args": [ - { - "prim": "unit" - } - ] - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "type": { - "prim": "lambda", - "args": [ - { - "prim": "address" - }, - { - "prim": "unit" - } - ] - }, - "packed": "0502000000080555036c0320034f" - }, - { - "data": { - "string": "sigXeXB5JD5TaLb3xgTPKjgf9W45judiCmNP9UBdZBdmtHSGBxL1M8ZSUb6LpjGP2MdfUBTB4WHs5APnvyRV1LooU6QHJuDe" - }, - "type": { - "prim": "signature" - }, - "packed": "050a0000004049d47dba27bd76208b092f3e500f64818920c817491b8b9094f28c2c2b9c6721b257b8878ce47182122b8ea84aeacd84a8aa28cb1f1fe48a26355a7bca4b8306" - }, - { - "data": { - "string": "2019-09-26T10:59:51Z" - }, - "type": { - "prim": "timestamp" - }, - "packed": "0500a7e8e4d80b" - }, - { - "data": [ - { - "string": "KT1S4Kg5NCiQQ8dNtPuMXVAbJguhGLA4mGeP%foo" - }, - { - "string": "KT1L8JQ3cq6QB8FTfK33UGYjyzf4zeLCv6g8%bar" - }, - { - "string": "KT1D7uG1LBzie2oQ71cosLaArz46z6ppL6yn" - } - ], - "type": { - "prim": "list", - "args": [ - { - "prim": "address" - } - ] - }, - "packed": "0502000000570a0000001901bfb02c20a2edeef97c288c5857d3f5f68d6e19b800666f6f0a00000019017ea0041bb4a78e74b142521bf4d2c92585bd18e9006261720a000000160131c3d20727bd4ea9ae69e5f262245613dcdf83be00" - }, - { - "data": [ - { - "prim": "Elt", - "args": [ - { - "int": "123" - }, - { - "string": "2019-10-25T17:00:54Z" - } - ] - }, - { - "prim": "Elt", - "args": [ - { - "int": "456" - }, - { - "string": "2020-10-29T22:06:47Z" - } - ] - }, - { - "prim": "Elt", - "args": [ - { - "int": "789" - }, - { - "string": "2021-02-28T20:34:55Z" - } - ] - } - ], - "type": { - "prim": "map", - "args": [ - { - "prim": "nat" - }, - { - "prim": "timestamp" - } - ] - }, - "packed": "050200000021070400bb010086a999db0b070400880700b7f3d9f90b070400950c00aff9df830c" - }, - { - "data": { - "prim": "Some", - "args": [ - { - "string": "NetXynUjJNZm7wi" - } - ] - }, - "type": { - "prim": "option", - "args": [ - { - "prim": "chain_id" - } - ] - }, - "packed": "0505090a00000004f3d48554" - }, - { - "data": { - "prim": "None" - }, - "type": { - "prim": "option", - "args": [ - { - "prim": "chain_id" - } - ] - }, - "packed": "050306" - }, - { - "data": { - "prim": "Left", - "args": [ - { - "string": "NetXynUjJNZm7wi" - } - ] - }, - "type": { - "prim": "or", - "args": [ - { - "prim": "chain_id" - }, - { - "prim": "string" - } - ] - }, - "packed": "0505050a00000004f3d48554" - }, - { - "data": { - "prim": "Right", - "args": [ - { - "string": "foo" - } - ] - }, - "type": { - "prim": "or", - "args": [ - { - "prim": "chain_id" - }, - { - "prim": "string" - } - ] - }, - "packed": "0505080100000003666f6f" - }, - { - "data": { - "prim": "Pair", - "args": [ - { - "string": "NetXynUjJNZm7wi" - }, - { - "string": "foo" - } - ] - }, - "type": { - "prim": "pair", - "args": [ - { - "prim": "chain_id" - }, - { - "prim": "string" - } - ] - }, - "packed": "0507070a00000004f3d485540100000003666f6f" - }, - { - "proto": "PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA", - "data": { - "prim": "Pair", - "args": [ - { - "prim": "True" - }, - { - "string": "foo" - }, - { - "int": "-123" - } - ] - }, - "expect": { - "prim": "Pair", - "args": [ - { - "prim": "True" - }, - { - "prim": "Pair", - "args": [ - { - "string": "foo" - }, - { - "int": "-123" - } - ] - } - ] - }, - "type": { - "prim": "pair", - "args": [ - { - "prim": "bool" - }, - { - "prim": "string" - }, - { - "prim": "int" - } - ] - }, - "packed": "050707030a07070100000003666f6f00fb01" - }, - { - "data": [ - { - "prim": "Pair", - "args": [ - { - "string": "NetXynUjJNZm7wi" - }, - { - "string": "foo" - } - ] - } - ], - "type": { - "prim": "list", - "args": [ - { - "prim": "pair", - "args": [ - { - "prim": "chain_id" - }, - { - "prim": "string" - } - ] - } - ] - }, - "packed": "05020000001307070a00000004f3d485540100000003666f6f" - }, - { - "data": [ - { - "string": "one" - }, - { - "string": "two" - }, - { - "string": "" - } - ], - "type": { - "prim": "list", - "args": [ - { - "prim": "string" - } - ] - }, - "packed": "05020000001501000000036f6e65010000000374776f0100000000" - }, - { - "data": [ - [ - { - "string": "one" - } - ], - [ - { - "string": "two" - } - ], - [] - ], - "type": { - "prim": "list", - "args": [ - { - "prim": "list", - "args": [ - { - "prim": "string" - } - ] - } - ] - }, - "packed": "05020000001f020000000801000000036f6e650200000008010000000374776f0200000000" - } -] \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/binary-data2.json b/packages/taquito-michel-codec/test/binary-data2.json deleted file mode 100644 index c2d60c5e02..0000000000 --- a/packages/taquito-michel-codec/test/binary-data2.json +++ /dev/null @@ -1,5222 +0,0 @@ -[ - { - "data": { - "prim": "Unit" - }, - "packed": "05030b" - }, - { - "data": { - "int": "-64" - }, - "packed": "0500c001" - }, - { - "data": { - "int": "-63" - }, - "packed": "05007f" - }, - { - "data": { - "int": "0" - }, - "packed": "050000" - }, - { - "data": { - "int": "-2" - }, - "packed": "050042" - }, - { - "data": { - "int": "2" - }, - "packed": "050002" - }, - { - "data": { - "int": "63" - }, - "packed": "05003f" - }, - { - "data": { - "int": "64" - }, - "packed": "05008001" - }, - { - "data": { - "int": "65" - }, - "packed": "05008101" - }, - { - "data": { - "int": "-65" - }, - "packed": "0500c101" - }, - { - "data": { - "int": "127" - }, - "packed": "0500bf01" - }, - { - "data": { - "int": "128" - }, - "packed": "05008002" - }, - { - "data": { - "int": "129" - }, - "packed": "05008102" - }, - { - "data": { - "int": "-127" - }, - "packed": "0500ff01" - }, - { - "data": { - "int": "-1" - }, - "packed": "050041" - }, - { - "data": { - "int": "191" - }, - "packed": "0500bf02" - }, - { - "data": { - "int": "192" - }, - "packed": "05008003" - }, - { - "data": { - "int": "193" - }, - "packed": "05008103" - }, - { - "data": { - "int": "2028" - }, - "packed": "0500ac1f" - }, - { - "data": { - "int": "5000" - }, - "packed": "0500884e" - }, - { - "data": { - "int": "10000" - }, - "packed": "0500909c01" - }, - { - "data": { - "int": "20000" - }, - "packed": "0500a0b802" - }, - { - "data": { - "int": "-5000" - }, - "packed": "0500c84e" - }, - { - "data": { - "int": "-10000" - }, - "packed": "0500d09c01" - }, - { - "data": { - "int": "-20000" - }, - "packed": "0500e0b802" - }, - { - "data": { - "int": "1" - }, - "packed": "050001" - }, - { - "data": { - "int": "0" - }, - "packed": "050000" - }, - { - "data": { - "int": "1" - }, - "packed": "050001" - }, - { - "data": { - "int": "63" - }, - "packed": "05003f" - }, - { - "data": { - "int": "64" - }, - "packed": "05008001" - }, - { - "data": { - "int": "65" - }, - "packed": "05008101" - }, - { - "data": { - "int": "127" - }, - "packed": "0500bf01" - }, - { - "data": { - "int": "128" - }, - "packed": "05008002" - }, - { - "data": { - "int": "129" - }, - "packed": "05008102" - }, - { - "data": { - "int": "191" - }, - "packed": "0500bf02" - }, - { - "data": { - "int": "193" - }, - "packed": "05008103" - }, - { - "data": { - "int": "192" - }, - "packed": "05008003" - }, - { - "data": { - "string": "Hello World!" - }, - "packed": "05010000000c48656c6c6f20576f726c6421" - }, - { - "data": { - "string": "\n" - }, - "packed": "0501000000010a" - }, - { - "data": { - "string": "HODL: Hold On for Dear Life" - }, - "packed": "05010000001b484f444c3a20486f6c64204f6e20666f722044656172204c696665" - }, - { - "data": { - "bytes": "303030313233" - }, - "packed": "050a00000006303030313233" - }, - { - "data": { - "bytes": "4120726f736520627920616e79206f74686572206e616d6520776f756c6420736d656c6c206173207377656574" - }, - "packed": "050a0000002d4120726f736520627920616e79206f74686572206e616d6520776f756c6420736d656c6c206173207377656574" - }, - { - "data": { - "int": "0" - }, - "packed": "050000" - }, - { - "data": { - "int": "1" - }, - "packed": "050001" - }, - { - "data": { - "int": "63" - }, - "packed": "05003f" - }, - { - "data": { - "int": "65" - }, - "packed": "05008101" - }, - { - "data": { - "int": "127" - }, - "packed": "0500bf01" - }, - { - "data": { - "int": "128" - }, - "packed": "05008002" - }, - { - "data": { - "int": "129" - }, - "packed": "05008102" - }, - { - "data": { - "int": "191" - }, - "packed": "0500bf02" - }, - { - "data": { - "int": "192" - }, - "packed": "05008003" - }, - { - "data": { - "int": "193" - }, - "packed": "05008103" - }, - { - "data": { - "int": "64" - }, - "packed": "05008001" - }, - { - "data": { - "prim": "True" - }, - "packed": "05030a" - }, - { - "data": { - "prim": "False" - }, - "packed": "050303" - }, - { - "data": { - "bytes": "0002298c03ed7d454a101eb7022bc95f7e5f41ac78" - }, - "packed": "050a000000150002298c03ed7d454a101eb7022bc95f7e5f41ac78" - }, - { - "data": { - "bytes": "0100000000000000000000000000000000000000000000000000000000000000" - }, - "packed": "050a000000200100000000000000000000000000000000000000000000000000000000000000" - }, - { - "data": { - "bytes": "17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1" - }, - "packed": "050a0000006017f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1" - }, - { - "data": { - "bytes": "13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801" - }, - "packed": "050a000000c013e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801" - }, - { - "data": { - "int": "205027200" - }, - "packed": "050080dec3c301" - }, - { - "data": { - "int": "1552564995" - }, - "packed": "0500838cd2c80b" - }, - { - "data": { - "bytes": "00002addb327dbca405f07aeef318bba0ec2f714a755" - }, - "packed": "050a0000001600002addb327dbca405f07aeef318bba0ec2f714a755" - }, - { - "data": { - "bytes": "000092b72c0fa1064331a641131f572e7f2abb9a890b" - }, - "packed": "050a00000016000092b72c0fa1064331a641131f572e7f2abb9a890b" - }, - { - "data": { - "bytes": "000145b5e7d31bf6612e61ebfa7a6d929ce7800a55a4" - }, - "packed": "050a00000016000145b5e7d31bf6612e61ebfa7a6d929ce7800a55a4" - }, - { - "data": { - "bytes": "00025cfa532f50de3e12befc0ad21603835dd7698d35" - }, - "packed": "050a0000001600025cfa532f50de3e12befc0ad21603835dd7698d35" - }, - { - "data": { - "bytes": "019812c669d9e8ff1a61bf8c57e33b955f074d832600" - }, - "packed": "050a00000016019812c669d9e8ff1a61bf8c57e33b955f074d832600" - }, - { - "data": { - "bytes": "01122d038abd69be91b4b6803f2f098a088e259e7200" - }, - "packed": "050a0000001601122d038abd69be91b4b6803f2f098a088e259e7200" - }, - { - "data": { - "bytes": "00aad3f16293766169f7db278c5e0e9db4fb82ffe1cbcc35258059617dc0fec082" - }, - "packed": "050a0000002100aad3f16293766169f7db278c5e0e9db4fb82ffe1cbcc35258059617dc0fec082" - }, - { - "data": { - "bytes": "0103b524d0184276467c848ac13557fb0ff8bec5907960f72683f22af430503edfc1" - }, - "packed": "050a000000220103b524d0184276467c848ac13557fb0ff8bec5907960f72683f22af430503edfc1" - }, - { - "data": { - "bytes": "009a85e0f3f47852869ae667adc3b03a20fa9f324d046174dff6834e7d1fab0e8d" - }, - "packed": "050a00000021009a85e0f3f47852869ae667adc3b03a20fa9f324d046174dff6834e7d1fab0e8d" - }, - { - "data": { - "bytes": "01022c380cd1ff286a0a1a7c3aad6e891d237fa82e2a7cdeec08ccb55e90fdef995f" - }, - "packed": "050a0000002201022c380cd1ff286a0a1a7c3aad6e891d237fa82e2a7cdeec08ccb55e90fdef995f" - }, - { - "data": { - "bytes": "020368afbb09255d849813712108a4144237dc1fdd5bb74e68335f4c68c12c1e5723" - }, - "packed": "050a00000022020368afbb09255d849813712108a4144237dc1fdd5bb74e68335f4c68c12c1e5723" - }, - { - "data": { - "bytes": "0203dcb1916c475902f2b1083212e1b4e6f8ce1531710218c7d34340439f47040e7c" - }, - "packed": "050a000000220203dcb1916c475902f2b1083212e1b4e6f8ce1531710218c7d34340439f47040e7c" - }, - { - "data": { - "bytes": "458aa837" - }, - "packed": "050a00000004458aa837" - }, - { - "data": { - "prim": "None" - }, - "packed": "050306" - }, - { - "data": { - "args": [ - { - "int": "123" - } - ], - "prim": "Some" - }, - "packed": "05050900bb01" - }, - { - "data": { - "args": [ - { - "string": "Goodnight World!" - } - ], - "prim": "Some" - }, - "packed": "0505090100000010476f6f646e6967687420576f726c6421" - }, - { - "data": { - "bytes": "91ac1e7fd668854fc7a40feec4034e42c06c068cce10622c607fda232db34c8cf5d8da83098dd891cd4cb4299b3fa0352ae323ad99b24541e54b91888fdc8201" - }, - "packed": "050a0000004091ac1e7fd668854fc7a40feec4034e42c06c068cce10622c607fda232db34c8cf5d8da83098dd891cd4cb4299b3fa0352ae323ad99b24541e54b91888fdc8201" - }, - { - "data": { - "bytes": "80e4e72ffecf72953789625b1125e9f45f432c14e53a01ec68a1e1b77d60cfe96a97443733ba0f7f42db3a56d7a433df2b4fc0035c05ab92d062f33c5bab0244" - }, - "packed": "050a0000004080e4e72ffecf72953789625b1125e9f45f432c14e53a01ec68a1e1b77d60cfe96a97443733ba0f7f42db3a56d7a433df2b4fc0035c05ab92d062f33c5bab0244" - }, - { - "data": { - "bytes": "22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" - }, - "packed": "050a0000004022222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222" - }, - { - "data": { - "bytes": "da632d7f267673fab5a40562778a6890b6ada9665d53d7ff318e3399e032b3986588dadcf3bf3b549592f7b8ea1365273fbef5f4883c3430ed32e8ae24017be1" - }, - "packed": "050a00000040da632d7f267673fab5a40562778a6890b6ada9665d53d7ff318e3399e032b3986588dadcf3bf3b549592f7b8ea1365273fbef5f4883c3430ed32e8ae24017be1" - }, - { - "data": { - "args": [ - { - "string": "Error" - } - ], - "prim": "Left" - }, - "packed": "05050501000000054572726f72" - }, - { - "data": { - "args": [ - { - "prim": "True" - } - ], - "prim": "Right" - }, - "packed": "050508030a" - }, - { - "data": { - "args": [ - { - "string": "Good Night!" - }, - { - "int": "5" - } - ], - "prim": "Pair" - }, - "packed": "050707010000000b476f6f64204e69676874210005" - }, - { - "data": { - "args": [ - { - "int": "120" - }, - { - "args": [ - { - "int": "5" - }, - { - "string": "What is that?" - } - ], - "prim": "Pair" - } - ], - "prim": "Pair" - }, - "packed": "05070700b80107070005010000000d5768617420697320746861743f" - }, - { - "data": [ - { - "int": "1" - } - ], - "packed": "0502000000020001" - }, - { - "data": [], - "packed": "050200000000" - }, - { - "data": [ - { - "int": "1" - }, - { - "int": "2" - }, - { - "int": "3" - } - ], - "packed": "050200000006000100020003" - }, - { - "data": [], - "packed": "050200000000" - }, - { - "data": [ - { - "int": "1" - } - ], - "packed": "0502000000020001" - }, - { - "data": [ - { - "int": "0" - }, - { - "int": "10" - }, - { - "int": "24" - }, - { - "int": "35" - }, - { - "int": "100" - }, - { - "int": "1000" - } - ], - "packed": "05020000000e0000000a0018002300a40100a80f" - }, - { - "data": { - "bytes": "00002addb327dbca405f07aeef318bba0ec2f714a755" - }, - "packed": "050a0000001600002addb327dbca405f07aeef318bba0ec2f714a755" - }, - { - "data": { - "bytes": "000092b72c0fa1064331a641131f572e7f2abb9a890b" - }, - "packed": "050a00000016000092b72c0fa1064331a641131f572e7f2abb9a890b" - }, - { - "data": { - "bytes": "01122d038abd69be91b4b6803f2f098a088e259e7200" - }, - "packed": "050a0000001601122d038abd69be91b4b6803f2f098a088e259e7200" - }, - { - "data": { - "bytes": "01122d038abd69be91b4b6803f2f098a088e259e720061626163616261" - }, - "packed": "050a0000001d01122d038abd69be91b4b6803f2f098a088e259e720061626163616261" - }, - { - "data": [], - "packed": "050200000000" - }, - { - "data": { - "bytes": "01122d038abd69be91b4b6803f2f098a088e259e7200" - }, - "packed": "050a0000001601122d038abd69be91b4b6803f2f098a088e259e7200" - }, - { - "data": [ - { - "args": [ - { - "int": "0" - }, - { - "string": "Hello" - } - ], - "prim": "Elt" - }, - { - "args": [ - { - "int": "1" - }, - { - "string": "Goodbye" - } - ], - "prim": "Elt" - }, - { - "args": [ - { - "int": "2" - }, - { - "string": "Goodnight" - } - ], - "prim": "Elt" - } - ], - "packed": "05020000003007040000010000000548656c6c6f070400010100000007476f6f64627965070400020100000009476f6f646e69676874" - }, - { - "data": { - "bytes": "000092b72c0fa1064331a641131f572e7f2abb9a890b61" - }, - "packed": "050a00000017000092b72c0fa1064331a641131f572e7f2abb9a890b61" - }, - { - "data": [ - { - "args": [ - { - "string": "Lancaster" - }, - { - "args": [ - { - "int": "22323" - }, - { - "prim": "False" - } - ], - "prim": "Pair" - } - ], - "prim": "Elt" - }, - { - "args": [ - { - "string": "Stuart" - }, - { - "args": [ - { - "int": "-832988" - }, - { - "prim": "True" - } - ], - "prim": "Pair" - } - ], - "prim": "Elt" - }, - { - "args": [ - { - "string": "Tudor" - }, - { - "args": [ - { - "int": "123" - }, - { - "prim": "True" - } - ], - "prim": "Pair" - } - ], - "prim": "Elt" - } - ], - "packed": "050200000040070401000000094c616e636173746572070700b3dc02030307040100000006537475617274070700dcd765030a070401000000055475646f72070700bb01030a" - }, - { - "data": [], - "packed": "050200000000" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000080743035b00010320" - }, - { - "data": [ - { - "args": [ - { - "int": "1" - } - ], - "prim": "DUP" - }, - { - "prim": "SWAP" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000805210001034c0320" - }, - { - "data": [ - { - "prim": "UNIT" - }, - { - "prim": "UNIT" - }, - { - "args": [ - { - "int": "3" - } - ], - "prim": "DUP" - }, - { - "args": [ - { - "int": "3" - } - ], - "prim": "DROP" - } - ], - "packed": "05020000000c034f034f0521000305200003" - }, - { - "data": [ - { - "prim": "DUP" - }, - { - "prim": "SWAP" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000060321034c0320" - }, - { - "data": [ - { - "args": [ - { - "int": "0" - } - ], - "prim": "DIG" - } - ], - "packed": "05020000000405700000" - }, - { - "data": [ - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "int": "2" - } - ], - "prim": "DUP" - }, - { - "prim": "DROP" - }, - { - "prim": "DROP" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001607430362000107430362000105210002032003200320" - }, - { - "data": [ - { - "prim": "UNIT" - }, - { - "args": [ - { - "int": "2" - } - ], - "prim": "DUP" - }, - { - "args": [ - { - "int": "2" - } - ], - "prim": "DROP" - } - ], - "packed": "05020000000a034f0521000205200002" - }, - { - "data": [ - { - "args": [ - { - "int": "0" - } - ], - "prim": "DUG" - } - ], - "packed": "05020000000405710000" - }, - { - "data": [ - { - "prim": "UNIT" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000004034f0320" - }, - { - "data": [ - { - "prim": "UNIT" - }, - { - "args": [ - { - "int": "1" - } - ], - "prim": "DIG" - }, - { - "args": [ - [ - { - "prim": "DROP" - } - ] - ], - "prim": "DIP" - } - ], - "packed": "05020000000f034f05700001051f02000000020320" - }, - { - "data": [ - { - "prim": "UNIT" - }, - { - "args": [ - { - "int": "1" - } - ], - "prim": "DUG" - }, - { - "args": [ - [ - { - "prim": "DROP" - } - ] - ], - "prim": "DIP" - } - ], - "packed": "05020000000f034f05710001051f02000000020320" - }, - { - "data": [ - { - "prim": "UNIT", - "annots": [ - ":u" - ] - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a044f000000023a750320" - }, - { - "data": [ - { - "prim": "UNIT" - }, - { - "args": [ - { - "int": "1" - } - ], - "prim": "DROP" - } - ], - "packed": "050200000006034f05200001" - }, - { - "data": [ - { - "args": [ - { - "int": "0" - } - ], - "prim": "DROP" - } - ], - "packed": "05020000000405200000" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - } - ], - "prim": "NONE" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000006053e035b0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "SOME" - }, - { - "args": [ - [], - [ - { - "prim": "DROP" - } - ] - ], - "prim": "IF_NONE" - } - ], - "packed": "0502000000160743035b00010346072f020000000002000000020320" - }, - { - "data": [ - { - "prim": "UNIT" - }, - { - "prim": "UNIT" - }, - { - "prim": "UNIT" - }, - { - "args": [ - { - "int": "3" - } - ], - "prim": "DROP" - } - ], - "packed": "05020000000a034f034f034f05200003" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "SOME" - }, - [ - { - "args": [ - [], - [ - { - "prim": "DROP" - } - ] - ], - "prim": "IF_NONE" - } - ] - ], - "packed": "05020000001b0743035b00010346020000000e072f020000000002000000020320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "SOME", - "annots": [ - ":s" - ] - }, - [ - { - "args": [ - [], - [ - { - "prim": "DROP" - } - ] - ], - "prim": "IF_NONE" - } - ] - ], - "packed": "0502000000210743035b00010446000000023a73020000000e072f020000000002000000020320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "PAIR" - }, - { - "prim": "CAR" - } - ], - "packed": "05020000000a0743035b000103420316" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - } - ], - "prim": "NONE", - "annots": [ - ":n" - ] - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000c063e035b000000023a6e0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "PAIR", - "annots": [ - "%", - "%o" - ] - }, - { - "prim": "CAR" - } - ], - "packed": "0502000000120743035b00010442000000042520256f0316" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "PAIR", - "annots": [ - "%o" - ] - }, - { - "prim": "CAR" - } - ], - "packed": "0502000000100743035b0001044200000002256f0316" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "PAIR", - "annots": [ - "%o" - ] - }, - { - "prim": "CAR" - } - ], - "packed": "0502000000100743035b0001044200000002256f0316" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "PAIR", - "annots": [ - ":p", - "%l", - "%r" - ] - }, - { - "prim": "CAR" - } - ], - "packed": "0502000000160743035b00010442000000083a7020256c2025720316" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "PAIR", - "annots": [ - ":p" - ] - }, - { - "prim": "CAR" - } - ], - "packed": "0502000000100743035b00010442000000023a700316" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "PAIR", - "annots": [ - "%", - "%@" - ] - }, - { - "prim": "CAR" - } - ], - "packed": "0502000000120743035b0001044200000004252025400316" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "int": "2" - } - ], - "prim": "PAIR" - }, - { - "prim": "CAR" - } - ], - "packed": "05020000000c0743035b0001054200020316" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "PAIR", - "annots": [ - "%l", - "%r" - ] - }, - { - "prim": "CDR", - "annots": [ - "%r" - ] - } - ], - "packed": "0502000000190743035b0001044200000005256c2025720417000000022572" - }, - { - "data": [ - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "bool" - }, - { - "prim": "True" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "int": "4" - } - ], - "prim": "PAIR" - }, - { - "prim": "CAR" - } - ], - "packed": "05020000001807430362000107430359030a0743035b0001054200040316" - }, - { - "data": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "LEFT", - "annots": [ - ":lu", - "%l", - "%r" - ] - }, - { - "args": [ - [], - [ - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - } - ] - ], - "prim": "IF_LEFT" - } - ], - "packed": "0502000000250633036c000000093a6c7520256c202572072e0200000000020000000803200743035b0001" - }, - { - "data": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "RIGHT" - }, - [ - { - "args": [ - [ - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - } - ], - [] - ], - "prim": "IF_LEFT" - } - ] - ], - "packed": "05020000001d0544036c0200000014072e020000000803200743035b00010200000000" - }, - { - "data": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "LEFT", - "annots": [ - ":lu", - "%l" - ] - }, - { - "args": [ - [], - [ - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - } - ] - ], - "prim": "IF_LEFT" - } - ], - "packed": "0502000000220633036c000000063a6c7520256c072e0200000000020000000803200743035b0001" - }, - { - "data": [ - { - "prim": "DUP" - }, - { - "prim": "DUP" - }, - { - "prim": "DUP" - }, - { - "args": [ - { - "int": "4" - } - ], - "prim": "PAIR" - }, - { - "args": [ - { - "int": "3" - } - ], - "prim": "UNPAIR" - }, - { - "args": [ - [ - { - "args": [ - { - "int": "2" - } - ], - "prim": "DROP" - } - ] - ], - "prim": "DIP" - } - ], - "packed": "05020000001903210321032105420004057a0003051f020000000405200002" - }, - { - "data": [ - { - "prim": "DUP" - }, - { - "args": [ - { - "prim": "int" - } - ], - "prim": "NIL" - }, - { - "prim": "SWAP" - }, - { - "prim": "CONS" - }, - { - "prim": "SIZE" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000e0321053d035b034c031b03450320" - }, - { - "data": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "RIGHT", - "annots": [ - ":lu", - "%l" - ] - }, - [ - { - "args": [ - [ - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - } - ], - [] - ], - "prim": "IF_LEFT" - } - ] - ], - "packed": "0502000000270644036c000000063a6c7520256c0200000014072e020000000803200743035b00010200000000" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - } - ], - "prim": "NIL" - }, - { - "args": [ - [ - { - "prim": "DROP" - }, - { - "prim": "DROP" - } - ], - [] - ], - "prim": "IF_CONS" - } - ], - "packed": "050200000014053d035b072d0200000004032003200200000000" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - } - ], - "prim": "NIL", - "annots": [ - ":ni" - ] - }, - { - "args": [ - [ - { - "prim": "DROP" - }, - { - "prim": "DROP" - } - ], - [] - ], - "prim": "IF_CONS" - } - ], - "packed": "05020000001b063d035b000000033a6e69072d0200000004032003200200000000" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - } - ], - "prim": "EMPTY_SET" - }, - { - "args": [ - [ - { - "prim": "DROP" - } - ] - ], - "prim": "ITER" - } - ], - "packed": "05020000000d0524035b055202000000020320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - } - ], - "prim": "EMPTY_SET", - "annots": [ - ":si" - ] - }, - { - "args": [ - [ - { - "prim": "DROP" - } - ] - ], - "prim": "ITER" - } - ], - "packed": "0502000000140624035b000000033a7369055202000000020320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "EMPTY_MAP" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "MEM" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000100723035b036c0743035b000103390320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "EMPTY_MAP" - }, - { - "args": [ - [] - ], - "prim": "MAP" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000f0723035b036c053802000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "EMPTY_MAP", - "annots": [ - ":miu" - ] - }, - { - "args": [ - [] - ], - "prim": "MAP" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000170823035b036c000000043a6d6975053802000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "EMPTY_MAP" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "GET" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000100723035b036c0743035b000103290320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "EMPTY_MAP" - }, - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "NONE" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "GET_AND_UPDATE" - }, - { - "args": [ - { - "int": "2" - } - ], - "prim": "DROP" - } - ], - "packed": "0502000000160723035b036c053e036c0743035b0001038c05200002" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "EMPTY_MAP" - }, - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "NONE" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "UPDATE" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000140723035b036c053e036c0743035b000103500320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "EMPTY_BIG_MAP" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "GET" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000100772035b036c0743035b000103290320" - }, - { - "data": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "LEFT" - }, - { - "args": [ - [], - [ - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - } - ] - ], - "prim": "IF_LEFT" - } - ], - "packed": "0502000000180533036c072e0200000000020000000803200743035b0001" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "EMPTY_BIG_MAP", - "annots": [ - ":bmiu" - ] - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "GET" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000190872035b036c000000053a626d69750743035b000103290320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "PAIR" - }, - { - "args": [ - { - "int": "1" - } - ], - "prim": "GET" - } - ], - "packed": "05020000000c0743035b0001034205290001" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "PAIR", - "annots": [ - "%l", - "%r" - ] - }, - { - "prim": "CAR", - "annots": [ - "%l" - ] - } - ], - "packed": "0502000000190743035b0001044200000005256c202572041600000002256c" - }, - { - "data": [ - { - "prim": "DUP" - }, - { - "args": [ - { - "int": "0" - } - ], - "prim": "UPDATE" - } - ], - "packed": "050200000006032105500000" - }, - { - "data": [ - { - "args": [ - { - "prim": "bool" - }, - { - "prim": "True" - } - ], - "prim": "PUSH" - }, - { - "args": [ - [ - { - "args": [ - { - "prim": "bool" - }, - { - "prim": "False" - } - ], - "prim": "PUSH" - } - ] - ], - "prim": "LOOP" - } - ], - "packed": "05020000001307430359030a05340200000006074303590303" - }, - { - "data": [ - { - "args": [ - { - "prim": "bool" - }, - { - "prim": "True" - } - ], - "prim": "PUSH" - }, - { - "args": [ - [], - [] - ], - "prim": "IF" - } - ], - "packed": "05020000001207430359030a072c02000000000200000000" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "int" - }, - [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "DROP" - } - ] - ], - "prim": "LAMBDA" - }, - { - "prim": "SWAP" - }, - { - "prim": "EXEC" - } - ], - "packed": "05020000001f093100000011035b035b02000000080743035b0001032000000000034c0326" - }, - { - "data": [ - { - "args": [ - [] - ], - "prim": "DIP" - } - ], - "packed": "050200000007051f0200000000" - }, - { - "data": [ - { - "args": [ - { - "int": "1" - }, - [] - ], - "prim": "DIP" - } - ], - "packed": "050200000009071f00010200000000" - }, - { - "data": [ - { - "args": [ - { - "int": "0" - }, - [] - ], - "prim": "DIP" - } - ], - "packed": "050200000009071f00000200000000" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - } - ], - "prim": "CAST" - } - ], - "packed": "0502000000040557035b" - }, - { - "data": [ - { - "prim": "RENAME" - } - ], - "packed": "0502000000020358" - }, - { - "data": [ - { - "prim": "FAILWITH" - } - ], - "packed": "0502000000020327" - }, - { - "data": [ - { - "prim": "UNIT" - }, - { - "prim": "UNIT" - }, - { - "args": [ - { - "int": "3" - }, - [ - { - "prim": "UNIT" - }, - { - "prim": "DROP" - } - ] - ], - "prim": "DIP" - }, - { - "prim": "DROP" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015034f034f071f00030200000004034f032003200320" - }, - { - "data": [ - { - "prim": "DUP" - }, - { - "args": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "int" - } - ], - "prim": "pair" - }, - { - "prim": "int" - }, - [ - { - "prim": "CAR" - } - ] - ], - "prim": "LAMBDA" - }, - { - "prim": "SWAP" - }, - { - "prim": "APPLY" - }, - { - "prim": "SWAP" - }, - { - "prim": "EXEC" - } - ], - "packed": "050200000023032109310000000f0765035b035b035b0200000002031600000000034c0373034c0326" - }, - { - "data": [ - { - "prim": "UNIT" - }, - { - "prim": "UNIT" - }, - { - "args": [ - { - "int": "3" - }, - [ - { - "prim": "UNIT" - }, - { - "prim": "DROP" - } - ] - ], - "prim": "DIP" - }, - { - "prim": "DROP" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015034f034f071f00030200000004034f032003200320" - }, - { - "data": [ - { - "prim": "DUP" - }, - { - "prim": "PACK" - }, - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "UNPACK" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a0321030c050d036c0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "string" - } - ], - "prim": "NIL" - }, - { - "prim": "CONCAT" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000008053d0368031a0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "string" - }, - { - "string": "" - } - ], - "prim": "PUSH" - }, - { - "prim": "DUP" - }, - { - "prim": "CONCAT" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000f0743036801000000000321031a0320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "int" - } - ], - "prim": "or" - }, - { - "args": [ - { - "int": "1" - } - ], - "prim": "Left" - } - ], - "prim": "PUSH" - }, - { - "args": [ - [ - { - "args": [ - { - "prim": "int" - } - ], - "prim": "RIGHT" - } - ] - ], - "prim": "LOOP_LEFT" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001907430764035b035b05050001055302000000040544035b0320" - }, - { - "data": [ - { - "prim": "DUP" - }, - { - "prim": "PACK" - }, - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "UNPACK", - "annots": [ - ":uu" - ] - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000110321030c060d036c000000033a75750320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "ISNAT" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a0743035b000103560320" - }, - { - "data": [ - { - "prim": "LEVEL" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000403760320" - }, - { - "data": [ - { - "prim": "NOW" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000403400320" - }, - { - "data": [ - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "INT" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a07430362000103300320" - }, - { - "data": [ - { - "prim": "AMOUNT" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000403130320" - }, - { - "data": [ - { - "prim": "BALANCE" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000403150320" - }, - { - "data": [ - { - "prim": "SELF_ADDRESS" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000403770320" - }, - { - "data": [ - { - "prim": "TOTAL_VOTING_POWER" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000004037c0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "bytes" - }, - { - "bytes": "" - } - ], - "prim": "PUSH" - }, - { - "prim": "SHA256" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000d074303690a00000000030f0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "bytes" - }, - { - "bytes": "" - } - ], - "prim": "PUSH" - }, - { - "prim": "SHA512" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000d074303690a0000000003100320" - }, - { - "data": [ - { - "args": [ - { - "prim": "string" - }, - { - "string": "" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "nat" - }, - { - "int": "2" - } - ], - "prim": "PUSH" - }, - { - "prim": "SLICE" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000019074303680100000000074303620001074303620002036f0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "bytes" - }, - { - "bytes": "" - } - ], - "prim": "PUSH" - }, - { - "prim": "BLAKE2B" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000d074303690a00000000030e0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "bytes" - }, - { - "bytes": "" - } - ], - "prim": "PUSH" - }, - { - "prim": "SHA3" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000d074303690a00000000037e0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "bytes" - }, - { - "bytes": "" - } - ], - "prim": "PUSH" - }, - { - "prim": "KECCAK" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000d074303690a00000000037d0320" - }, - { - "data": [ - { - "prim": "SENDER" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000403480320" - }, - { - "data": [ - { - "prim": "SOURCE" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000403470320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "args": [ - { - "prim": "bls12_381_g1" - }, - { - "prim": "bls12_381_g2" - } - ], - "prim": "pair" - } - ], - "prim": "list" - }, - [] - ], - "prim": "PUSH" - }, - { - "prim": "PAIRING_CHECK" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000130743055f0765038003810200000000037f0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "int": "2" - } - ], - "prim": "DUP" - }, - { - "prim": "DROP" - }, - { - "prim": "DROP" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001607430362000107430362000105210002032003200320" - }, - { - "data": [ - { - "prim": "CHAIN_ID" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000403750320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "2" - } - ], - "prim": "PUSH" - }, - { - "prim": "ADD" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000100743035b00010743035b000203120320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "2" - } - ], - "prim": "PUSH" - }, - { - "prim": "MUL" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000100743035b00010743035b0002033a0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "2" - } - ], - "prim": "PUSH" - }, - { - "prim": "EDIV" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000100743035b00010743035b000203220320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "ABS" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a0743035b000103110320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "2" - } - ], - "prim": "PUSH" - }, - { - "prim": "SUB" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000100743035b00010743035b0002034b0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "nat" - }, - { - "int": "2" - } - ], - "prim": "PUSH" - }, - { - "prim": "LSR" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001007430362000107430362000203360320" - }, - { - "data": [ - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "nat" - }, - { - "int": "2" - } - ], - "prim": "PUSH" - }, - { - "prim": "LSL" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001007430362000107430362000203350320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "NEG", - "annots": [ - "@kek" - ] - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000120743035b0001043b00000004406b656b0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "nat" - }, - { - "int": "2" - } - ], - "prim": "PUSH" - }, - { - "prim": "OR" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001007430362000107430362000203410320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "NEQ" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a0743035b0001033c0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "nat" - }, - { - "int": "2" - } - ], - "prim": "PUSH" - }, - { - "prim": "XOR" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001007430362000107430362000203510320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "EQ" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a0743035b000103250320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "NOT" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a0743035b0001033f0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "nat" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "nat" - }, - { - "int": "2" - } - ], - "prim": "PUSH" - }, - { - "prim": "COMPARE" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001007430362000107430362000203190320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "LT" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a0743035b000103370320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "GT" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a0743035b0001032a0320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "LE" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a0743035b000103320320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "prim": "GE" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000000a0743035b000103280320" - }, - { - "data": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "CONTRACT" - }, - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - } - ], - "packed": "05020000000c0555036c03200743036c030b" - }, - { - "data": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "CONTRACT", - "annots": [ - "%entrypnt" - ] - }, - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - } - ], - "packed": "0502000000190655036c0000000925656e747279706e7403200743036c030b" - }, - { - "data": [ - { - "args": [ - { - "prim": "mutez" - }, - { - "int": "5" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - }, - { - "prim": "TRANSFER_TOKENS" - }, - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - } - ], - "packed": "0502000000160743036a00050743036c030b034d03200743036c030b" - }, - { - "data": [ - { - "prim": "ADDRESS" - }, - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - } - ], - "packed": "05020000000a035403200743036c030b" - }, - { - "data": [ - { - "prim": "SOME" - }, - { - "prim": "SET_DELEGATE" - }, - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - } - ], - "packed": "05020000000c0346034e03200743036c030b" - }, - { - "data": [ - { - "prim": "VOTING_POWER" - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "packed": "050200000006037b0320034f" - }, - { - "data": [ - { - "prim": "SOME" - }, - { - "args": [ - [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "mutez" - }, - { - "int": "5" - } - ], - "prim": "PUSH" - } - ] - ], - "prim": "DIP" - }, - { - "args": [ - [ - { - "args": [ - { - "prim": "int", - "annots": [ - ":p", - "%root" - ] - } - ], - "prim": "parameter" - }, - { - "args": [ - { - "prim": "int", - "annots": [ - ":s" - ] - } - ], - "prim": "storage" - }, - { - "args": [ - [ - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "10" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "operation" - } - ], - "prim": "NIL" - }, - { - "prim": "PAIR" - } - ] - ], - "prim": "code" - } - ] - ], - "prim": "CREATE_CONTRACT" - }, - { - "prim": "DROP" - }, - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - } - ], - "packed": "0502000000550346051f020000000c0743035b00010743036a0005051d020000002f0500045b000000083a702025726f6f740501045b000000023a730502020000000e03200743035b000a053d036d0342032003200743036c030b" - }, - { - "data": [ - { - "prim": "SOME" - }, - { - "args": [ - [ - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "mutez" - }, - { - "int": "5" - } - ], - "prim": "PUSH" - } - ] - ], - "prim": "DIP" - }, - { - "args": [ - [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "storage" - }, - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "parameter" - }, - { - "args": [ - [ - { - "prim": "DROP" - }, - { - "prim": "UNIT" - }, - { - "args": [ - { - "prim": "operation" - } - ], - "prim": "NIL" - }, - { - "prim": "PAIR" - } - ] - ], - "prim": "code" - } - ] - ], - "prim": "CREATE_CONTRACT" - }, - { - "prim": "DROP" - }, - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - } - ], - "packed": "05020000003f0346051f020000000c0743036c030b0743036a0005051d02000000190501036c0500036c0502020000000a0320034f053d036d0342032003200743036c030b" - }, - { - "data": [ - { - "prim": "SOME" - }, - { - "args": [ - [ - { - "args": [ - { - "prim": "int" - }, - { - "int": "1" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "mutez" - }, - { - "int": "5" - } - ], - "prim": "PUSH" - } - ] - ], - "prim": "DIP" - }, - { - "args": [ - [ - { - "args": [ - { - "prim": "int", - "annots": [ - ":p" - ] - } - ], - "prim": "parameter" - }, - { - "args": [ - { - "prim": "int", - "annots": [ - ":s" - ] - } - ], - "prim": "storage" - }, - { - "args": [ - [ - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "int" - }, - { - "int": "10" - } - ], - "prim": "PUSH" - }, - { - "args": [ - { - "prim": "operation" - } - ], - "prim": "NIL" - }, - { - "prim": "PAIR" - } - ] - ], - "prim": "code" - } - ] - ], - "prim": "CREATE_CONTRACT" - }, - { - "prim": "DROP" - }, - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - } - ], - "packed": "05020000004f0346051f020000000c0743035b00010743036a0005051d02000000290500045b000000023a700501045b000000023a730502020000000e03200743035b000a053d036d0342032003200743036c030b" - }, - { - "data": [ - { - "prim": "IMPLICIT_ACCOUNT" - }, - { - "prim": "DROP" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "Unit" - } - ], - "prim": "PUSH" - } - ], - "packed": "05020000000a031e03200743036c030b" - }, - { - "data": [ - { - "prim": "HASH_KEY" - } - ], - "packed": "050200000002032b" - }, - { - "data": [ - { - "prim": "NEVER" - } - ], - "packed": "0502000000020379" - }, - { - "data": [ - { - "args": [ - [ - { - "args": [ - { - "prim": "bytes" - }, - { - "bytes": "" - } - ], - "prim": "PUSH" - } - ] - ], - "prim": "DIP" - }, - { - "prim": "DUP" - }, - { - "args": [ - [ - { - "prim": "CAR" - } - ] - ], - "prim": "DIP" - }, - { - "prim": "CDR" - }, - { - "prim": "CHECK_SIGNATURE" - } - ], - "packed": "05020000001f051f0200000009074303690a000000000321051f0200000002031603170318" - }, - { - "data": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "int" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009035b035b0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "int", - "annots": [ - ":i" - ] - }, - { - "prim": "int", - "annots": [ - ":i" - ] - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000021093100000015045b000000023a69045b000000023a690200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "mutez" - }, - { - "prim": "mutez" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009036a036a0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "key_hash" - }, - { - "prim": "key_hash" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009035d035d0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "bytes" - }, - { - "prim": "bytes" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009036903690200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "bls12_381_fr" - }, - { - "prim": "bls12_381_fr" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009038203820200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "string" - }, - { - "prim": "string" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009036803680200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "bls12_381_g1" - }, - { - "prim": "bls12_381_g1" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009038003800200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "bls12_381_g2" - }, - { - "prim": "bls12_381_g2" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009038103810200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "address" - }, - { - "prim": "address" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009036e036e0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "unit" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009036c036c0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "timestamp" - }, - { - "prim": "timestamp" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009036b036b0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "bool" - }, - { - "prim": "bool" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009035903590200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "key" - }, - { - "prim": "key" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009035c035c0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "signature" - }, - { - "prim": "signature" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009036703670200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "chain_id" - }, - { - "prim": "chain_id" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009037403740200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "option" - }, - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "option" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001909310000000d0563036c0563036c0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "int" - } - ], - "prim": "set", - "annots": [ - ":s" - ] - }, - { - "args": [ - { - "prim": "int" - } - ], - "prim": "set", - "annots": [ - ":s" - ] - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000250931000000190666035b000000023a730666035b000000023a730200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "operation" - }, - { - "prim": "operation" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009036d036d0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "never" - }, - { - "prim": "never" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009037803780200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "int" - } - ], - "prim": "set" - }, - { - "args": [ - { - "prim": "int" - } - ], - "prim": "set" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001909310000000d0566035b0566035b0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "contract" - }, - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "contract" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001909310000000d055a036c055a036c0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "prim": "nat" - }, - { - "prim": "nat" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000015093100000009036203620200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "int" - } - ], - "prim": "or" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "int" - } - ], - "prim": "or" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001d0931000000110764036c035b0764036c035b0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "int", - "annots": [ - "%x" - ] - }, - { - "prim": "int", - "annots": [ - "%y" - ] - } - ], - "prim": "pair", - "annots": [ - ":point" - ] - }, - { - "args": [ - { - "prim": "int", - "annots": [ - "%x" - ] - }, - { - "prim": "int", - "annots": [ - "%y" - ] - } - ], - "prim": "pair", - "annots": [ - ":point" - ] - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000004909310000003d0865045b000000022578045b000000022579000000063a706f696e740865045b000000022578045b000000022579000000063a706f696e740200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "int" - } - ], - "prim": "pair" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "int" - } - ], - "prim": "pair" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001d0931000000110765036c035b0765036c035b0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "int", - "annots": [ - ":i" - ] - } - ], - "prim": "set", - "annots": [ - ":s" - ] - }, - { - "args": [ - { - "prim": "int", - "annots": [ - ":i" - ] - } - ], - "prim": "set", - "annots": [ - ":s" - ] - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000310931000000250666045b000000023a69000000023a730666045b000000023a69000000023a730200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "args": [ - { - "prim": "int", - "annots": [ - "%x" - ] - }, - { - "prim": "int", - "annots": [ - "%y" - ] - } - ], - "prim": "pair", - "annots": [ - ":point" - ] - }, - { - "prim": "int", - "annots": [ - "%z" - ] - } - ], - "prim": "pair", - "annots": [ - ":point3d" - ] - }, - { - "args": [ - { - "args": [ - { - "prim": "int", - "annots": [ - "%x" - ] - }, - { - "prim": "int", - "annots": [ - "%y" - ] - } - ], - "prim": "pair", - "annots": [ - ":point" - ] - }, - { - "prim": "int", - "annots": [ - "%z" - ] - } - ], - "prim": "pair", - "annots": [ - ":point3d" - ] - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000007509310000006908650865045b000000022578045b000000022579000000063a706f696e74045b00000002257a000000083a706f696e74336408650865045b000000022578045b000000022579000000063a706f696e74045b00000002257a000000083a706f696e7433640200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "int" - } - ], - "prim": "lambda" - }, - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "int" - } - ], - "prim": "lambda" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001d093100000011075e036c035b075e036c035b0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "unit", - "annots": [ - ":u", - "%l" - ] - }, - { - "prim": "int", - "annots": [ - ":i", - "%r" - ] - } - ], - "prim": "or" - }, - { - "args": [ - { - "prim": "unit", - "annots": [ - ":u", - "%l" - ] - }, - { - "prim": "int", - "annots": [ - ":i", - "%r" - ] - } - ], - "prim": "or" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "0502000000410931000000350764046c000000053a7520256c045b000000053a692025720764046c000000053a7520256c045b000000053a692025720200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "unit", - "annots": [ - ":n" - ] - }, - { - "prim": "int", - "annots": [ - ":t" - ] - } - ], - "prim": "lambda", - "annots": [ - ":l" - ] - }, - { - "args": [ - { - "prim": "unit", - "annots": [ - ":n" - ] - }, - { - "prim": "int", - "annots": [ - ":t" - ] - } - ], - "prim": "lambda", - "annots": [ - ":l" - ] - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "050200000041093100000035085e046c000000023a6e045b000000023a74000000023a6c085e046c000000023a6e045b000000023a74000000023a6c0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "map" - }, - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "map" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001d0931000000110760035b036c0760035b036c0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "big_map" - }, - { - "args": [ - { - "prim": "int" - }, - { - "prim": "unit" - } - ], - "prim": "big_map" - }, - [] - ], - "prim": "LAMBDA" - }, - { - "prim": "DROP" - } - ], - "packed": "05020000001d0931000000110761035b036c0761035b036c0200000000000000000320" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "args": [ - { - "prim": "unit" - }, - { - "prim": "unit" - } - ], - "prim": "pair" - } - ], - "prim": "set" - } - ], - "prim": "LEFT" - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "packed": "05020000000e053305660765036c036c0320034f" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "args": [ - { - "prim": "nat" - }, - { - "prim": "nat" - } - ], - "prim": "pair" - } - ], - "prim": "set" - } - ], - "prim": "LEFT" - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "packed": "05020000000e053305660765036203620320034f" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "args": [ - { - "prim": "nat" - }, - { - "prim": "nat" - } - ], - "prim": "or" - } - ], - "prim": "set" - } - ], - "prim": "LEFT" - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "packed": "05020000000e053305660764036203620320034f" - }, - { - "data": [ - { - "args": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "option" - } - ], - "prim": "LEFT" - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "packed": "05020000000a05330563036c0320034f" - }, - { - "data": [ - { - "args": [ - { - "prim": "signature" - } - ], - "prim": "LEFT" - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "packed": "050200000008053303670320034f" - }, - { - "data": [ - { - "args": [ - { - "prim": "chain_id" - } - ], - "prim": "LEFT" - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "packed": "050200000008053303740320034f" - }, - { - "data": [ - { - "args": [ - { - "prim": "key" - } - ], - "prim": "LEFT" - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "packed": "0502000000080533035c0320034f" - }, - { - "data": [ - { - "args": [ - { - "prim": "unit" - } - ], - "prim": "LEFT" - }, - { - "prim": "DROP" - }, - { - "prim": "UNIT" - } - ], - "packed": "0502000000080533036c0320034f" - } -] \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/binary.spec.ts b/packages/taquito-michel-codec/test/binary.spec.ts deleted file mode 100644 index b97796dd42..0000000000 --- a/packages/taquito-michel-codec/test/binary.spec.ts +++ /dev/null @@ -1,40 +0,0 @@ -import fs from "fs"; -import path from "path"; - -import { MichelsonData, MichelsonType, ProtocolID } from "../src/michelson-types"; -import { packData, unpackData } from "../src/binary"; -import { parseHex } from "../src/utils"; - -interface TypedTestData { - type?: MichelsonType; - data: MichelsonData; - expect?: MichelsonData; - packed: string; - proto?: ProtocolID; -} - -describe("Binary", () => { - const files = [ - "binary-data1.json", - "binary-data2.json", - ]; - const paths = files.map(f => path.resolve(__dirname, f)); - const src: TypedTestData[] = [].concat(...paths.map(p => JSON.parse(fs.readFileSync(p).toString()))); - - describe("pack", () => { - for (const s of src) { - it(JSON.stringify(s.data), () => { - const p = packData(s.data, s.type); - expect(p).toEqual(parseHex(s.packed)); - }); - } - }); - describe("unpack", () => { - for (const s of src) { - it(JSON.stringify(s.data), () => { - const ex = unpackData(parseHex(s.packed), s.type); - expect(ex).toEqual(s.expect || s.data); - }); - } - }); -}); \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contract-macros.spec.ts b/packages/taquito-michel-codec/test/contract-macros.spec.ts new file mode 100644 index 0000000000..5b19cf336d --- /dev/null +++ b/packages/taquito-michel-codec/test/contract-macros.spec.ts @@ -0,0 +1,565 @@ +import { Contract } from "../src/michelson-contract"; +import { MichelsonError } from "../src/utils"; +import { formatError } from "../src/formatters"; + +describe("Contract macros", () => { + it("assert", () => { + const src = `parameter bool; + storage unit; + code {CAR; ASSERT; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_cmpeq", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPEQ; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_cmpge", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPGE; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_cmpgt", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPGT; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_cmple", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPLE; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_cmplt", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPLT; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_cmpneq", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPNEQ; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_eq", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_EQ; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_ge", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_GE; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_gt", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_GT; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_le", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_LE; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_lt", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_LT; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("assert_neq", () => { + const src = `parameter (pair int int); + storage unit; + code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_NEQ; UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("big_map_get_add", () => { + const src = `parameter (pair (pair %set_pair int (option int)) (pair %check_pair int (option int))) ; + storage (pair (big_map int int) unit) ; + code { DUP ; DIP { CDAR } ; + DUP ; DIP { CADR; DUP ; CAR ; DIP { CDR } ; UPDATE ; DUP } ; + CADR ; DUP ; CDR ; DIP { CAR ; GET } ; + IF_SOME { SWAP ; IF_SOME { ASSERT_CMPEQ } {FAIL}} { ASSERT_NONE } ; + UNIT ; SWAP ; PAIR ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("big_map_mem", () => { + const src = `# Fails if the boolean does not match the membership criteria + parameter (pair int bool) ; + storage (pair (big_map int unit) unit) ; + code { DUP ; DUP ; CADR ; DIP { CAAR ; DIP { CDAR ; DUP } ; MEM } ; + ASSERT_CMPEQ ; UNIT ; SWAP ; PAIR ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("build_list", () => { + const src = `parameter nat; + storage (list nat); + code { CAR @counter; NIL @acc nat; SWAP; DUP @cmp_num; PUSH nat 0; CMPNEQ; + LOOP { DUP; DIP {SWAP}; CONS @acc; SWAP; PUSH nat 1; SWAP; SUB @counter; + DUP; DIP{ABS}; PUSH int 0; CMPNEQ}; + CONS; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("compare", () => { + const src = `parameter (pair mutez mutez); + storage (list bool); + code {CAR; DUP; DUP; DUP; DUP; DIIIIIP {NIL bool}; + DIIIIP {DUP; CAR; DIP {CDR}; COMPARE; LE; CONS}; + DIIIP {DUP; CAR; DIP {CDR}; COMPARE; GE; CONS}; + DIIP{DUP; CAR; DIP {CDR}; COMPARE; LT; CONS}; + DIP {DUP; CAR; DIP {CDR}; COMPARE; GT; CONS}; + DUP; CAR; DIP {CDR}; COMPARE; EQ; CONS; + NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("compare_bytes", () => { + const src = `parameter (pair bytes bytes); + storage (list bool); + code {CAR; DUP; DUP; DUP; DUP; DIIIIIP {NIL bool}; + DIIIIP {DUP; CAR; DIP {CDR}; COMPARE; LE; CONS}; + DIIIP {DUP; CAR; DIP {CDR}; COMPARE; GE; CONS}; + DIIP{DUP; CAR; DIP {CDR}; COMPARE; LT; CONS}; + DIP {DUP; CAR; DIP {CDR}; COMPARE; GT; CONS}; + DUP; CAR; DIP {CDR}; COMPARE; EQ; CONS; + NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("fail", () => { + const src = `parameter unit; + storage unit; + code + { # This contract will never accept a incoming transaction + FAIL};`; + + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("guestbook", () => { + const src = `parameter string; + storage (map address (option string)); + + code { UNPAIR @message @guestbook; SWAP; + DUP; SENDER; GET @previous_message; + ASSERT_SOME; + ASSERT_NONE; + SWAP; SOME; SOME; SENDER; UPDATE; + NIL operation; + PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("macro_annotations", () => { + const src = `parameter unit; + storage (pair (unit %truc) unit); + code { DROP; UNIT ; UNIT ; PAIR %truc ; UNIT ; + DUUP @new_storage ; + DIP { DROP ; DROP } ; + NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("map_caddaadr", () => { + const src = `parameter unit; + storage (pair (pair nat (pair nat (pair (pair (pair (nat %p) (mutez %value)) nat) nat))) nat); + code { MAP_CDADDAADR @new_storage %value { PUSH mutez 1000000 ; ADD } ; + NIL operation ; SWAP; SET_CAR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("max_in_list", () => { + const src = `parameter (list int); + storage (option int); + code {CAR; DIP{NONE int}; + ITER {SWAP; + IF_NONE {SOME} + {DIP {DUP}; DUP; DIP{SWAP}; + CMPLE; IF {DROP} {DIP {DROP}}; + SOME}}; + NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("min", () => { + const src = ` + parameter (pair int int); + storage int; + code { CAR; # Ignore the storage + DUP; # Duplicate so we can get both the numbers passed as parameters + DUP; # Second dup so we can access the lesser number + CAR; DIP{CDR}; # Unpack the numbers on top of the stack + CMPLT; # Compare the two numbers, placing a boolean on top of the stack + IF {CAR} {CDR}; # Access the first number if the boolean was true + NIL operation; # Return no op + PAIR} # Pair the numbers satisfying the calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("pair_macro", () => { + const src = `parameter unit; + storage unit; + code { UNIT; UNIT; UNIT; UNIT; UNIT; + PAPAPAPAIR @name %x1 %x2 %x3 %x4 %x5; + CDDDAR %x4 @fourth; + DROP; CDR; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("set_caddaadr", () => { + const src = `parameter mutez; + storage (pair (pair nat (pair nat (pair (pair (pair (nat %p) (mutez %value)) nat) nat))) nat); + code { DUP ; CAR ; SWAP ; CDR ; + SET_CADDAADR @toplevel_pair_name %value ; + NIL operation ; PAIR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("take_my_money", () => { + const src = `parameter key_hash; + storage unit; + code { CAR; IMPLICIT_ACCOUNT; # Create an account for the recipient of the funds + DIP{UNIT}; # Push a value of the storage type below the contract + PUSH mutez 1000000; # The person can have a ꜩ + UNIT; # Push the contract's argument type + TRANSFER_TOKENS; # Run the transfer + NIL operation; SWAP; CONS; + PAIR }; # Cleanup and put the return values`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("unpair_macro", () => { + const src = `parameter (unit :param_unit); + storage (unit :u1); + code { DROP ; + UNIT :u4 @a4; UNIT :u3 @a3; UNIT :u2 @a2; UNIT :u1 @a1; + PAIR; UNPAIR @x1 @x2; + PPAIPAIR @p1 %x1 %x2 %x3 %x4; UNPPAIPAIR %x1 % %x3 %x4 @uno @due @tre @quattro; + PAPAPAIR @p2 %x1 %x2 %x3 %x4; UNPAPAPAIR @un @deux @trois @quatre; + PAPPAIIR @p3 %x1 %x2 %x3 %x4; UNPAPPAIIR @one @two @three @four; + DIP { DROP; DROP; DROP }; NIL operation; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + // Some additional tests --eugene + it("UNPAPAPAIR", () => { + const src = `parameter unit ; +storage + (pair (pair (pair (nat %f0) (string %f1)) (pair (int %f2) (mutez %f3))) + (pair (pair (string %f4) (int %f5)) (pair (nat %f6) (list %f7 int)))) ; +code + { + CDR ; + DUP; + UNPAPAPAIR @v0 @v1 @% @%; + SWAP; + PAIR @v2 %@ %@; + SWAP; + PAIR @v3 %@ %@; + SWAP; + PAIR @v4 %@ %@; + CAST (pair (list %f7 int) (pair %v3 (nat %f6) (pair %v2 (pair %v1 (string %f4) (int %f5)) (pair %v0 (pair (nat %f0) (string %f1)) (pair (int %f2) (mutez %f3)))))); + DROP; + NIL operation ; + PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("UNPAPAPAIR", () => { + const src = `parameter unit ; +storage + (pair (pair (pair (nat %f0) (string %f1)) (pair (int %f2) (mutez %f3))) + (pair (pair (string %f4) (int %f5)) (pair (nat %f6) (list %f7 int)))) ; +code + { + CDR ; + DUP; + UNPPPAIIPAIR @v0 @v1 @v2 @v3 @v4; + SWAP; + PAIR @v2 %@ %@; + SWAP; + PAIR @v3 %@ %@; + SWAP; + PAIR @v4 %@ %@; + SWAP; + PAIR @v5 %@ %@; + CAST (pair (pair (nat %f6) (list %f7 int)) (pair %v4 (pair (string %f4) (int %f5)) (pair %v3 (pair (int %f2) (mutez %f3)) (pair %v2 (string %v1) (nat %v0))))); + DROP; + NIL operation ; + PAIR + } +`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("PPPAIPAIPAPAIR", () => { + const src = `parameter unit ; +storage + (pair (pair + (pair (nat %f0) (string %f1)) + (pair (int %f2) (mutez %f3))) + (pair + (int %f4) + (pair (nat %f5) (list %f6 int)))) ; +code + { + CDR; + DROP; + NIL @f6 int; + PUSH @f5 nat 0; + PUSH @f4 int 0; + PUSH @f3 mutez 0; + PUSH @f2 int 0; + PUSH @f1 string ""; + PUSH @f0 nat 0; + PPPAIPAIPAPAIR %f0 %@ %f2 %@ %f4 %@ @stor; + NIL operation ; + PAIR + } +`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); +}); + diff --git a/packages/taquito-michel-codec/test/contracts_007.spec.ts b/packages/taquito-michel-codec/test/contracts_007.spec.ts deleted file mode 100644 index d7c2b92e37..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007.spec.ts +++ /dev/null @@ -1,234 +0,0 @@ -import fs from "fs"; -import path from "path"; -import { inspect } from "util"; -import { Contract, ContractOptions } from "../src/michelson-contract"; -import { Protocol } from "../src/michelson-types"; -import { MichelsonError } from "../src/utils"; - -const contracts: { - [group: string]: string[]; -} = { - "mini_scenarios": [ - "xcat.tz", - "vote_for_delegate.tz", - "parameterized_multisig.tz", - "hardlimit.tz", - "authentication.tz", - "lockup.tz", - "replay.tz", - "create_contract.tz", - "reveal_signed_preimage.tz", - "xcat_dapp.tz", - "default_account.tz", - "multiple_en2.tz", - "weather_insurance.tz", - "big_map_entrypoints.tz", - "multiple_entrypoints_counter.tz", - "big_map_magic.tz", - "create_contract_simple.tz", - ], - "ill_typed": [ - "multiple_code_field.tz", - "set_update_non_comparable.tz", - "pack_operation.tz", - "multiple_storage_field.tz", - "missing_only_storage_field.tz", - "contract_annotation_default.tz", - "multiple_storage_and_code_fields.tz", - "invalid_self_entrypoint.tz", - "chain_id_arity.tz", - "missing_only_parameter_field.tz", - "big_dip.tz", - "missing_only_code_field.tz", - "big_map_arity.tz", - "big_drop.tz", - "pack_big_map.tz", - "missing_parameter_and_storage_fields.tz", - "multiple_parameter_field.tz", - ], - "macros": [ - "assert_neq.tz", - "assert_cmpge.tz", - "compare.tz", - "take_my_money.tz", - "assert_ge.tz", - "guestbook.tz", - "map_caddaadr.tz", - "big_map_get_add.tz", - "assert_lt.tz", - "assert_cmplt.tz", - "pair_macro.tz", - "macro_annotations.tz", - "fail.tz", - "min.tz", - "assert_gt.tz", - "assert_cmpeq.tz", - "unpair_macro.tz", - "set_caddaadr.tz", - "assert.tz", - "max_in_list.tz", - "compare_bytes.tz", - "assert_cmpneq.tz", - "assert_cmpgt.tz", - "assert_eq.tz", - "assert_cmple.tz", - "build_list.tz", - "big_map_mem.tz", - "assert_le.tz", - ], - "entrypoints": [ - "no_default_target.tz", - "no_entrypoint_target.tz", - "manager.tz", - "big_map_entrypoints.tz", - "rooted_target.tz", - "delegatable_target.tz", - "simple_entrypoints.tz", - ], - "opcodes": [ - "diff_timestamps.tz", - "if.tz", - "and.tz", - "loop_left.tz", - "transfer_amount.tz", - "concat_hello.tz", - "dip.tz", - "self_with_default_entrypoint.tz", - "create_contract_rootname_alt.tz", - "check_signature.tz", - "set_car.tz", - "pexec_2.tz", - "cons.tz", - "int.tz", - "compare.tz", - "map_id.tz", - "contains_all.tz", - "failwith_big_map.tz", - "source.tz", - "map_iter.tz", - "dropn.tz", - "self_with_entrypoint.tz", - "mul_overflow.tz", - "create_contract_rootname.tz", - "balance.tz", - "reverse_loop.tz", - "contract.tz", - "tez_add_sub.tz", - "slices.tz", - "set_iter.tz", - "list_map_block.tz", - "list_size.tz", - "set_id.tz", - "merge_comparable_pairs.tz", - "list_concat_bytes.tz", - "ediv_mutez.tz", - "map_mem_string.tz", - "set_cdr.tz", - "concat_hello_bytes.tz", - "ediv.tz", - "set_size.tz", - "list_iter.tz", - "cdr.tz", - "list_id.tz", - "xor.tz", - "noop.tz", - "transfer_tokens.tz", - "or_binary.tz", - "big_map_mem_string.tz", - "hash_string.tz", - "if_some.tz", - "first.tz", - "packunpack.tz", - "dugn.tz", - "and_logical_1.tz", - "map_size.tz", - "subset.tz", - "not_binary.tz", - "ret_int.tz", - "slice_bytes.tz", - "chain_id_store.tz", - "add_delta_timestamp.tz", - "add_timestamp_delta.tz", - "list_concat.tz", - "not.tz", - "mul.tz", - "car.tz", - "create_contract.tz", - "and_binary.tz", - "self.tz", - "get_big_map_value.tz", - "big_map_mem_nat.tz", - "exec_concat.tz", - "pexec.tz", - "map_mem_nat.tz", - "map_car.tz", - "abs.tz", - "packunpack_rev_cty.tz", - "big_map_to_self.tz", - "store_input.tz", - "map_map.tz", - "packunpack_rev.tz", - "chain_id.tz", - "concat_list.tz", - "or.tz", - "split_bytes.tz", - "empty_map.tz", - "proxy.tz", - "map_map_sideeffect.tz", - "split_string.tz", - "reverse.tz", - "set_member.tz", - "shifts.tz", - "slice.tz", - "comparisons.tz", - "add.tz", - "sub_timestamp_delta.tz", - "dign.tz", - "store_now.tz", - "dipn.tz", - "neg.tz", - "dig_eq.tz", - "set_delegate.tz", - "none.tz", - "get_map_value.tz", - "hash_consistency_checker.tz", - "left_right.tz", - "str_id.tz", - "sender.tz", - "address.tz", - "update_big_map.tz", - "pair_id.tz", - "list_id_map.tz", - "hash_key.tz", - ], -}; - -describe("PsDELPH1", () => { - for (const [group, list] of Object.entries(contracts)) { - describe(group, () => { - for (const contract of list) { - it(contract, () => { - const options: ContractOptions = { - protocol: Protocol.PsDELPH1, - } - - const filename = path.resolve(__dirname, "contracts_007", group, contract); - const src = fs.readFileSync(filename).toString(); - if (group === "ill_typed") { - expect(() => Contract.parse(src, options)).toThrow(); - return; - } - - try { - Contract.parse(src, options); - } catch (err) { - if (err instanceof MichelsonError) { - console.log(inspect(err, false, null)); - } - throw err; - } - }); - } - }); - } -}); \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/entrypoints/big_map_entrypoints.tz b/packages/taquito-michel-codec/test/contracts_007/entrypoints/big_map_entrypoints.tz deleted file mode 100644 index d49e625716..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/entrypoints/big_map_entrypoints.tz +++ /dev/null @@ -1,31 +0,0 @@ -storage - (pair (big_map string nat) (big_map string nat)) ; -parameter - (or (unit %default) - (or (or %mem (string %mem_left) (string %mem_right)) - (or (or %add (pair %add_left string nat) (pair %add_right string nat)) - (or %rem (string %rem_left) (string %rem_right))))) ; -code { UNPAIR ; - IF_LEFT - { DROP ; - DUP ; CAR ; - PUSH mutez 0 ; - NONE key_hash ; - CREATE_CONTRACT - { parameter string ; - storage (big_map string nat) ; - code { UNPAIR ; DROP ; NIL operation ; PAIR }} ; - DIP { DROP } ; - NIL operation ; SWAP ; CONS ; PAIR } - { IF_LEFT - { IF_LEFT - { DIP { UNPAIR } ; DIP { DUP } ; MEM ; ASSERT } - { DIP { UNPAIR ; SWAP } ; DIP { DUP } ; MEM ; ASSERT ; SWAP } } - { IF_LEFT - { IF_LEFT - { UNPAIR ; DIIP { UNPAIR } ; DIP { SOME } ; UPDATE } - { UNPAIR ; DIIP { UNPAIR ; SWAP } ; DIP { SOME } ; UPDATE ; SWAP } } - { IF_LEFT - { DIP { UNPAIR } ; DIP { NONE nat } ; UPDATE } - { DIP { UNPAIR ; SWAP } ; DIP { NONE nat } ; UPDATE ; SWAP } } } ; - PAIR ; NIL operation ; PAIR } } diff --git a/packages/taquito-michel-codec/test/contracts_007/entrypoints/delegatable_target.tz b/packages/taquito-michel-codec/test/contracts_007/entrypoints/delegatable_target.tz deleted file mode 100644 index 0db00f4945..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/entrypoints/delegatable_target.tz +++ /dev/null @@ -1,79 +0,0 @@ -# Michelson pseudo-code to transform from source script. - # This transformation adds 'set_delegate' entrypoint, e.g.: - # - # parameter <parameter_expr> ; - # storage <storage_expr> ; - # code <code_expr> ; - # - # to: -parameter - (or - (or (key_hash %set_delegate) - (unit %remove_delegate)) - (or %default string nat) - ) ; - -storage - (pair - key_hash # manager - (pair string nat) - ) ; - -code { - DUP ; - CAR ; - IF_LEFT - { # 'set_delegate'/'remove_delegate' entrypoints - # Assert no token was sent: - # to send tokens, the default entry point should be used - PUSH mutez 0 ; - AMOUNT ; - ASSERT_CMPEQ ; - # Assert that the sender is the manager - DUUP ; - CDR ; - CAR ; - IMPLICIT_ACCOUNT ; ADDRESS ; - SENDER ; - IFCMPNEQ - { SENDER ; - PUSH string "Only the owner can operate." ; - PAIR ; - FAILWITH ; - } - { DIP { CDR ; NIL operation } ; - IF_LEFT - { # 'set_delegate' entrypoint - SOME ; - SET_DELEGATE ; - CONS ; - PAIR ; - } - { # 'remove_delegate' entrypoint - DROP ; - NONE key_hash ; - SET_DELEGATE ; - CONS ; - PAIR ; - } - } - } - { # Transform the inputs to the original script types - DIP { CDR ; DUP ; CDR } ; - PAIR ; - - # 'default' entrypoint - original code - { UNPAIR; - IF_LEFT - { DIP { UNPAIR ; DROP } } - { DUG 1; UNPAIR ; DIP { DROP } } ; - PAIR ; NIL operation ; PAIR } - # Transform the outputs to the new script types (manager's storage is unchanged) - SWAP ; - CAR ; - SWAP ; - UNPAIR ; - DIP { SWAP ; PAIR } ; - PAIR ; - } - } diff --git a/packages/taquito-michel-codec/test/contracts_007/entrypoints/manager.tz b/packages/taquito-michel-codec/test/contracts_007/entrypoints/manager.tz deleted file mode 100644 index 06d9b1067b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/entrypoints/manager.tz +++ /dev/null @@ -1,31 +0,0 @@ -parameter - (or - (lambda %do unit (list operation)) - (unit %default)); -storage key_hash; -code - { UNPAIR ; - IF_LEFT - { # 'do' entrypoint - # Assert no token was sent: - # to send tokens, the default entry point should be used - PUSH mutez 0 ; - AMOUNT ; - ASSERT_CMPEQ ; - # Assert that the sender is the manager - DUUP ; - IMPLICIT_ACCOUNT ; - ADDRESS ; - SENDER ; - ASSERT_CMPEQ ; - # Execute the lambda argument - UNIT ; - EXEC ; - PAIR ; - } - { # 'default' entrypoint - DROP ; - NIL operation ; - PAIR ; - } - }; diff --git a/packages/taquito-michel-codec/test/contracts_007/entrypoints/no_default_target.tz b/packages/taquito-michel-codec/test/contracts_007/entrypoints/no_default_target.tz deleted file mode 100644 index 48d5d53df9..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/entrypoints/no_default_target.tz +++ /dev/null @@ -1,11 +0,0 @@ -storage (pair string nat) ; -parameter - (or unit (or %data string nat)) ; -code { UNPAIR ; - IF_LEFT - { DROP ; NIL operation ; PAIR } - { IF_LEFT - { DIP { UNPAIR ; DROP } } - { DUG 1; UNPAIR ; DIP { DROP } } ; - PAIR ; NIL operation ; PAIR } - } diff --git a/packages/taquito-michel-codec/test/contracts_007/entrypoints/no_entrypoint_target.tz b/packages/taquito-michel-codec/test/contracts_007/entrypoints/no_entrypoint_target.tz deleted file mode 100644 index d8041507d5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/entrypoints/no_entrypoint_target.tz +++ /dev/null @@ -1,11 +0,0 @@ -storage (pair string nat) ; -parameter - (or unit (or string nat)) ; -code { UNPAIR ; - IF_LEFT - { DROP ; NIL operation ; PAIR } - { IF_LEFT - { DIP { UNPAIR ; DROP } } - { DUG 1; UNPAIR ; DIP { DROP } } ; - PAIR ; NIL operation ; PAIR } - } diff --git a/packages/taquito-michel-codec/test/contracts_007/entrypoints/rooted_target.tz b/packages/taquito-michel-codec/test/contracts_007/entrypoints/rooted_target.tz deleted file mode 100644 index 2ca2dfb129..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/entrypoints/rooted_target.tz +++ /dev/null @@ -1,11 +0,0 @@ -storage (pair string nat) ; -parameter - (or %root unit (or %default string nat)) ; -code { UNPAIR ; - IF_LEFT - { DROP ; NIL operation ; PAIR } - { IF_LEFT - { DIP { UNPAIR ; DROP } } - { DUG 1; UNPAIR ; DIP { DROP } } ; - PAIR ; NIL operation ; PAIR } - } diff --git a/packages/taquito-michel-codec/test/contracts_007/entrypoints/simple_entrypoints.tz b/packages/taquito-michel-codec/test/contracts_007/entrypoints/simple_entrypoints.tz deleted file mode 100644 index 7b7abb7cb8..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/entrypoints/simple_entrypoints.tz +++ /dev/null @@ -1,4 +0,0 @@ -# A trivial contract with some entrypoints -parameter (or (unit %A) (or (string %B) (nat %C))) ; -storage unit; -code { CDR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/big_dip.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/big_dip.tz deleted file mode 100644 index 697370fdc8..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/big_dip.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter unit; -storage unit; -code { DIP 1073741824 { }; # = 0x3fffffff + 1 - DROP; } diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/big_drop.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/big_drop.tz deleted file mode 100644 index 40d81cf844..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/big_drop.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter unit; -storage unit; -code { DROP 1073741824; # = 0x3fffffff + 1 - DROP; } diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/big_map_arity.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/big_map_arity.tz deleted file mode 100644 index 5e5a7d60d5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/big_map_arity.tz +++ /dev/null @@ -1,5 +0,0 @@ -# This contract tests the error message in case the EMPTY_BIG_MAP instruction has bad arity (1 argument instead of 2). -# The expected type-checking error is "primitive EMPTY_BIG_MAP expects 2 arguments but is given 1." -parameter unit; -storage unit; -code { DROP; EMPTY_BIG_MAP nat; DROP; UNIT; NIL operation; PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/chain_id_arity.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/chain_id_arity.tz deleted file mode 100644 index 4bc9f4f701..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/chain_id_arity.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (chain_id nat); -storage unit; -code { CDR; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/contract_annotation_default.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/contract_annotation_default.tz deleted file mode 100644 index 742e140c5e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/contract_annotation_default.tz +++ /dev/null @@ -1,11 +0,0 @@ -parameter (contract (or (or (int %A) (nat %B)) (unit %default))); -storage unit; -code { - CAR; - # CONTRACT %default nat == CONTRACT nat and the former is not allowed. - DUP; ADDRESS; CONTRACT %default nat; ASSERT_SOME; DROP; - DROP; - UNIT; - NIL operation; - PAIR - }; diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/invalid_self_entrypoint.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/invalid_self_entrypoint.tz deleted file mode 100644 index 4fac9c6350..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/invalid_self_entrypoint.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C))); -storage unit; -code { - DROP; - # This entrypoint does not exist - SELF %D; DROP; - UNIT; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_code_field.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_code_field.tz deleted file mode 100644 index 4b5b2cd62f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_code_field.tz +++ /dev/null @@ -1,2 +0,0 @@ -storage unit; -parameter nat; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_parameter_field.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_parameter_field.tz deleted file mode 100644 index 1f7e8ac75d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_parameter_field.tz +++ /dev/null @@ -1,4 +0,0 @@ -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_storage_field.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_storage_field.tz deleted file mode 100644 index 2aa2892228..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_only_storage_field.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter nat; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_parameter_and_storage_fields.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_parameter_and_storage_fields.tz deleted file mode 100644 index 18e7b35b0a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/missing_parameter_and_storage_fields.tz +++ /dev/null @@ -1,3 +0,0 @@ -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_code_field.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_code_field.tz deleted file mode 100644 index cd47b356d1..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_code_field.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter nat; -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR }; -code {} \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_parameter_field.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_parameter_field.tz deleted file mode 100644 index e59fb9fe05..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_parameter_field.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter nat; -parameter nat; -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_storage_and_code_fields.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_storage_and_code_fields.tz deleted file mode 100644 index 3b32484dc2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_storage_and_code_fields.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter nat; -storage unit; -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR }; -code {} \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_storage_field.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_storage_field.tz deleted file mode 100644 index 06c25f51d3..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/multiple_storage_field.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter nat; -storage unit; -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/pack_big_map.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/pack_big_map.tz deleted file mode 100644 index 29ae0d6650..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/pack_big_map.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter unit; -storage (pair (big_map int int) unit); -code { CDAR; - DUP; PACK; DROP; - UNIT; SWAP; PAIR; - NIL operation; - PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/pack_operation.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/pack_operation.tz deleted file mode 100644 index 349ca053af..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/pack_operation.tz +++ /dev/null @@ -1,20 +0,0 @@ -parameter unit; -storage unit; -code { DROP; - UNIT; # starting storage for contract - AMOUNT; # Push the starting balance - NONE key_hash; # No delegate - CREATE_CONTRACT # Create the contract - { parameter unit ; - storage unit ; - code - { CDR; - NIL operation; - PAIR; } }; - DIP { DROP }; - # invalid PACK - PACK; - DROP; - UNIT; - NIL operation; - PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_007/ill_typed/set_update_non_comparable.tz b/packages/taquito-michel-codec/test/contracts_007/ill_typed/set_update_non_comparable.tz deleted file mode 100644 index 4a70691793..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/ill_typed/set_update_non_comparable.tz +++ /dev/null @@ -1,9 +0,0 @@ -# This contract tests the error message in case the UPDATE instruction on set -# is used with a non-comparable type -parameter (set nat); -storage unit; -code { CAR; - PUSH bool True; - NIL operation; - UPDATE; - UNIT; NIL operation; PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert.tz deleted file mode 100644 index 6c5ce503b5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bool; -storage unit; -code {CAR; ASSERT; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpeq.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpeq.tz deleted file mode 100644 index 55621bac8f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpeq.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPEQ; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpge.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpge.tz deleted file mode 100644 index e98b170445..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpge.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPGE; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpgt.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpgt.tz deleted file mode 100644 index 7a44174b72..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpgt.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPGT; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmple.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmple.tz deleted file mode 100644 index e4b61cfc44..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmple.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPLE; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmplt.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmplt.tz deleted file mode 100644 index 290b495378..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmplt.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPLT; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpneq.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpneq.tz deleted file mode 100644 index 86b601393b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_cmpneq.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPNEQ; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_eq.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_eq.tz deleted file mode 100644 index 338096a627..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_eq.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_EQ; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_ge.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_ge.tz deleted file mode 100644 index 06bb3cec94..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_ge.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_GE; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_gt.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_gt.tz deleted file mode 100644 index d041093b0e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_gt.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_GT; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_le.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_le.tz deleted file mode 100644 index 8250f3f3bd..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_le.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_LE; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_lt.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_lt.tz deleted file mode 100644 index e387e9d740..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_lt.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_LT; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/assert_neq.tz b/packages/taquito-michel-codec/test/contracts_007/macros/assert_neq.tz deleted file mode 100644 index 83f19559e1..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/assert_neq.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_NEQ; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/big_map_get_add.tz b/packages/taquito-michel-codec/test/contracts_007/macros/big_map_get_add.tz deleted file mode 100644 index 2dcf1ce69a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/big_map_get_add.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter (pair (pair %set_pair int (option int)) (pair %check_pair int (option int))) ; -storage (pair (big_map int int) unit) ; -code { DUP ; DIP { CDAR } ; - DUP ; DIP { CADR; DUP ; CAR ; DIP { CDR } ; UPDATE ; DUP } ; - CADR ; DUP ; CDR ; DIP { CAR ; GET } ; - IF_SOME { SWAP ; IF_SOME { ASSERT_CMPEQ } {FAIL}} { ASSERT_NONE } ; - UNIT ; SWAP ; PAIR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/big_map_mem.tz b/packages/taquito-michel-codec/test/contracts_007/macros/big_map_mem.tz deleted file mode 100644 index 55736ab89d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/big_map_mem.tz +++ /dev/null @@ -1,5 +0,0 @@ -# Fails if the boolean does not match the membership criteria -parameter (pair int bool) ; -storage (pair (big_map int unit) unit) ; -code { DUP ; DUP ; CADR ; DIP { CAAR ; DIP { CDAR ; DUP } ; MEM } ; - ASSERT_CMPEQ ; UNIT ; SWAP ; PAIR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/build_list.tz b/packages/taquito-michel-codec/test/contracts_007/macros/build_list.tz deleted file mode 100644 index 842056d913..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/build_list.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter nat; -storage (list nat); -code { CAR @counter; NIL @acc nat; SWAP; DUP @cmp_num; PUSH nat 0; CMPNEQ; - LOOP { DUP; DIP {SWAP}; CONS @acc; SWAP; PUSH nat 1; SWAP; SUB @counter; - DUP; DIP{ABS}; PUSH int 0; CMPNEQ}; - CONS; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/compare.tz b/packages/taquito-michel-codec/test/contracts_007/macros/compare.tz deleted file mode 100644 index 698ef3e695..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/compare.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (pair mutez mutez); -storage (list bool); -code {CAR; DUP; DUP; DUP; DUP; DIIIIIP {NIL bool}; - DIIIIP {DUP; CAR; DIP {CDR}; COMPARE; LE; CONS}; - DIIIP {DUP; CAR; DIP {CDR}; COMPARE; GE; CONS}; - DIIP{DUP; CAR; DIP {CDR}; COMPARE; LT; CONS}; - DIP {DUP; CAR; DIP {CDR}; COMPARE; GT; CONS}; - DUP; CAR; DIP {CDR}; COMPARE; EQ; CONS; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/compare_bytes.tz b/packages/taquito-michel-codec/test/contracts_007/macros/compare_bytes.tz deleted file mode 100644 index 3b5e5a9c40..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/compare_bytes.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (pair bytes bytes); -storage (list bool); -code {CAR; DUP; DUP; DUP; DUP; DIIIIIP {NIL bool}; - DIIIIP {DUP; CAR; DIP {CDR}; COMPARE; LE; CONS}; - DIIIP {DUP; CAR; DIP {CDR}; COMPARE; GE; CONS}; - DIIP{DUP; CAR; DIP {CDR}; COMPARE; LT; CONS}; - DIP {DUP; CAR; DIP {CDR}; COMPARE; GT; CONS}; - DUP; CAR; DIP {CDR}; COMPARE; EQ; CONS; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/fail.tz b/packages/taquito-michel-codec/test/contracts_007/macros/fail.tz deleted file mode 100644 index 7f8bde2521..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/fail.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter unit; -storage unit; -code - { # This contract will never accept a incoming transaction - FAIL}; diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/guestbook.tz b/packages/taquito-michel-codec/test/contracts_007/macros/guestbook.tz deleted file mode 100644 index b362f94b95..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/guestbook.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter string; -storage (map address (option string)); - -code { UNPAIR @message @guestbook; SWAP; - DUP; SENDER; GET @previous_message; - ASSERT_SOME; - ASSERT_NONE; - SWAP; SOME; SOME; SENDER; UPDATE; - NIL operation; - PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/macro_annotations.tz b/packages/taquito-michel-codec/test/contracts_007/macros/macro_annotations.tz deleted file mode 100644 index f48f18e3d9..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/macro_annotations.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter unit; -storage (pair (unit %truc) unit); -code { DROP; UNIT ; UNIT ; PAIR %truc ; UNIT ; - DUUP @new_storage ; - DIP { DROP ; DROP } ; - NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/map_caddaadr.tz b/packages/taquito-michel-codec/test/contracts_007/macros/map_caddaadr.tz deleted file mode 100644 index 45509839cc..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/map_caddaadr.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter unit; -storage (pair (pair nat (pair nat (pair (pair (pair (nat %p) (mutez %value)) nat) nat))) nat); -code { MAP_CDADDAADR @new_storage %value { PUSH mutez 1000000 ; ADD } ; - NIL operation ; SWAP; SET_CAR }; diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/max_in_list.tz b/packages/taquito-michel-codec/test/contracts_007/macros/max_in_list.tz deleted file mode 100644 index 89c4955e93..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/max_in_list.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (list int); -storage (option int); -code {CAR; DIP{NONE int}; - ITER {SWAP; - IF_NONE {SOME} - {DIP {DUP}; DUP; DIP{SWAP}; - CMPLE; IF {DROP} {DIP {DROP}}; - SOME}}; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/min.tz b/packages/taquito-michel-codec/test/contracts_007/macros/min.tz deleted file mode 100644 index cedd835bba..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/min.tz +++ /dev/null @@ -1,11 +0,0 @@ - -parameter (pair int int); -storage int; -code { CAR; # Ignore the storage - DUP; # Duplicate so we can get both the numbers passed as parameters - DUP; # Second dup so we can access the lesser number - CAR; DIP{CDR}; # Unpack the numbers on top of the stack - CMPLT; # Compare the two numbers, placing a boolean on top of the stack - IF {CAR} {CDR}; # Access the first number if the boolean was true - NIL operation; # Return no op - PAIR} # Pair the numbers satisfying the calling convention diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/pair_macro.tz b/packages/taquito-michel-codec/test/contracts_007/macros/pair_macro.tz deleted file mode 100644 index 55c70a3be3..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/pair_macro.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter unit; -storage unit; -code { UNIT; UNIT; UNIT; UNIT; UNIT; - PAPAPAPAIR @name %x1 %x2 %x3 %x4 %x5; - CDDDAR %x4 @fourth; - DROP; CDR; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/set_caddaadr.tz b/packages/taquito-michel-codec/test/contracts_007/macros/set_caddaadr.tz deleted file mode 100644 index e98671e409..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/set_caddaadr.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter mutez; -storage (pair (pair nat (pair nat (pair (pair (pair (nat %p) (mutez %value)) nat) nat))) nat); -code { DUP ; CAR ; SWAP ; CDR ; - SET_CADDAADR @toplevel_pair_name %value ; - NIL operation ; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/take_my_money.tz b/packages/taquito-michel-codec/test/contracts_007/macros/take_my_money.tz deleted file mode 100644 index bb502d0418..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/take_my_money.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter key_hash; -storage unit; -code { CAR; IMPLICIT_ACCOUNT; # Create an account for the recipient of the funds - DIP{UNIT}; # Push a value of the storage type below the contract - PUSH mutez 1000000; # The person can have a ꜩ - UNIT; # Push the contract's argument type - TRANSFER_TOKENS; # Run the transfer - NIL operation; SWAP; CONS; - PAIR }; # Cleanup and put the return values diff --git a/packages/taquito-michel-codec/test/contracts_007/macros/unpair_macro.tz b/packages/taquito-michel-codec/test/contracts_007/macros/unpair_macro.tz deleted file mode 100644 index 384b6839d8..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/macros/unpair_macro.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (unit :param_unit); -storage (unit :u1); -code { DROP ; - UNIT :u4 @a4; UNIT :u3 @a3; UNIT :u2 @a2; UNIT :u1 @a1; - PAIR; UNPAIR @x1 @x2; - PPAIPAIR @p1 %x1 %x2 %x3 %x4; UNPPAIPAIR %x1 % %x3 %x4 @uno @due @tre @quattro; - PAPAPAIR @p2 %x1 %x2 %x3 %x4; UNPAPAPAIR @un @deux @trois @quatre; - PAPPAIIR @p3 %x1 %x2 %x3 %x4; UNPAPPAIIR @one @two @three @four; - DIP { DROP; DROP; DROP }; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/authentication.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/authentication.tz deleted file mode 100644 index 021bbd2636..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/authentication.tz +++ /dev/null @@ -1,30 +0,0 @@ -/* - -This contract is an example of using a cryptographic signature to -handle authentication. A public key is stored, and only the owner of -the secret key associated to this public key can interact with the -contract. She is allowed to perform any list of operations by sending -them wrapped in a lambda to the contract with a cryptographic -signature. - -To ensure that each signature is used only once and is not replayed by -an attacker, not only the lambda is signed but also the unique -identifier of the contract (a pair of the contract address and the -chain id) and a counter that is incremented at each successful call. - -More precisely, the signature should check against pack ((chain_id, -self) (param, counter)). - -*/ -parameter (pair (lambda unit (list operation)) signature); -storage (pair (nat %counter) key); -code - { - UNPPAIPAIR; - DUUUP; DUUP ; SELF; CHAIN_ID ; PPAIPAIR; PACK; - DIP { SWAP }; DUUUUUP ; DIP { SWAP }; - DUUUP; DIP {CHECK_SIGNATURE}; SWAP; IF {DROP} {FAILWITH}; - UNIT; EXEC; - DIP { PUSH nat 1; ADD }; - PAPAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/big_map_entrypoints.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/big_map_entrypoints.tz deleted file mode 100644 index d49e625716..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/big_map_entrypoints.tz +++ /dev/null @@ -1,31 +0,0 @@ -storage - (pair (big_map string nat) (big_map string nat)) ; -parameter - (or (unit %default) - (or (or %mem (string %mem_left) (string %mem_right)) - (or (or %add (pair %add_left string nat) (pair %add_right string nat)) - (or %rem (string %rem_left) (string %rem_right))))) ; -code { UNPAIR ; - IF_LEFT - { DROP ; - DUP ; CAR ; - PUSH mutez 0 ; - NONE key_hash ; - CREATE_CONTRACT - { parameter string ; - storage (big_map string nat) ; - code { UNPAIR ; DROP ; NIL operation ; PAIR }} ; - DIP { DROP } ; - NIL operation ; SWAP ; CONS ; PAIR } - { IF_LEFT - { IF_LEFT - { DIP { UNPAIR } ; DIP { DUP } ; MEM ; ASSERT } - { DIP { UNPAIR ; SWAP } ; DIP { DUP } ; MEM ; ASSERT ; SWAP } } - { IF_LEFT - { IF_LEFT - { UNPAIR ; DIIP { UNPAIR } ; DIP { SOME } ; UPDATE } - { UNPAIR ; DIIP { UNPAIR ; SWAP } ; DIP { SOME } ; UPDATE ; SWAP } } - { IF_LEFT - { DIP { UNPAIR } ; DIP { NONE nat } ; UPDATE } - { DIP { UNPAIR ; SWAP } ; DIP { NONE nat } ; UPDATE ; SWAP } } } ; - PAIR ; NIL operation ; PAIR } } diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/big_map_magic.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/big_map_magic.tz deleted file mode 100644 index f4e36f639b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/big_map_magic.tz +++ /dev/null @@ -1,41 +0,0 @@ -# this contracts handles two big_maps -storage - (or (pair (big_map string string) (big_map string string)) unit) ; -parameter - # it has 5 entry points - # swap: swaps the two maps. - (or (unit %swap) - # reset: resets storage, either to a new pair of maps, or to unit - (or (or %reset (pair (big_map string string) (big_map string string)) unit) - # import: drops the existing storage and creates two maps - # from the given lists of string pairs. - (or (pair %import (list (pair string string)) (list (pair string string))) - # add: adds the given list of key - value pairs into the - # first map - (or (list %add (pair string string)) - # rem: removes the given list of key - value pairs - # from the first map - (list %rem string))))) ; -code { UNPAIR ; - IF_LEFT - { DROP ; ASSERT_LEFT ; UNPAIR ; SWAP ; PAIR ; LEFT unit } - { IF_LEFT - { SWAP ; DROP } - { IF_LEFT - { DIP { ASSERT_RIGHT ; DROP } ; - UNPAIR ; - DIP { EMPTY_BIG_MAP string string } ; - ITER { UNPAIR ; DIP { SOME } ; UPDATE } ; - SWAP ; - DIP { EMPTY_BIG_MAP string string } ; - ITER { UNPAIR ; DIP { SOME } ; UPDATE } ; - SWAP ; - PAIR ; LEFT unit } - { IF_LEFT - { DIP { ASSERT_LEFT ; UNPAIR } ; - ITER { UNPAIR ; DIP { SOME } ; UPDATE } ; - PAIR ; LEFT unit } - { DIP { ASSERT_LEFT ; UNPAIR } ; - ITER { DIP { NONE string } ; UPDATE } ; - PAIR ; LEFT unit } }} } ; - NIL operation ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/create_contract.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/create_contract.tz deleted file mode 100644 index 0d09a1fdfc..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/create_contract.tz +++ /dev/null @@ -1,33 +0,0 @@ -/* -- param: None: - - Create a contract then perform a recursive call on Some [addr] where - [addr] is the address of the newly created contract. - - The created contract simply stores its parameter (a string). It is - initialized with the storage "dummy" and has an initial balance of - 100tz. It has no delegate so these 100tz are totally frozen. - -- param: Some [addr]: - - Check that the sender is self, call the contract at address [addr] - with param "abcdefg" transferring 0tz. - -*/ -parameter (option address) ; -storage unit ; -code { CAR ; - IF_NONE - { PUSH string "dummy" ; - PUSH mutez 100000000 ; NONE key_hash ; - CREATE_CONTRACT - { parameter string ; - storage string ; - code { CAR ; NIL operation ; PAIR } } ; - DIP { SOME ; DIP { SELF ; PUSH mutez 0 } ; TRANSFER_TOKENS ; - NIL operation ; SWAP ; CONS } ; - CONS ; UNIT ; SWAP ; PAIR } - { SELF ; ADDRESS ; SENDER ; IFCMPNEQ { FAIL } {} ; - CONTRACT string ; IF_SOME {} { FAIL } ; - PUSH mutez 0 ; PUSH string "abcdefg" ; TRANSFER_TOKENS ; - NIL operation; SWAP; CONS ; UNIT ; SWAP ; PAIR } } ; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/create_contract_simple.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/create_contract_simple.tz deleted file mode 100644 index 2a5185d748..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/create_contract_simple.tz +++ /dev/null @@ -1,14 +0,0 @@ -parameter unit; -storage unit; -code { CAR; - PUSH string "foo"; - PUSH mutez 0; - NONE key_hash; - CREATE_CONTRACT - { parameter string ; - storage string ; - code { CAR ; NIL operation ; PAIR } } ; - DROP; DROP; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/default_account.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/default_account.tz deleted file mode 100644 index 74e7693d7b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/default_account.tz +++ /dev/null @@ -1,9 +0,0 @@ -/* -Send 100 tz to the implicit account given as parameter. -*/ - -parameter key_hash; -storage unit; -code {DIP{UNIT}; CAR; IMPLICIT_ACCOUNT; - PUSH mutez 100000000; UNIT; TRANSFER_TOKENS; - NIL operation; SWAP; CONS; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/hardlimit.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/hardlimit.tz deleted file mode 100644 index 464062a521..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/hardlimit.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter unit ; -storage int ; -code { # This contract stops accepting transactions after N incoming transactions - CDR ; DUP ; PUSH int 0 ; CMPLT; IF {PUSH int -1 ; ADD} {FAIL}; - NIL operation ; PAIR} ; diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/lockup.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/lockup.tz deleted file mode 100644 index a8ff43aa0f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/lockup.tz +++ /dev/null @@ -1,19 +0,0 @@ -parameter unit; -storage (pair timestamp (pair mutez address)); -code { CDR; # Ignore the parameter - DUP; # Duplicate the storage - CAR; # Get the timestamp - NOW; # Push the current timestamp - CMPLT; # Compare to the current time - IF {FAIL} {}; # Fail if it is too soon - DUP; # Duplicate the storage value - # this must be on the bottom of the stack for us to call transfer tokens - CDR; # Ignore the timestamp, focussing in on the transfer data - DUP; # Duplicate the transfer information - CAR; # Get the amount of the transfer on top of the stack - DIP{CDR}; # Put the contract underneath it - DIP { CONTRACT unit ; ASSERT_SOME } ; - UNIT; # Put the contract's argument type on top of the stack - TRANSFER_TOKENS; # Emit the transfer - NIL operation; SWAP; CONS;# Make a singleton list of internal operations - PAIR} # Pair up to meet the calling convention diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/multiple_en2.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/multiple_en2.tz deleted file mode 100644 index a1acafd487..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/multiple_en2.tz +++ /dev/null @@ -1,77 +0,0 @@ -{ parameter unit ; - storage (option address) ; - code { SENDER ; - SELF ; - ADDRESS ; - { COMPARE ; - EQ ; - IF { CDR ; - { IF_NONE { { UNIT ; FAILWITH } } {} } ; - DIP { NIL operation } ; - DUP ; - CONTRACT %add unit ; - { IF_NONE {} { { UNIT ; FAILWITH } } } ; - DUP ; - CONTRACT %fact nat ; - { IF_NONE {} { { UNIT ; FAILWITH } } } ; - DUP ; - CONTRACT %add nat ; - { IF_NONE { { UNIT ; FAILWITH } } {} } ; - PUSH mutez 0 ; - PUSH nat 12 ; - TRANSFER_TOKENS ; - SWAP ; - DIP { CONS } ; - DUP ; - CONTRACT unit ; - { IF_NONE { { UNIT ; FAILWITH } } {} } ; - PUSH mutez 0 ; - PUSH unit Unit ; - TRANSFER_TOKENS ; - SWAP ; - DIP { CONS } ; - DUP ; - CONTRACT %sub nat ; - { IF_NONE { { UNIT ; FAILWITH } } {} } ; - PUSH mutez 0 ; - PUSH nat 3 ; - TRANSFER_TOKENS ; - SWAP ; - DIP { CONS } ; - DUP ; - CONTRACT %add nat ; - { IF_NONE { { UNIT ; FAILWITH } } {} } ; - PUSH mutez 0 ; - PUSH nat 5 ; - TRANSFER_TOKENS ; - SWAP ; - DIP { CONS } ; - DROP ; - DIP { NONE address } ; - PAIR } - { CAR ; - DUP ; - DIP { DIP { PUSH int 0 ; PUSH mutez 0 ; NONE key_hash } ; - DROP ; - CREATE_CONTRACT - { parameter (or (or (nat %add) (nat %sub)) (unit %default)) ; - storage int ; - code { AMOUNT ; - PUSH mutez 0 ; - { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } ; - { { DUP ; CAR ; DIP { CDR } } } ; - IF_LEFT - { IF_LEFT { ADD } { SWAP ; SUB } } - { DROP ; DROP ; PUSH int 0 } ; - NIL operation ; - PAIR } } } ; - DIP { SELF ; PUSH mutez 0 } ; - TRANSFER_TOKENS ; - NIL operation ; - SWAP ; - CONS ; - SWAP ; - CONS ; - DIP { SOME } ; - PAIR } } - } } diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/multiple_entrypoints_counter.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/multiple_entrypoints_counter.tz deleted file mode 100644 index 7401906971..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/multiple_entrypoints_counter.tz +++ /dev/null @@ -1,29 +0,0 @@ -{ parameter unit ; - storage (option address) ; - code { SENDER ; SELF ; ADDRESS ; - IFCMPEQ - { CDR ; ASSERT_SOME ; - DIP { NIL operation } ; - DUP ; CONTRACT %add unit ; ASSERT_NONE ; - DUP ; CONTRACT %fact nat ; ASSERT_NONE ; - DUP ; CONTRACT %add nat ; ASSERT_SOME ; PUSH mutez 0 ; PUSH nat 12 ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; - DUP ; CONTRACT unit ; ASSERT_SOME ; PUSH mutez 0 ; PUSH unit Unit ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; - DUP ; CONTRACT %sub nat ; ASSERT_SOME ; PUSH mutez 0 ; PUSH nat 3 ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; - DUP ; CONTRACT %add nat ; ASSERT_SOME ; PUSH mutez 0 ; PUSH nat 5 ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; - DROP ; DIP { NONE address } ; PAIR } - { CAR ; DUP ; - DIP - { DIP { PUSH int 0 ; PUSH mutez 0 ; NONE key_hash } ; - DROP ; - CREATE_CONTRACT - { parameter (or (or (nat %add) (nat %sub)) (unit %default)) ; - storage int ; - code { AMOUNT ; PUSH mutez 0 ; ASSERT_CMPEQ ; - UNPAIR ; - IF_LEFT - { IF_LEFT { ADD } { SWAP ; SUB } } - { DROP ; DROP ; PUSH int 0 } ; - NIL operation ; PAIR } } } ; - DIP { SELF ; PUSH mutez 0 } ; TRANSFER_TOKENS ; - NIL operation ; SWAP ; CONS ; SWAP ; CONS ; - DIP { SOME } ; PAIR } } } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/parameterized_multisig.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/parameterized_multisig.tz deleted file mode 100644 index 16f785ae0a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/parameterized_multisig.tz +++ /dev/null @@ -1,24 +0,0 @@ -storage (pair bool (pair (map nat (pair bool bool)) (pair key key))); -parameter (or nat (pair signature nat)); -code { DUP; CAR; DIP{CDDR}; # Stack tangling - IF_LEFT { DIP{DUP; CAR}; GET; # Get the value stored for that index - IF_NONE { PUSH bool False} # If not referenced, reject - { DUP; CAR; DIP{CDR}; AND}; - PAIR} - { DUP; CAR; DIP{CDR; DUP; PACK ; BLAKE2B}; PAIR; SWAP; # Create the signature pair - DIP{ DIP{DUP; CDR; DIP{CAR}; DUP}; - SWAP; CAR; DIP{DUP; UNPAIR}; CHECK_SIGNATURE }; # Check the first signature - SWAP; - # If the signature typechecked, get and update the first element of the pair - IF { DIP{DROP; SWAP; DUP}; DUP; - DIP{ GET; IF_NONE{PUSH (pair bool bool) (Pair False False)} {}; - CDR; PUSH bool True; PAIR; SOME }} - # Check the second signature - { DIP{DIP{DUP; CDR}; SWAP; DIP {UNPAIR}; CHECK_SIGNATURE}; SWAP; - IF { DUP; DIP{DIP{SWAP; DUP}; GET}; SWAP; - IF_NONE {PUSH (pair bool bool) (Pair False False)} {}; - CAR; PUSH bool True; SWAP; PAIR; SOME; SWAP} - {FAIL}}; - # Update the stored value and finish off - UPDATE; PAIR; PUSH bool False; PAIR}; - NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/replay.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/replay.tz deleted file mode 100644 index 73ac145aba..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/replay.tz +++ /dev/null @@ -1,7 +0,0 @@ -# This contract always fail because it tries to execute twice the same operation -parameter unit ; -storage unit ; -code { CDR ; NIL operation ; - SELF ; PUSH mutez 0 ; UNIT ; TRANSFER_TOKENS ; - DUP ; DIP { CONS } ; CONS ; - PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/reveal_signed_preimage.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/reveal_signed_preimage.tz deleted file mode 100644 index 1a7e97eb8a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/reveal_signed_preimage.tz +++ /dev/null @@ -1,13 +0,0 @@ -parameter (pair bytes signature) ; -storage (pair bytes key) ; -code { - #check that sha256(param.bytes) == storage.bytes - DUP ; UNPAIR ; CAR; SHA256; DIP { CAR } ; ASSERT_CMPEQ ; - - # check that the sig is a valid signature of the preimage - DUP ; UNPAIR ; SWAP ; DIP { UNPAIR ; SWAP } ; CDR ; CHECK_SIGNATURE ; ASSERT ; - - # send all our tokens to the implicit account corresponding to the stored public key - CDR ; DUP ; CDR ; HASH_KEY ; IMPLICIT_ACCOUNT ; - BALANCE ; UNIT ; TRANSFER_TOKENS ; - NIL operation ; SWAP ; CONS ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/vote_for_delegate.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/vote_for_delegate.tz deleted file mode 100644 index 1155c073f5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/vote_for_delegate.tz +++ /dev/null @@ -1,30 +0,0 @@ -parameter (option key_hash) ; -storage (pair - (pair %mgr1 (address %addr) (option %key key_hash)) - (pair %mgr2 (address %addr) (option %key key_hash))) ; -code { # Update the storage - DUP ; CDAAR %addr @%; SENDER ; PAIR %@ %@; UNPAIR; - IFCMPEQ - { UNPAIR ; SWAP ; SET_CADR %key @changed_mgr1_key } - { DUP ; CDDAR ; SENDER ; - IFCMPEQ - { UNPAIR ; SWAP ; SET_CDDR %key } - { FAIL } } ; - # Now compare the proposals - DUP ; CADR ; - DIP { DUP ; CDDR } ; - IF_NONE - { IF_NONE - { NONE key_hash ; - SET_DELEGATE ; NIL operation ; SWAP ; CONS } - { DROP ; NIL operation } } - { SWAP ; - IF_SOME - { DIP { DUP } ; - IFCMPEQ - { SOME ; - SET_DELEGATE ; NIL operation ; SWAP ; CONS } - { DROP ; - NIL operation }} - { DROP ; NIL operation }} ; - PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/weather_insurance.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/weather_insurance.tz deleted file mode 100644 index e7e99e0183..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/weather_insurance.tz +++ /dev/null @@ -1,19 +0,0 @@ -parameter (pair (signature %signed_weather_data) (nat :rain %actual_level)); -# (pair (under_key over_key) (pair weather_service_key (pair rain_level days_in_future))) -storage (pair (pair (address %under_key) - (address %over_key)) - (pair (nat :rain %rain_level) (key %weather_service_key))); -code { DUP; DUP; - CAR; MAP_CDR{PACK ; BLAKE2B}; - SWAP; CDDDR %weather_service_key; - DIP {UNPAIR} ; CHECK_SIGNATURE @sigok; # Check if the data has been correctly signed - ASSERT; # If signature is not correct, end the execution - DUP; DUP; DUP; DIIIP{CDR %storage}; # Place storage type on bottom of stack - DIIP{CDAR}; # Place contracts below numbers - DIP{CADR %actual_level}; # Get actual rain - CDDAR %rain_level; # Get rain threshold - CMPLT; IF {CAR %under_key} {CDR %over_key}; # Select contract to receive tokens - CONTRACT unit ; ASSERT_SOME ; - BALANCE; UNIT ; TRANSFER_TOKENS @trans.op; # Setup and execute transfer - NIL operation ; SWAP ; CONS ; - PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/xcat.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/xcat.tz deleted file mode 100644 index 83e6c7ac1d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/xcat.tz +++ /dev/null @@ -1,48 +0,0 @@ -parameter (bytes); -storage (unit); -code { - # Extract parameter from initial stack. - CAR @preimage; - DIP { - # Push contract constants to the stack. - # - # There's a temptation to use @storage to parametrize - # a contract but, in general, there's no reason to encumber - # @storage with immutable values. - PUSH @from key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; #changeme - IMPLICIT_ACCOUNT ; - PUSH @to key_hash "tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN"; #changeme - IMPLICIT_ACCOUNT ; - PUSH @target_hash bytes 0x123456; #changeme - PUSH @deadline timestamp "2018-08-08 00:00:00Z"; #changeme - }; - # Test if the deadline has passed. - SWAP; NOW; - IFCMPLT - # In case the deadline did pass: - { - # Ignore parameter, just transfer xtz balance back to @from - DROP; DROP; DROP; BALANCE; UNIT; TRANSFER_TOKENS; - } - # In case the deadline hasn't passed yet: - { - # Test length of parameter. - DUP; SIZE; - PUSH @max_length nat 32; - IFCMPLT - { PUSH string "preimage too long"; FAILWITH; } - { - # Test if it's a preimage of @target_hash. - SHA256 @candidate_hash; - IFCMPNEQ - { PUSH string "invalid preimage"; FAILWITH; } - { - # Transfer xtz balance to @to. - BALANCE; UNIT; TRANSFER_TOKENS; DIP { DROP }; - }; - }; - }; - # Transform single operation into a list. - NIL operation; SWAP; CONS; - UNIT; SWAP; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/xcat_dapp.tz b/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/xcat_dapp.tz deleted file mode 100644 index 86ca62c5ac..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/mini_scenarios/xcat_dapp.tz +++ /dev/null @@ -1,79 +0,0 @@ -parameter (or - # First possible action is funding, to create an xcat - (pair %fund - (address %dest) - (pair %settings (bytes %target_hash) (timestamp %deadline))) - - # Other possible action is to claim the tokens (or ask a refund) - (or %claim_refund - (bytes %preimage_claim) - (bytes %refund_hash))); - -storage (pair - (big_map - bytes # The target hash is used as a key - (pair - # We store in %from the person who funded the xcat - (pair %recipients (address %from) (address %dest)) - (pair %settings (mutez %amount) (timestamp %deadline))) - ) - unit); - -code { - NIL @operations operation; SWAP; - UNPAPAIR @% @% @%; DIP {DUP}; - IF_LEFT # Let's fund a new xcat! - { - # Unpack the parameters - UNPAIR @% @%; - # Assert that the destination address is of type unit. - # This costs a bit more gas but limits foot-shooting. - DUP; CONTRACT @dest unit; ASSERT_SOME; DROP; - SWAP; UNPAIR @% @%; - DIP - { - AMOUNT @amount; - SENDER; - DUP; CONTRACT @from unit; ASSERT_SOME; DROP; - DIP { PAIR; SWAP; }; PAIR; PAIR; SOME @xcat; - SWAP; - }; - DUP; DIP { MEM; NOT; ASSERT }; # Assert that this target hash isn't already in the map - UPDATE; PAIR @new_storage; SWAP; PAIR; - } - { - # Let's process a claim or a refund - IF_LEFT - { # It's a claim! - DUP; SIZE; PUSH nat 32; ASSERT_CMPGE; - SHA256 @hash; DUP; DIP {SWAP}; - DIIP { - GET; ASSERT_SOME; - # Check deadline and prepare transaction. - DUP; CADR @%; CONTRACT @dest unit; ASSERT_SOME; - SWAP; CDR @%; - UNPAIR @% @%; SWAP; - # The deadline must not have passed - NOW; ASSERT_CMPLT; - # prepare transaction - UNIT; TRANSFER_TOKENS; - }; - } - { # It's a refund! - DUP; - DIP - { - GET; ASSERT_SOME; - DUP; CAAR @%; CONTRACT @from unit; ASSERT_SOME; SWAP; CDR; - UNPAIR @% @%; SWAP; - # The deadline must not HAVE passed - NOW; ASSERT_CMPGE; - UNIT; TRANSFER_TOKENS; SWAP; - }; - }; - # Clear the big map - NONE @none (pair (pair address address) (pair mutez timestamp)); - SWAP; UPDATE @cleared_map; SWAP; DIP { PAIR; SWAP }; - CONS; PAIR; - } - } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/abs.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/abs.tz deleted file mode 100644 index d03d0883fe..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/abs.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter nat; -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/add.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/add.tz deleted file mode 100644 index cbefea08a7..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/add.tz +++ /dev/null @@ -1,25 +0,0 @@ -parameter unit; -storage unit; -code - { - CAR; - - PUSH int 2; PUSH int 2; ADD; PUSH int 4; ASSERT_CMPEQ; - PUSH int 2; PUSH int 2; ADD; PUSH int 4; ASSERT_CMPEQ; - PUSH int 2; PUSH nat 2; ADD; PUSH int 4; ASSERT_CMPEQ; - PUSH nat 2; PUSH int 2; ADD; PUSH int 4; ASSERT_CMPEQ; - PUSH nat 2; PUSH nat 2; ADD; PUSH nat 4; ASSERT_CMPEQ; - - # Offset a timestamp by 60 seconds - PUSH int 60; PUSH timestamp "2019-09-09T12:08:37Z"; ADD; - PUSH timestamp "2019-09-09T12:09:37Z"; ASSERT_CMPEQ; - - PUSH timestamp "2019-09-09T12:08:37Z"; PUSH int 60; ADD; - PUSH timestamp "2019-09-09T12:09:37Z"; ASSERT_CMPEQ; - - PUSH mutez 1000; PUSH mutez 1000; ADD; - PUSH mutez 2000; ASSERT_CMPEQ; - - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/add_delta_timestamp.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/add_delta_timestamp.tz deleted file mode 100644 index b9ed869017..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/add_delta_timestamp.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int timestamp); -storage (option timestamp); -code { CAR; DUP; CAR; DIP{CDR}; ADD; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/add_timestamp_delta.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/add_timestamp_delta.tz deleted file mode 100644 index 766bf9f91f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/add_timestamp_delta.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair timestamp int); -storage (option timestamp); -code { CAR; DUP; CAR; DIP{CDR}; ADD; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/address.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/address.tz deleted file mode 100644 index 7e6bcdec33..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/address.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (contract unit); -storage (option address); -code {CAR; ADDRESS; SOME; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/and.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/and.tz deleted file mode 100644 index 48e346ca04..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/and.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair :param (bool %first) (bool %second)); -storage (option bool); -code { CAR ; UNPAIR; AND @and; SOME @res; NIL @noop operation; PAIR; UNPAIR @x @y; PAIR %a %b }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/and_binary.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/and_binary.tz deleted file mode 100644 index 96f60082c7..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/and_binary.tz +++ /dev/null @@ -1,27 +0,0 @@ -parameter unit; -storage unit; -code { DROP; - - # 0101 & 0110 = 0100 - PUSH nat 5; PUSH nat 6; AND; PUSH nat 4; ASSERT_CMPEQ; - - # 0110 & 0101 = 0100 - PUSH nat 6; PUSH int 5; AND; PUSH nat 4; ASSERT_CMPEQ; - - # Negative numbers are represented as with a initial virtual - # infinite series of 1's. - # Hence, AND with -1 (1111...) is identity: - - # 12 = ...1100 - # & -1 = ...1111 - # ---- - # = 12 = ...1100 - PUSH nat 12; PUSH int -1; AND; PUSH nat 12; ASSERT_CMPEQ; - - # 12 = ...0001100 - # & -5 = ...1111011 - # ----------------- - # 8 = ...0001000 - PUSH nat 12; PUSH int -5; AND; PUSH nat 8; ASSERT_CMPEQ; - - UNIT; NIL @noop operation; PAIR; }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/and_logical_1.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/and_logical_1.tz deleted file mode 100644 index 20743c0bfd..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/and_logical_1.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bool bool); -storage bool; -code { CAR ; UNPAIR; AND @and; NIL @noop operation; PAIR; }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/balance.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/balance.tz deleted file mode 100644 index 0a9bfc6149..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/balance.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage mutez; -code {DROP; BALANCE; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_mem_nat.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_mem_nat.tz deleted file mode 100644 index 71ecaf2c4a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_mem_nat.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter nat; -storage (pair (big_map nat nat) (option bool)) ; -# stores (map, Some flag) where flag = parameter is a member of -# the map in first component of storage -code { UNPAIR; - DIP { CAR; DUP }; - MEM; SOME; SWAP; PAIR; NIL operation; PAIR;} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_mem_string.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_mem_string.tz deleted file mode 100644 index 8c557f7dc1..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_mem_string.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter string; -storage (pair (big_map string nat) (option bool)) ; -# stores (map, Some flag) where flag = parameter is a member of -# the map in first component of storage -code { UNPAIR; - DIP { CAR; DUP }; - MEM; SOME; SWAP; PAIR; NIL operation; PAIR;} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_to_self.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_to_self.tz deleted file mode 100644 index 6a9442b9f3..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/big_map_to_self.tz +++ /dev/null @@ -1,22 +0,0 @@ -parameter (or (pair %have_fun (big_map string nat) unit) (unit %default)); -storage (big_map string nat); -code { - UNPAIR; - DIP {NIL operation}; - IF_LEFT { - DROP - } - { - DROP; - SELF %have_fun; - PUSH mutez 0; - DUP 4; - PUSH (option nat) (Some 8); - PUSH string "hahaha"; - UPDATE; - UNIT; SWAP; PAIR; - TRANSFER_TOKENS; - CONS - }; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/car.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/car.tz deleted file mode 100644 index 8fd03ba510..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/car.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (nat :l) (nat :r)); -storage nat; -code { CAR; CAR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/cdr.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/cdr.tz deleted file mode 100644 index dae260c5be..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/cdr.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (nat :l) (nat :r)); -storage nat; -code { CAR; CDR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/chain_id.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/chain_id.tz deleted file mode 100644 index 783d13fa0a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/chain_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage unit; -code { CHAIN_ID; DROP; CAR; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/chain_id_store.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/chain_id_store.tz deleted file mode 100644 index 11e57fd210..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/chain_id_store.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage (option chain_id); -code { DROP; CHAIN_ID; SOME; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/check_signature.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/check_signature.tz deleted file mode 100644 index b5d5b28426..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/check_signature.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter key; -storage (pair signature string); -code { - DUP; DUP; - DIP{ CDR; DUP; CAR; - DIP{CDR; PACK}}; - CAR; CHECK_SIGNATURE; - IF {} {FAIL} ; - CDR; NIL operation ; PAIR}; - diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/compare.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/compare.tz deleted file mode 100644 index 963215fb46..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/compare.tz +++ /dev/null @@ -1,52 +0,0 @@ -parameter unit; -storage unit; -code { - DROP; - - # bool - PUSH bool True; DUP; COMPARE; ASSERT_EQ; - PUSH bool False; DUP; COMPARE; ASSERT_EQ; - PUSH bool False; PUSH bool True; COMPARE; ASSERT_GT; - PUSH bool True; PUSH bool False; COMPARE; ASSERT_LT; - - # bytes - PUSH bytes 0xAABBCC; DUP; COMPARE; ASSERT_EQ; - PUSH bytes 0x; PUSH bytes 0x; COMPARE; ASSERT_EQ; - PUSH bytes 0x; PUSH bytes 0x01; COMPARE; ASSERT_GT; - PUSH bytes 0x01; PUSH bytes 0x02; COMPARE; ASSERT_GT; - PUSH bytes 0x02; PUSH bytes 0x01; COMPARE; ASSERT_LT; - - # int - PUSH int 1; DUP; COMPARE; ASSERT_EQ; - PUSH int 10; PUSH int 5; COMPARE; ASSERT_LT; - PUSH int -4; PUSH int 1923; COMPARE; ASSERT_GT; - - # nat - PUSH nat 1; DUP; COMPARE; ASSERT_EQ; - PUSH nat 10; PUSH nat 5; COMPARE; ASSERT_LT; - PUSH nat 4; PUSH nat 1923; COMPARE; ASSERT_GT; - - # key_hash - PUSH key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; DUP; COMPARE; ASSERT_EQ; - PUSH key_hash "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv"; PUSH key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; COMPARE; ASSERT_LT; - PUSH key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; PUSH key_hash "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv"; COMPARE; ASSERT_GT; - - # mutez - PUSH mutez 1; DUP; COMPARE; ASSERT_EQ; - PUSH mutez 10; PUSH mutez 5; COMPARE; ASSERT_LT; - PUSH mutez 4; PUSH mutez 1923; COMPARE; ASSERT_GT; - - # string - PUSH string "AABBCC"; DUP; COMPARE; ASSERT_EQ; - PUSH string ""; PUSH string ""; COMPARE; ASSERT_EQ; - PUSH string ""; PUSH string "a"; COMPARE; ASSERT_GT; - PUSH string "a"; PUSH string "b"; COMPARE; ASSERT_GT; - PUSH string "b"; PUSH string "a"; COMPARE; ASSERT_LT; - - # timestamp - PUSH timestamp "2019-09-16T08:38:05Z"; DUP; COMPARE; ASSERT_EQ; - PUSH timestamp "2017-09-16T08:38:04Z"; PUSH timestamp "2019-09-16T08:38:05Z"; COMPARE; ASSERT_GT; - PUSH timestamp "2019-09-16T08:38:05Z"; PUSH timestamp "2019-09-16T08:38:04Z"; COMPARE; ASSERT_LT; - - UNIT; NIL operation; PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/comparisons.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/comparisons.tz deleted file mode 100644 index c603f07339..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/comparisons.tz +++ /dev/null @@ -1,15 +0,0 @@ -parameter (list int); -storage (list (list bool)); -code { - CAR; - - NIL (list bool); - DIP {DUP; MAP { EQ; };}; SWAP; CONS; - DIP {DUP; MAP { NEQ; };}; SWAP; CONS; - DIP {DUP; MAP { LE; };}; SWAP; CONS; - DIP {DUP; MAP { LT; };}; SWAP; CONS; - DIP {DUP; MAP { GE; };}; SWAP; CONS; - DIP {MAP { GT; };}; SWAP; CONS; - - NIL operation; PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/concat_hello.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/concat_hello.tz deleted file mode 100644 index e290b90fb2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/concat_hello.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter (list string); -storage (list string); -code{ CAR; - MAP { PUSH @hello string "Hello "; CONCAT }; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/concat_hello_bytes.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/concat_hello_bytes.tz deleted file mode 100644 index 55f8ab7a21..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/concat_hello_bytes.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter (list bytes); -storage (list bytes); -code{ CAR; - MAP { PUSH bytes 0xFF; CONCAT }; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/concat_list.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/concat_list.tz deleted file mode 100644 index b570027ff6..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/concat_list.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (list string); -storage string; -code {CAR; PUSH string ""; SWAP; - ITER {SWAP; DIP{NIL string; SWAP; CONS}; CONS; CONCAT}; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/cons.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/cons.tz deleted file mode 100644 index 5189b47c36..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/cons.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter int; -storage (list int); -code { UNPAIR; CONS; NIL operation; PAIR; }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/contains_all.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/contains_all.tz deleted file mode 100644 index fe4160f872..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/contains_all.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter (pair (list string) (list string)); -storage (option bool); -code {CAR; DUP; CAR; DIP{CDR}; EMPTY_SET string; SWAP; - ITER {PAIR; DUP; CAR; DIP{CDR}; PUSH bool True; SWAP; UPDATE}; - PUSH bool True; SWAP; PAIR; SWAP; - ITER {PAIR; DUP; DUP; CAR; DIP{CDAR; DIP{CDDR}; DUP}; MEM; DIP{SWAP}; AND; SWAP; PAIR}; - CDR; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/contract.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/contract.tz deleted file mode 100644 index 939337918d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/contract.tz +++ /dev/null @@ -1,11 +0,0 @@ -parameter address; -storage unit; -code { - CAR; - CONTRACT unit; - ASSERT_SOME; - DROP; - UNIT; - NIL operation; - PAIR - }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract.tz deleted file mode 100644 index d3fb8dc617..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract.tz +++ /dev/null @@ -1,14 +0,0 @@ -parameter unit; -storage (option address); -code { DROP; - UNIT; # starting storage for contract - AMOUNT; # Push the starting balance - NONE key_hash; # No delegate - CREATE_CONTRACT # Create the contract - { parameter unit ; - storage unit ; - code - { CDR; - NIL operation; - PAIR; } }; - DIP {SOME;NIL operation};CONS ; PAIR} # Ending calling convention stuff diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract_rootname.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract_rootname.tz deleted file mode 100644 index b85b4cf8bb..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract_rootname.tz +++ /dev/null @@ -1,15 +0,0 @@ -# this contract creates a contract -parameter unit; -storage (option address); -code { DROP; - UNIT; # starting storage for contract - AMOUNT; # Push the starting balance - NONE key_hash; # No delegate - CREATE_CONTRACT # Create the contract - { parameter %root unit ; - storage unit ; - code - { CDR; - NIL operation; - PAIR; } }; - DIP {SOME;NIL operation}; CONS ; PAIR} # Ending calling convention stuff diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract_rootname_alt.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract_rootname_alt.tz deleted file mode 100644 index 226a9abba2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/create_contract_rootname_alt.tz +++ /dev/null @@ -1,14 +0,0 @@ -parameter unit; -storage (option address); -code { DROP; - UNIT; # starting storage for contract - AMOUNT; # Push the starting balance - NONE key_hash; # No delegate - CREATE_CONTRACT # Create the contract - { parameter (unit %root) ; - storage unit ; - code - { CDR; - NIL operation; - PAIR; } }; - DIP {SOME;NIL operation}; CONS ; PAIR} # Ending calling convention stuff diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/diff_timestamps.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/diff_timestamps.tz deleted file mode 100644 index f1991a37a5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/diff_timestamps.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair timestamp timestamp); -storage int; -code { CAR; DUP; CAR; DIP{CDR}; SUB; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/dig_eq.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/dig_eq.tz deleted file mode 100644 index fff548bbf5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/dig_eq.tz +++ /dev/null @@ -1,14 +0,0 @@ -parameter (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat nat)))))))))))))))); -storage unit; -# this contract receives a 17-tuple, unpairs it, reverses the order, reverses it again, and pairs it and verifies that the result is the same as the original tuple. -code { CAR; - DUP; - - UNPAPAPAPAPAPAPAPAPAPAPAPAPAPAPAPAIR; - DIG 0; DIG 1; DIG 2; DIG 3; DIG 4; DIG 5; DIG 6; DIG 7; DIG 8; DIG 9; DIG 10; DIG 11; DIG 12; DIG 13; DIG 14; DIG 15; DIG 16; - # PUSH nat 1; ADD; - DIG 0; DIG 1; DIG 2; DIG 3; DIG 4; DIG 5; DIG 6; DIG 7; DIG 8; DIG 9; DIG 10; DIG 11; DIG 12; DIG 13; DIG 14; DIG 15; DIG 16; - PAPAPAPAPAPAPAPAPAPAPAPAPAPAPAPAIR; - ASSERT_CMPEQ; - - UNIT; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/dign.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/dign.tz deleted file mode 100644 index ec8a339dd4..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/dign.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (pair (pair (pair nat nat) nat) nat) nat); -storage nat; -code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DIG 4 ; DIP { DROP ; DROP ; DROP ; DROP } ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/dip.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/dip.tz deleted file mode 100644 index f0c32a8387..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/dip.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter (pair nat nat); -storage (pair nat nat); -code{ - CAR; UNPAIR; - DUP; DIP { ADD }; - PAIR; - NIL operation; - PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/dipn.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/dipn.tz deleted file mode 100644 index 55d088e551..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/dipn.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (pair (pair (pair nat nat) nat) nat) nat); -storage nat; -code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DIP 5 {PUSH nat 6} ; DROP ; DROP ; DROP ; DROP ; DROP ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/dropn.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/dropn.tz deleted file mode 100644 index 4b5379b3a3..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/dropn.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (pair (pair (pair nat nat) nat) nat) nat); -storage nat; -code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DROP 4 ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/dugn.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/dugn.tz deleted file mode 100644 index 521c052f1f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/dugn.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (pair (pair (pair nat nat) nat) nat) nat); -storage nat; -code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DUG 4 ; DROP ; DROP ; DROP ; DROP ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/ediv.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/ediv.tz deleted file mode 100644 index ee577a4dc4..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/ediv.tz +++ /dev/null @@ -1,13 +0,0 @@ -parameter (pair int int); -storage (pair (option (pair int nat)) (pair (option (pair int nat)) (pair (option (pair int nat)) (option (pair nat nat))))); -code { CAR; - # :: nat : nat : 'S -> option (pair nat nat) : 'S - DUP; UNPAIR; ABS; DIP { ABS; }; EDIV; SWAP; - # :: nat : int : 'S -> option (pair int nat) : 'S - DUP; UNPAIR; ABS; EDIV; SWAP; - # :: int : nat : 'S -> option (pair int nat) : 'S - DUP; UNPAIR; DIP { ABS; }; EDIV; SWAP; - # :: int : int : 'S -> option (pair int nat) : 'S - UNPAIR; EDIV; - PAPAPAIR; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/ediv_mutez.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/ediv_mutez.tz deleted file mode 100644 index 2df73dd4a0..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/ediv_mutez.tz +++ /dev/null @@ -1,12 +0,0 @@ -parameter (pair mutez (or mutez nat)); -storage (or (option (pair nat mutez)) (option (pair mutez mutez))); -code { CAR; - UNPAIR; - SWAP; - IF_LEFT { - SWAP; EDIV; LEFT (option (pair mutez mutez)); - } - { - SWAP; EDIV; RIGHT (option (pair nat mutez)); - }; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/empty_map.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/empty_map.tz deleted file mode 100644 index 9023fe847b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/empty_map.tz +++ /dev/null @@ -1,6 +0,0 @@ -storage (map string string); -parameter unit; -code {DROP; - EMPTY_MAP string string; - PUSH string "world"; SOME; PUSH string "hello"; UPDATE; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/exec_concat.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/exec_concat.tz deleted file mode 100644 index 0265f1557f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/exec_concat.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter string; -storage string; -code {CAR; - LAMBDA string string - {PUSH string "_abc"; NIL string ; - SWAP ; CONS ; SWAP ; CONS ; CONCAT}; - SWAP; EXEC; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/failwith_big_map.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/failwith_big_map.tz deleted file mode 100644 index f7b9a2f4ec..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/failwith_big_map.tz +++ /dev/null @@ -1,19 +0,0 @@ -# This contract uses FAILWITH to expose a big map diff -# See https://gitlab.com/nomadic-labs/tezos/-/issues/27#note_271401078 - -parameter (big_map int int); - -# Even if the stored big_map is dropped by the initial CAR instruction, -# it can still be accessed by its big-map id and sent as parameter so -# it is important that the type of the storage matches the type of the -# parameter. -storage (big_map int int); - -code { CAR; - PUSH (option int) (Some 1); - PUSH int 1; - UPDATE; - PUSH (option int) None; - PUSH int 2; - UPDATE; - FAILWITH } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/first.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/first.tz deleted file mode 100644 index 6e47b4c008..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/first.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list nat); -storage nat; -code{CAR; IF_CONS {DIP{DROP}} {FAIL}; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/get_big_map_value.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/get_big_map_value.tz deleted file mode 100644 index 4ca52343d4..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/get_big_map_value.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter string; -storage (pair (big_map string string) (option string)); -# retrieves the values stored in the big_map on the left side of the -# pair at the key denoted by the parameter and puts it in the right -# hand side of the storage -code {DUP; CAR; DIP{CDAR; DUP}; GET; SWAP; PAIR; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/get_map_value.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/get_map_value.tz deleted file mode 100644 index f46639649a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/get_map_value.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage (pair (option string) (map string string)); -code {DUP; CAR; DIP{CDDR; DUP}; GET; PAIR; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/hash_consistency_checker.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/hash_consistency_checker.tz deleted file mode 100644 index fb98a39da4..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/hash_consistency_checker.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair mutez (pair timestamp int)) ; -storage bytes ; -code { CAR ; PACK ; BLAKE2B ; NIL operation ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/hash_key.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/hash_key.tz deleted file mode 100644 index 6c7f78b4aa..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/hash_key.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter key; -storage (option key_hash); -code {CAR; HASH_KEY; SOME ;NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/hash_string.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/hash_string.tz deleted file mode 100644 index b0b8ddea64..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/hash_string.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage bytes; -code {CAR; PACK ; BLAKE2B; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/if.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/if.tz deleted file mode 100644 index 4bc0e353da..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/if.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bool; -storage (option bool); -code {CAR; IF {PUSH bool True} {PUSH bool False}; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/if_some.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/if_some.tz deleted file mode 100644 index 5c3138b227..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/if_some.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (option string); -storage string; -code { CAR; IF_SOME {} {PUSH string ""}; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/int.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/int.tz deleted file mode 100644 index 3f19988139..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/int.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter nat; -storage (option int); -# this contract takes a natural number as parameter, converts it to an -# integer and stores it. -code { CAR; INT; SOME; NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/left_right.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/left_right.tz deleted file mode 100644 index d5650c0342..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/left_right.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (or bool string); -storage (or string bool); -code {CAR; IF_LEFT {RIGHT string} {LEFT bool}; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_concat.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/list_concat.tz deleted file mode 100644 index d7bfb7d134..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_concat.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list string); -storage string; -code { UNPAIR ; SWAP ; CONS ; CONCAT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_concat_bytes.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/list_concat_bytes.tz deleted file mode 100644 index 0fc8e16206..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_concat_bytes.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list bytes); -storage bytes; -code { UNPAIR ; SWAP ; CONS ; CONCAT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_id.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/list_id.tz deleted file mode 100644 index 6cd3693a1e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list string); -storage (list string); -code {CAR; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_id_map.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/list_id_map.tz deleted file mode 100644 index 38b4493e8e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_id_map.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list string); -storage (list string); -code {CAR; MAP {}; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_iter.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/list_iter.tz deleted file mode 100644 index df904d8822..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_iter.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (list int); -storage int; -code { CAR; PUSH int 1; SWAP; - ITER { MUL }; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_map_block.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/list_map_block.tz deleted file mode 100644 index b5202dd9b6..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_map_block.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (list int); -storage (list int); -code { CAR; PUSH int 0; SWAP; - MAP { DIP{DUP}; ADD; DIP{PUSH int 1; ADD}}; - NIL operation; PAIR; DIP{DROP}} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_size.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/list_size.tz deleted file mode 100644 index 6ced127991..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/list_size.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list int); -storage nat; -code {CAR; SIZE; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/loop_left.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/loop_left.tz deleted file mode 100644 index 64bcc76c89..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/loop_left.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter (list string); -storage (list string); -code { CAR; NIL string; SWAP; PAIR; LEFT (list string); - LOOP_LEFT { DUP; CAR; DIP{CDR}; - IF_CONS { SWAP; DIP{CONS}; PAIR; LEFT (list string) } - { RIGHT (pair (list string) (list string)) }; }; - NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_car.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/map_car.tz deleted file mode 100644 index b763590ece..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_car.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter bool; -storage (pair (bool %b) (nat %n)); -code { DUP; CAR; DIP{CDR}; SWAP; - MAP_CAR @new_storage %b { AND }; - NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_id.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/map_id.tz deleted file mode 100644 index ff0a3bbbf2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (map nat nat); -storage (map nat nat); -code { CAR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_iter.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/map_iter.tz deleted file mode 100644 index 3ab5c35c73..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_iter.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter (map (int :k) (int :e)); -storage (pair (int :k) (int :e)); -code { CAR; PUSH @acc_e (int :e) 0; PUSH @acc_k (int :k) 0; PAIR % %r; SWAP; - ITER - { DIP {DUP; CAR; DIP{CDR}}; DUP; # Last instr - DIP{CAR; ADD}; SWAP; DIP{CDR; ADD}; PAIR % %r }; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_map.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/map_map.tz deleted file mode 100644 index 4acbd63c32..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_map.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter nat; -storage (map string nat); -# this contract adds the value passed by parameter to each entry in -# the stored map. -code { UNPAIR; SWAP; - MAP { CDR; DIP {DUP}; ADD; }; - DIP { DROP; }; - NIL operation; PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_map_sideeffect.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/map_map_sideeffect.tz deleted file mode 100644 index 960b02a553..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_map_sideeffect.tz +++ /dev/null @@ -1,12 +0,0 @@ -parameter nat; -storage (pair (map string nat) nat); -# this contract adds the value passed by parameter to each entry in -# the stored map, and it sets the second component of the pair to the -# sum of the map's elements -code { UNPAIR; SWAP; CAR; - DIP 2 { PUSH @sum nat 0; }; - MAP { CDR; DIP {DUP}; ADD; - DUP; DUG 2; DIP 2 { ADD @sum }; - }; - DIP { DROP; }; PAIR; - NIL operation; PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_mem_nat.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/map_mem_nat.tz deleted file mode 100644 index 0c245d7e0a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_mem_nat.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter nat; -storage (pair (map nat nat) (option bool)) ; -# stores (map, Some flag) where flag = parameter is a member of -# the map in first component of storage -code { UNPAIR; - DIP { CAR; DUP }; - MEM; SOME; SWAP; PAIR; NIL operation; PAIR;} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_mem_string.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/map_mem_string.tz deleted file mode 100644 index 3fa5cd5b57..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_mem_string.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter string; -storage (pair (map string nat) (option bool)) ; -# stores (map, Some flag) where flag = parameter is a member of -# the map in first component of storage -code { UNPAIR; - DIP { CAR; DUP }; - MEM; SOME; SWAP; PAIR; NIL operation; PAIR;} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_size.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/map_size.tz deleted file mode 100644 index 4bd6417e6d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/map_size.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (map string nat); -storage nat; -code {CAR; SIZE; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/merge_comparable_pairs.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/merge_comparable_pairs.tz deleted file mode 100644 index 14fcc73411..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/merge_comparable_pairs.tz +++ /dev/null @@ -1,14 +0,0 @@ -# tests that merging comparable pair types works -parameter (set (pair (nat %n) (pair %p (string %s) (int %i)))); -storage nat; -code {UNPAIR; - SWAP; - PUSH nat 3; - COMPARE; - GT; - IF {} - {DROP; - EMPTY_SET (pair nat (pair string int));}; - SIZE; - NIL operation; - PAIR;} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/mul.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/mul.tz deleted file mode 100644 index 8432394b52..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/mul.tz +++ /dev/null @@ -1,48 +0,0 @@ -parameter unit ; -storage unit ; -code { CAR ; - DROP ; - # tez-nat, no overflow - PUSH nat 7987 ; - PUSH mutez 10 ; - MUL ; - PUSH mutez 79870 ; - COMPARE ; - ASSERT_EQ ; - # nat-tez, no overflow - PUSH mutez 10 ; - PUSH nat 7987 ; - MUL ; - PUSH mutez 79870 ; - COMPARE ; - ASSERT_EQ ; - # int-int, no overflow - PUSH int 10 ; - PUSH int -7987 ; - MUL ; - PUSH int -79870 ; - COMPARE ; - ASSERT_EQ ; - # int-nat, no overflow - PUSH nat 10 ; - PUSH int -7987 ; - MUL ; - PUSH int -79870 ; - COMPARE ; - ASSERT_EQ ; - # nat-int, no overflow - PUSH int -10 ; - PUSH nat 7987 ; - MUL ; - PUSH int -79870 ; - COMPARE ; - ASSERT_EQ ; - # nat-nat, no overflow - PUSH nat 10 ; - PUSH nat 7987 ; - MUL ; - PUSH nat 79870 ; - COMPARE ; - ASSERT_EQ ; - - UNIT ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/mul_overflow.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/mul_overflow.tz deleted file mode 100644 index 5d2b3a3dcf..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/mul_overflow.tz +++ /dev/null @@ -1,18 +0,0 @@ -parameter (or unit unit) ; -storage unit ; -code { CAR ; - IF_LEFT - { - PUSH nat 922337203685477580700 ; - PUSH mutez 10 ; - MUL ; # FAILURE - DROP - } - { - PUSH mutez 10 ; - PUSH nat 922337203685477580700 ; - MUL ; # FAILURE - DROP - } ; - - NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/neg.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/neg.tz deleted file mode 100644 index 9cedf765f1..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/neg.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter (or int nat); -storage int; -code { - CAR; - IF_LEFT {NEG} {NEG}; - NIL operation; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/none.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/none.tz deleted file mode 100644 index 473a288b49..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/none.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage (option nat); -code { DROP; NONE nat; NIL operation; PAIR; }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/noop.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/noop.tz deleted file mode 100644 index bd19da15cf..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/noop.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage unit; -code {CDR; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/not.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/not.tz deleted file mode 100644 index f89394072d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/not.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bool; -storage (option bool); -code {CAR; NOT; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/not_binary.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/not_binary.tz deleted file mode 100644 index c1e0f97979..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/not_binary.tz +++ /dev/null @@ -1,12 +0,0 @@ -parameter (or int nat); -storage (option int); -code { CAR; - IF_LEFT - { - NOT; - } - { - NOT; - } ; - SOME; NIL operation ; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/or.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/or.tz deleted file mode 100644 index 89d533c448..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/or.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bool bool); -storage (option bool); -code {CAR; DUP; CAR; SWAP; CDR; OR; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/or_binary.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/or_binary.tz deleted file mode 100644 index a31f109827..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/or_binary.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (pair nat nat); -storage (option nat); -# This contract takes a pair of natural numbers as argument and -# stores the result of their binary OR. -code { CAR; - UNPAIR; - OR; - SOME; NIL operation; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack.tz deleted file mode 100644 index ad313fa8ae..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter (pair (pair (pair string (list int)) (set nat)) bytes) ; -storage unit ; -code { CAR ; UNPAIR ; DIP { DUP } ; - PACK ; ASSERT_CMPEQ ; - UNPACK (pair (pair string (list int)) (set nat)) ; ASSERT_SOME ; DROP ; - UNIT ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack_rev.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack_rev.tz deleted file mode 100644 index 86871a5c62..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack_rev.tz +++ /dev/null @@ -1,41 +0,0 @@ -parameter (pair - int - (pair - nat - (pair - string - (pair bytes (pair mutez (pair bool (pair key_hash (pair timestamp address)))))))); -storage unit ; -code { CAR; - # Check the int - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK int; ASSERT_SOME; ASSERT_CMPEQ; - # Check the nat - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK nat; ASSERT_SOME; ASSERT_CMPEQ; - # Check the string - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK string; ASSERT_SOME; ASSERT_CMPEQ; - # Check the bytes - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK bytes; ASSERT_SOME; ASSERT_CMPEQ; - # Check the mutez - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK mutez; ASSERT_SOME; ASSERT_CMPEQ; - # Check the bool - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK bool; ASSERT_SOME; ASSERT_CMPEQ; - # Check the key_hash - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK key_hash; ASSERT_SOME; ASSERT_CMPEQ; - # Check the timestamp - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK timestamp; ASSERT_SOME; ASSERT_CMPEQ; - # Check the address - DUP; PACK; UNPACK address; ASSERT_SOME; ASSERT_CMPEQ; - - # Assert failure modes of unpack - PUSH int 0; PACK; UNPACK nat; ASSERT_SOME; DROP; - PUSH int -1; PACK; UNPACK nat; ASSERT_NONE; - - # Try deserializing invalid byte sequence (no magic number) - PUSH bytes 0x; UNPACK nat; ASSERT_NONE; - PUSH bytes 0x04; UNPACK nat; ASSERT_NONE; - - # Assert failure for byte sequences that do not correspond to - # any micheline value - PUSH bytes 0x05; UNPACK nat; ASSERT_NONE; - - UNIT ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack_rev_cty.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack_rev_cty.tz deleted file mode 100644 index 5e32b8a6f6..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/packunpack_rev_cty.tz +++ /dev/null @@ -1,31 +0,0 @@ -parameter (pair key (pair unit (pair signature (pair (option signature) (pair (list unit) (pair (set bool) (pair (pair int int) (pair (or key_hash timestamp) (pair (map int string) (lambda string bytes)))))))))); -storage unit ; -# for each uncomparable type t (we take an arbitrary parameter for -# parametric data-types e.g. pair, list), -# that is packable (which excludes big_map, operation, and contract) -# this contract receives a parameter v_t. -# it verifies that pack v_t == pack (unpack (pack v_t)) -code { CAR; - # packable uncomparable types - # checking: key - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK key; ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: unit - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK unit; ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: signature - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (signature); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: option signature - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (option signature); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: list unit - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (list unit); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: set bool - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (set bool); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: pair int int - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (pair int int); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: or key_hash timestamp - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (or key_hash timestamp); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: map int string - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (map int string); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: lambda string bytes - DUP; PACK; DIP { PACK; UNPACK (lambda string bytes); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - - UNIT ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/pair_id.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/pair_id.tz deleted file mode 100644 index 3bfedf2d8c..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/pair_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bool bool); -storage (option (pair bool bool)); -code {CAR; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/pexec.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/pexec.tz deleted file mode 100644 index eab0c71b4f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/pexec.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter nat; -storage nat; -code { - LAMBDA (pair nat nat) nat - {UNPAIR ; ADD}; - SWAP; UNPAIR ; DIP { APPLY } ; EXEC ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/pexec_2.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/pexec_2.tz deleted file mode 100644 index d64f7442f5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/pexec_2.tz +++ /dev/null @@ -1,11 +0,0 @@ -parameter int; -storage (list int); -code { - UNPAIR @p @s ; # p :: s - LAMBDA (pair int (pair int int)) int - { UNPAIR ; DIP { UNPAIR } ; ADD ; MUL }; # l :: p :: s - SWAP ; APPLY ; # l :: s - PUSH int 3 ; APPLY ; # l :: s - SWAP ; MAP { DIP { DUP } ; EXEC } ; # s :: l - DIP { DROP } ; # s - NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/proxy.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/proxy.tz deleted file mode 100644 index 185bbcd321..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/proxy.tz +++ /dev/null @@ -1,13 +0,0 @@ -/* This proxy contract transfers the received amount to the contract given as parameter. - It is used to test the SOURCE and SENDER opcodes; see source.tz and sender.tz. */ -parameter (contract unit) ; -storage unit ; -code{ - UNPAIR; - AMOUNT ; - UNIT ; - TRANSFER_TOKENS; - DIP {NIL operation} ; - CONS; - PAIR - } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/ret_int.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/ret_int.tz deleted file mode 100644 index 720a99568e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/ret_int.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage (option nat); -code {DROP; PUSH nat 300; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/reverse.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/reverse.tz deleted file mode 100644 index 5a851f3e29..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/reverse.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (list string); -storage (list string); -code { CAR; NIL string; SWAP; - ITER {CONS}; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/reverse_loop.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/reverse_loop.tz deleted file mode 100644 index d8117135c9..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/reverse_loop.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (list string); -storage (list string); -code { CAR; NIL string; SWAP; PUSH bool True; - LOOP { IF_CONS {SWAP; DIP{CONS}; PUSH bool True} {NIL string; PUSH bool False}}; - DROP; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/self.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/self.tz deleted file mode 100644 index d96457fd13..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/self.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit ; -storage address ; -code { DROP ; SELF ; ADDRESS ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/self_with_default_entrypoint.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/self_with_default_entrypoint.tz deleted file mode 100644 index 47f848c0d5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/self_with_default_entrypoint.tz +++ /dev/null @@ -1,19 +0,0 @@ -parameter (or (or (nat %A) (bool %B)) (or %maybe_C (unit %default) (string %C))); -storage unit; -code { - DROP; - SELF; DROP; - # Refers to entrypoint A of the current contract. - SELF %A; DROP; - # Refers to the default entry of the current contract - SELF %default; PACK; - # "SELF" w/o annotation also refers to the default - # entry of the current contract. Internally, they are equal. - SELF; PACK; ASSERT_CMPEQ; - # The following instruction would not typecheck: - # SELF %D, - # since there is no entrypoint D. - UNIT; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/self_with_entrypoint.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/self_with_entrypoint.tz deleted file mode 100644 index ea6f8e1898..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/self_with_entrypoint.tz +++ /dev/null @@ -1,26 +0,0 @@ -parameter (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C))); -storage unit; -code { - DROP; - # Refers to entrypoint A of the current contract. - SELF %A; PACK @Apacked; - # Refers to the default entry of the current contract - SELF %default; PACK @defpacked; DUP; DIP { SWAP }; ASSERT_CMPNEQ; - # "SELF" w/o annotation also refers to the default - # entry of the current contract - SELF; PACK @selfpacked; ASSERT_CMPEQ; - - # Verify the types of the different entrypoints. CAST is noop - # if its argument is convertible with the type of the top of - # the stack. - SELF %A; CAST (contract nat); DROP; - SELF %B; CAST (contract bool); DROP; - SELF %maybe_C; CAST (contract (or (unit) (string))); DROP; - SELF %Z; CAST (contract unit); DROP; - SELF; CAST (contract (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C)))); DROP; - SELF %default; CAST (contract (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C)))); DROP; - - UNIT; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/sender.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/sender.tz deleted file mode 100644 index fb174179ac..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/sender.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter unit ; -storage address ; -code{ - DROP ; - SENDER; - NIL operation ; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_car.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/set_car.tz deleted file mode 100644 index 460b338567..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_car.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage (pair (string %s) (nat %n)); -code { DUP; CDR; DIP{CAR}; SET_CAR %s; NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_cdr.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/set_cdr.tz deleted file mode 100644 index d725756bbc..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_cdr.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter nat; -storage (pair (string %s) (nat %n)); -code { DUP; CDR; DIP{CAR}; SET_CDR %n; NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_delegate.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/set_delegate.tz deleted file mode 100644 index a7e051e504..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_delegate.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (option key_hash); -storage unit; -code { - UNPAIR; - SET_DELEGATE; - DIP {NIL operation}; - CONS; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_id.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/set_id.tz deleted file mode 100644 index ede301b0e9..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (set string); -storage (set string); -code { CAR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_iter.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/set_iter.tz deleted file mode 100644 index 55d8ae34ab..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_iter.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (set int); -storage int; -code { CAR; PUSH int 0; SWAP; ITER { ADD }; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_member.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/set_member.tz deleted file mode 100644 index ae97cce143..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_member.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage (pair (set string) (option bool)); -code {DUP; DUP; CAR; DIP{CDAR}; MEM; SOME; DIP {CDAR}; SWAP; PAIR ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_size.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/set_size.tz deleted file mode 100644 index aa055cb021..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/set_size.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (set int); -storage nat; -code {CAR; SIZE; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/shifts.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/shifts.tz deleted file mode 100644 index 71964750c0..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/shifts.tz +++ /dev/null @@ -1,18 +0,0 @@ -parameter (or (pair nat nat) (pair nat nat)); -storage (option nat); -# this contract takes either (Left a b) and stores (a << b) -# or (Right a b) and stores (a >> b). -# i.e., in the first case, the first component shifted to the left by -# the second, and the second case, component shifted to the right by -# the second. -code { CAR; - IF_LEFT { - UNPAIR; LSL; - } - { - UNPAIR; LSR; - }; - SOME; - NIL operation; - PAIR; - }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/slice.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/slice.tz deleted file mode 100644 index 3461bb5533..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/slice.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (pair nat nat); -storage (option string); -code { UNPAIR; SWAP; - IF_SOME {SWAP; UNPAIR; SLICE;} {DROP; NONE string;}; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/slice_bytes.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/slice_bytes.tz deleted file mode 100644 index c0f60f3587..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/slice_bytes.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (pair nat nat); -storage (option bytes); -code { UNPAIR; SWAP; - IF_SOME {SWAP; UNPAIR; SLICE;} {DROP; NONE bytes;}; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/slices.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/slices.tz deleted file mode 100644 index fa76827261..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/slices.tz +++ /dev/null @@ -1,11 +0,0 @@ -parameter (pair bytes signature) ; -storage key ; -code { DUP ; - CAAR ; DUP ; SIZE ; PUSH nat 128 ; SWAP ; SUB ; ISNAT ; IF_SOME {} { FAIL } ; - PUSH nat 128 ; SLICE @payload ; ASSERT_SOME ; - DUP ; DIP { DIP { DUP ; CAAR ; PUSH nat 32 ; PUSH nat 0 ; SLICE ; ASSERT_SOME } ; SHA256 ; ASSERT_CMPEQ } ; - DUP ; DIP { DIP { DUP ; CAAR ; PUSH nat 32 ; PUSH nat 32 ; SLICE ; ASSERT_SOME } ; BLAKE2B ; ASSERT_CMPEQ } ; - DUP ; DIP { DIP { DUP ; CAAR ; PUSH nat 64 ; PUSH nat 64 ; SLICE ; ASSERT_SOME } ; SHA512 ; ASSERT_CMPEQ } ; - DIP { DUP ; CDR ; DIP { DUP ; CADR }} ; SWAP ; DIP { SWAP } ; CHECK_SIGNATURE ; ASSERT ; - CDR ; DUP ; HASH_KEY ; IMPLICIT_ACCOUNT ; BALANCE ; UNIT ; TRANSFER_TOKENS ; - NIL operation ; SWAP ; CONS ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/source.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/source.tz deleted file mode 100644 index fc3c642027..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/source.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter unit ; - -storage address ; - -code{ - DROP ; - SOURCE; - NIL operation ; - PAIR - } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/split_bytes.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/split_bytes.tz deleted file mode 100644 index f3b623b3c4..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/split_bytes.tz +++ /dev/null @@ -1,16 +0,0 @@ -parameter bytes ; -storage (list bytes) ; -code { UNPAIR ; - DIP { NIL bytes ; SWAP ; ITER { CONS } } ; - DUP ; SIZE ; PUSH nat 0 ; CMPNEQ ; - DIP { PUSH @index nat 0 } ; - LOOP - { PAIR ; DUP ; - DIP { UNPAIR ; DIP { PUSH nat 1 } ; SLICE ; ASSERT_SOME ; CONS @storage } ; - UNPAIR ; - PUSH nat 1 ; ADD @index ; - DUP ; DIP { DIP { DUP } ; SWAP ; SIZE ; CMPNEQ } ; SWAP ; - } ; - DROP ; DROP ; - NIL bytes ; SWAP ; ITER { CONS } ; - NIL operation ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/split_string.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/split_string.tz deleted file mode 100644 index 909ba60474..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/split_string.tz +++ /dev/null @@ -1,16 +0,0 @@ -parameter string ; -storage (list string) ; -code { UNPAIR ; - DIP { NIL string ; SWAP ; ITER { CONS } } ; - DUP ; SIZE ; PUSH nat 0 ; CMPNEQ ; - DIP { PUSH @index nat 0 } ; - LOOP - { PAIR ; DUP ; - DIP { UNPAIR ; DIP { PUSH nat 1 } ; SLICE ; ASSERT_SOME ; CONS @storage } ; - UNPAIR ; - PUSH nat 1 ; ADD @index ; - DUP ; DIP { DIP { DUP } ; SWAP ; SIZE ; CMPNEQ } ; SWAP ; - } ; - DROP ; DROP ; - NIL string ; SWAP ; ITER { CONS } ; - NIL operation ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/store_input.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/store_input.tz deleted file mode 100644 index 4eee565ca2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/store_input.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage string; -code {CAR; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/store_now.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/store_now.tz deleted file mode 100644 index 1a868ac06f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/store_now.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage timestamp; -code {DROP; NOW; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/str_id.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/str_id.tz deleted file mode 100644 index f9e0710c32..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/str_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage (option string); -code { CAR ; SOME ; NIL operation ; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/sub_timestamp_delta.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/sub_timestamp_delta.tz deleted file mode 100644 index f154e95241..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/sub_timestamp_delta.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair timestamp int); -storage timestamp; -code { CAR; DUP; CAR; DIP{CDR}; SUB; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/subset.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/subset.tz deleted file mode 100644 index a16ef1695c..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/subset.tz +++ /dev/null @@ -1,12 +0,0 @@ -parameter (pair (set string) (set string)); -storage bool; -code { CAR; DUP; CDR; DIP{CAR}; # Unpack lists - PUSH bool True; - PAIR; SWAP; # Setup accumulator - ITER { DIP{ DUP; DUP; CDR; - DIP{CAR; DIP{CDR}}}; - MEM; # Check membership - AND; # Combine accumulator and input - PAIR}; - CAR; # Get the accumulator value - NIL operation; PAIR} # Calling convention diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/tez_add_sub.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/tez_add_sub.tz deleted file mode 100644 index 39eba1d162..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/tez_add_sub.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (pair mutez mutez); -storage (option (pair mutez mutez)); -code {CAR; DUP; DUP; CAR; DIP{CDR}; ADD; - DIP{DUP; CAR; DIP{CDR}; SUB}; - PAIR; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/transfer_amount.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/transfer_amount.tz deleted file mode 100644 index 973c64f04d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/transfer_amount.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage mutez; -code { DROP; AMOUNT; NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/transfer_tokens.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/transfer_tokens.tz deleted file mode 100644 index 599b4dae18..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/transfer_tokens.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (contract unit); -storage unit; -code { CAR; DIP{UNIT}; PUSH mutez 100000000; UNIT; - TRANSFER_TOKENS; - NIL operation; SWAP; CONS; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/update_big_map.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/update_big_map.tz deleted file mode 100644 index c403975a38..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/update_big_map.tz +++ /dev/null @@ -1,6 +0,0 @@ -storage (pair (big_map string string) unit); -parameter (map string (option string)); -# this contract the stored big_map according to the map taken in parameter -code { UNPAPAIR; - ITER { UNPAIR; UPDATE; } ; - PAIR; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_007/opcodes/xor.tz b/packages/taquito-michel-codec/test/contracts_007/opcodes/xor.tz deleted file mode 100644 index 557eaa642b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_007/opcodes/xor.tz +++ /dev/null @@ -1,13 +0,0 @@ -parameter (or (pair bool bool) (pair nat nat)); -storage (option (or bool nat)); -code { - CAR; - IF_LEFT - { - UNPAIR; XOR; LEFT nat - } - { - UNPAIR; XOR; RIGHT bool - } ; - SOME; NIL operation ; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008.spec.ts b/packages/taquito-michel-codec/test/contracts_008.spec.ts deleted file mode 100644 index c315742b95..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008.spec.ts +++ /dev/null @@ -1,312 +0,0 @@ -import fs from "fs"; -import path from "path"; -import { inspect } from "util"; -import { Contract, ContractOptions } from "../src/michelson-contract"; -import { Protocol } from "../src/michelson-types"; -import { MichelsonError } from "../src/utils"; - -const contracts: { - [group: string]: string[]; -} = { - "mini_scenarios": [ - "xcat.tz", - "vote_for_delegate.tz", - "parameterized_multisig.tz", - "ticket_wallet_fungible.tz", - "hardlimit.tz", - "authentication.tz", - "groth16.tz", - "lockup.tz", - "self_address_receiver.tz", - "self_address_sender.tz", - "replay.tz", - "create_contract.tz", - "reveal_signed_preimage.tz", - "xcat_dapp.tz", - "default_account.tz", - "multiple_en2.tz", - "weather_insurance.tz", - "big_map_entrypoints.tz", - "big_map_write.tz", - "big_map_store.tz", - "multiple_entrypoints_counter.tz", - "big_map_magic.tz", - "ticket_builder_non_fungible.tz", - "ticket_wallet_non_fungible.tz", - "create_contract_simple.tz", - "big_map_read.tz", - "ticket_builder_fungible.tz", - ], - "ill_typed": [ - "ticket_apply.tz", - "never_literal.tz", - "multiple_code_field.tz", - "unpair_field_annotation_mismatch.tz", - "set_update_non_comparable.tz", - "pack_operation.tz", - "failwith_big_map.tz", - "multiple_storage_field.tz", - "missing_only_storage_field.tz", - "uncomb0.tz", - "contract_annotation_default.tz", - "multiple_storage_and_code_fields.tz", - "uncomb1.tz", - "invalid_self_entrypoint.tz", - "chain_id_arity.tz", - "ticket_in_ticket.tz", - "sapling_build_empty_state_with_int_parameter.tz", - "comb1.tz", - "missing_only_parameter_field.tz", - "big_dip.tz", - "comb0.tz", - "missing_only_code_field.tz", - "big_map_arity.tz", - "push_big_map_with_id_without_parens.tz", - "big_drop.tz", - "pack_big_map.tz", - "missing_parameter_and_storage_fields.tz", - "dup0.tz", - "unpack_sapling_state.tz", - "push_big_map_with_id_with_parens.tz", - "ticket_dup.tz", - "ticket_unpack.tz", - "multiple_parameter_field.tz", - "pack_sapling_state.tz", - ], - "macros": [ - "assert_neq.tz", - "assert_cmpge.tz", - "compare.tz", - "take_my_money.tz", - "assert_ge.tz", - "guestbook.tz", - "carn_and_cdrn.tz", - "map_caddaadr.tz", - "big_map_get_add.tz", - "assert_lt.tz", - "assert_cmplt.tz", - "pair_macro.tz", - "macro_annotations.tz", - "fail.tz", - "min.tz", - "assert_gt.tz", - "assert_cmpeq.tz", - "unpair_macro.tz", - "set_caddaadr.tz", - "assert.tz", - "max_in_list.tz", - "compare_bytes.tz", - "assert_cmpneq.tz", - "assert_cmpgt.tz", - "assert_eq.tz", - "assert_cmple.tz", - "build_list.tz", - "big_map_mem.tz", - "assert_le.tz", - ], - "entrypoints": [ - "no_default_target.tz", - "no_entrypoint_target.tz", - "manager.tz", - "big_map_entrypoints.tz", - "rooted_target.tz", - "delegatable_target.tz", - "simple_entrypoints.tz", - ], - "opcodes": [ - "ticket_join.tz", - "diff_timestamps.tz", - "if.tz", - "and.tz", - "loop_left.tz", - "transfer_amount.tz", - "concat_hello.tz", - "dip.tz", - "self_with_default_entrypoint.tz", - "create_contract_rootname_alt.tz", - "ticketer-2.tz", - "check_signature.tz", - "comb-set.tz", - "set_car.tz", - "pexec_2.tz", - "neg_bls12_381_g1.tz", - "cons.tz", - "int.tz", - "compare.tz", - "map_id.tz", - "contains_all.tz", - "source.tz", - "map_iter.tz", - "dropn.tz", - "uncomb.tz", - "self_with_entrypoint.tz", - "mul_overflow.tz", - "create_contract_rootname.tz", - "balance.tz", - "reverse_loop.tz", - "contract.tz", - "sapling_empty_state.tz", - "mutez_to_bls12_381_fr.tz", - "tez_add_sub.tz", - "ticket_bad.tz", - "slices.tz", - "set_iter.tz", - "list_map_block.tz", - "bls12_381_fr_z_int.tz", - "originate_big_map.tz", - "list_size.tz", - "ticket_store-2.tz", - "set_id.tz", - "merge_comparable_pairs.tz", - "list_concat_bytes.tz", - "mul_bls12_381_g2.tz", - "ediv_mutez.tz", - "get_and_update_map.tz", - "compare_big_type.tz", - "map_mem_string.tz", - "comb-get.tz", - "set_cdr.tz", - "concat_hello_bytes.tz", - "get_and_update_big_map.tz", - "ediv.tz", - "set_size.tz", - "list_iter.tz", - "bls12_381_z_fr_nat.tz", - "cdr.tz", - "list_id.tz", - "xor.tz", - "comb-set-2.tz", - "bls12_381_fr_to_int.tz", - "compare_big_type2.tz", - "noop.tz", - "bls12_381_fr_push_nat.tz", - "transfer_tokens.tz", - "mul_bls12_381_fr.tz", - "or_binary.tz", - "self_address.tz", - "big_map_mem_string.tz", - "hash_string.tz", - "level.tz", - "if_some.tz", - "first.tz", - "packunpack.tz", - "dugn.tz", - "store_bls12_381_g1.tz", - "and_logical_1.tz", - "map_size.tz", - "subset.tz", - "not_binary.tz", - "add_bls12_381_g1.tz", - "ticket_split.tz", - "ret_int.tz", - "slice_bytes.tz", - "chain_id_store.tz", - "add_delta_timestamp.tz", - "add_timestamp_delta.tz", - "list_concat.tz", - "voting_power.tz", - "not.tz", - "mul.tz", - "sha3.tz", - "car.tz", - "create_contract.tz", - "and_binary.tz", - "self.tz", - "get_big_map_value.tz", - "ticket_read.tz", - "neg_bls12_381_fr.tz", - "big_map_mem_nat.tz", - "exec_concat.tz", - "pexec.tz", - "store_bls12_381_g2.tz", - "add_bls12_381_g2.tz", - "map_mem_nat.tz", - "map_car.tz", - "abs.tz", - "packunpack_rev_cty.tz", - "big_map_to_self.tz", - "store_input.tz", - "map_map.tz", - "packunpack_rev.tz", - "chain_id.tz", - "utxo_read.tz", - "unpair.tz", - "concat_list.tz", - "or.tz", - "comb.tz", - "split_bytes.tz", - "empty_map.tz", - "ticket_big_store.tz", - "proxy.tz", - "map_map_sideeffect.tz", - "split_string.tz", - "bls12_381_fr_to_mutez.tz", - "reverse.tz", - "bls12_381_fr_z_nat.tz", - "set_member.tz", - "ticketer.tz", - "shifts.tz", - "bls12_381_z_fr_int.tz", - "slice.tz", - "bls12_381_fr_push_bytes_not_padded.tz", - "comparisons.tz", - "utxor.tz", - "add.tz", - "sub_timestamp_delta.tz", - "mul_bls12_381_g1.tz", - "dign.tz", - "store_now.tz", - "dipn.tz", - "neg.tz", - "dig_eq.tz", - "pairing_check.tz", - "set_delegate.tz", - "store_bls12_381_fr.tz", - "none.tz", - "add_bls12_381_fr.tz", - "get_map_value.tz", - "hash_consistency_checker.tz", - "left_right.tz", - "keccak.tz", - "str_id.tz", - "neg_bls12_381_g2.tz", - "sender.tz", - "address.tz", - "update_big_map.tz", - "ticket_store.tz", - "dup-n.tz", - "pair_id.tz", - "list_id_map.tz", - "hash_key.tz", - ], -}; - -describe("PtEdo2Zk", () => { - for (const [group, list] of Object.entries(contracts)) { - describe(group, () => { - for (const contract of list) { - it(contract, () => { - const options: ContractOptions = { - protocol: Protocol.PtEdo2Zk - }; - - const filename = path.resolve(__dirname, "contracts_008", group, contract); - const src = fs.readFileSync(filename).toString(); - if (group === "ill_typed") { - expect(() => Contract.parse(src, options)).toThrow(); - return; - } - - try { - Contract.parse(src, options); - } catch (err) { - if (err instanceof MichelsonError) { - console.log(inspect(err, false, null)); - } - throw err; - } - }); - } - }); - } -}); \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/entrypoints/big_map_entrypoints.tz b/packages/taquito-michel-codec/test/contracts_008/entrypoints/big_map_entrypoints.tz deleted file mode 100644 index d49e625716..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/entrypoints/big_map_entrypoints.tz +++ /dev/null @@ -1,31 +0,0 @@ -storage - (pair (big_map string nat) (big_map string nat)) ; -parameter - (or (unit %default) - (or (or %mem (string %mem_left) (string %mem_right)) - (or (or %add (pair %add_left string nat) (pair %add_right string nat)) - (or %rem (string %rem_left) (string %rem_right))))) ; -code { UNPAIR ; - IF_LEFT - { DROP ; - DUP ; CAR ; - PUSH mutez 0 ; - NONE key_hash ; - CREATE_CONTRACT - { parameter string ; - storage (big_map string nat) ; - code { UNPAIR ; DROP ; NIL operation ; PAIR }} ; - DIP { DROP } ; - NIL operation ; SWAP ; CONS ; PAIR } - { IF_LEFT - { IF_LEFT - { DIP { UNPAIR } ; DIP { DUP } ; MEM ; ASSERT } - { DIP { UNPAIR ; SWAP } ; DIP { DUP } ; MEM ; ASSERT ; SWAP } } - { IF_LEFT - { IF_LEFT - { UNPAIR ; DIIP { UNPAIR } ; DIP { SOME } ; UPDATE } - { UNPAIR ; DIIP { UNPAIR ; SWAP } ; DIP { SOME } ; UPDATE ; SWAP } } - { IF_LEFT - { DIP { UNPAIR } ; DIP { NONE nat } ; UPDATE } - { DIP { UNPAIR ; SWAP } ; DIP { NONE nat } ; UPDATE ; SWAP } } } ; - PAIR ; NIL operation ; PAIR } } diff --git a/packages/taquito-michel-codec/test/contracts_008/entrypoints/delegatable_target.tz b/packages/taquito-michel-codec/test/contracts_008/entrypoints/delegatable_target.tz deleted file mode 100644 index 0db00f4945..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/entrypoints/delegatable_target.tz +++ /dev/null @@ -1,79 +0,0 @@ -# Michelson pseudo-code to transform from source script. - # This transformation adds 'set_delegate' entrypoint, e.g.: - # - # parameter <parameter_expr> ; - # storage <storage_expr> ; - # code <code_expr> ; - # - # to: -parameter - (or - (or (key_hash %set_delegate) - (unit %remove_delegate)) - (or %default string nat) - ) ; - -storage - (pair - key_hash # manager - (pair string nat) - ) ; - -code { - DUP ; - CAR ; - IF_LEFT - { # 'set_delegate'/'remove_delegate' entrypoints - # Assert no token was sent: - # to send tokens, the default entry point should be used - PUSH mutez 0 ; - AMOUNT ; - ASSERT_CMPEQ ; - # Assert that the sender is the manager - DUUP ; - CDR ; - CAR ; - IMPLICIT_ACCOUNT ; ADDRESS ; - SENDER ; - IFCMPNEQ - { SENDER ; - PUSH string "Only the owner can operate." ; - PAIR ; - FAILWITH ; - } - { DIP { CDR ; NIL operation } ; - IF_LEFT - { # 'set_delegate' entrypoint - SOME ; - SET_DELEGATE ; - CONS ; - PAIR ; - } - { # 'remove_delegate' entrypoint - DROP ; - NONE key_hash ; - SET_DELEGATE ; - CONS ; - PAIR ; - } - } - } - { # Transform the inputs to the original script types - DIP { CDR ; DUP ; CDR } ; - PAIR ; - - # 'default' entrypoint - original code - { UNPAIR; - IF_LEFT - { DIP { UNPAIR ; DROP } } - { DUG 1; UNPAIR ; DIP { DROP } } ; - PAIR ; NIL operation ; PAIR } - # Transform the outputs to the new script types (manager's storage is unchanged) - SWAP ; - CAR ; - SWAP ; - UNPAIR ; - DIP { SWAP ; PAIR } ; - PAIR ; - } - } diff --git a/packages/taquito-michel-codec/test/contracts_008/entrypoints/manager.tz b/packages/taquito-michel-codec/test/contracts_008/entrypoints/manager.tz deleted file mode 100644 index 06d9b1067b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/entrypoints/manager.tz +++ /dev/null @@ -1,31 +0,0 @@ -parameter - (or - (lambda %do unit (list operation)) - (unit %default)); -storage key_hash; -code - { UNPAIR ; - IF_LEFT - { # 'do' entrypoint - # Assert no token was sent: - # to send tokens, the default entry point should be used - PUSH mutez 0 ; - AMOUNT ; - ASSERT_CMPEQ ; - # Assert that the sender is the manager - DUUP ; - IMPLICIT_ACCOUNT ; - ADDRESS ; - SENDER ; - ASSERT_CMPEQ ; - # Execute the lambda argument - UNIT ; - EXEC ; - PAIR ; - } - { # 'default' entrypoint - DROP ; - NIL operation ; - PAIR ; - } - }; diff --git a/packages/taquito-michel-codec/test/contracts_008/entrypoints/no_default_target.tz b/packages/taquito-michel-codec/test/contracts_008/entrypoints/no_default_target.tz deleted file mode 100644 index 48d5d53df9..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/entrypoints/no_default_target.tz +++ /dev/null @@ -1,11 +0,0 @@ -storage (pair string nat) ; -parameter - (or unit (or %data string nat)) ; -code { UNPAIR ; - IF_LEFT - { DROP ; NIL operation ; PAIR } - { IF_LEFT - { DIP { UNPAIR ; DROP } } - { DUG 1; UNPAIR ; DIP { DROP } } ; - PAIR ; NIL operation ; PAIR } - } diff --git a/packages/taquito-michel-codec/test/contracts_008/entrypoints/no_entrypoint_target.tz b/packages/taquito-michel-codec/test/contracts_008/entrypoints/no_entrypoint_target.tz deleted file mode 100644 index d8041507d5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/entrypoints/no_entrypoint_target.tz +++ /dev/null @@ -1,11 +0,0 @@ -storage (pair string nat) ; -parameter - (or unit (or string nat)) ; -code { UNPAIR ; - IF_LEFT - { DROP ; NIL operation ; PAIR } - { IF_LEFT - { DIP { UNPAIR ; DROP } } - { DUG 1; UNPAIR ; DIP { DROP } } ; - PAIR ; NIL operation ; PAIR } - } diff --git a/packages/taquito-michel-codec/test/contracts_008/entrypoints/rooted_target.tz b/packages/taquito-michel-codec/test/contracts_008/entrypoints/rooted_target.tz deleted file mode 100644 index 2ca2dfb129..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/entrypoints/rooted_target.tz +++ /dev/null @@ -1,11 +0,0 @@ -storage (pair string nat) ; -parameter - (or %root unit (or %default string nat)) ; -code { UNPAIR ; - IF_LEFT - { DROP ; NIL operation ; PAIR } - { IF_LEFT - { DIP { UNPAIR ; DROP } } - { DUG 1; UNPAIR ; DIP { DROP } } ; - PAIR ; NIL operation ; PAIR } - } diff --git a/packages/taquito-michel-codec/test/contracts_008/entrypoints/simple_entrypoints.tz b/packages/taquito-michel-codec/test/contracts_008/entrypoints/simple_entrypoints.tz deleted file mode 100644 index 7b7abb7cb8..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/entrypoints/simple_entrypoints.tz +++ /dev/null @@ -1,4 +0,0 @@ -# A trivial contract with some entrypoints -parameter (or (unit %A) (or (string %B) (nat %C))) ; -storage unit; -code { CDR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/big_dip.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/big_dip.tz deleted file mode 100644 index 697370fdc8..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/big_dip.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter unit; -storage unit; -code { DIP 1073741824 { }; # = 0x3fffffff + 1 - DROP; } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/big_drop.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/big_drop.tz deleted file mode 100644 index 40d81cf844..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/big_drop.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter unit; -storage unit; -code { DROP 1073741824; # = 0x3fffffff + 1 - DROP; } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/big_map_arity.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/big_map_arity.tz deleted file mode 100644 index 5e5a7d60d5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/big_map_arity.tz +++ /dev/null @@ -1,5 +0,0 @@ -# This contract tests the error message in case the EMPTY_BIG_MAP instruction has bad arity (1 argument instead of 2). -# The expected type-checking error is "primitive EMPTY_BIG_MAP expects 2 arguments but is given 1." -parameter unit; -storage unit; -code { DROP; EMPTY_BIG_MAP nat; DROP; UNIT; NIL operation; PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/chain_id_arity.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/chain_id_arity.tz deleted file mode 100644 index 4bc9f4f701..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/chain_id_arity.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (chain_id nat); -storage unit; -code { CDR; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/comb0.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/comb0.tz deleted file mode 100644 index ab3c791530..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/comb0.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage unit; -code { PAIR 0 } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/comb1.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/comb1.tz deleted file mode 100644 index 07b709d61c..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/comb1.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage unit; -code { PAIR 1 } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/contract_annotation_default.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/contract_annotation_default.tz deleted file mode 100644 index 742e140c5e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/contract_annotation_default.tz +++ /dev/null @@ -1,11 +0,0 @@ -parameter (contract (or (or (int %A) (nat %B)) (unit %default))); -storage unit; -code { - CAR; - # CONTRACT %default nat == CONTRACT nat and the former is not allowed. - DUP; ADDRESS; CONTRACT %default nat; ASSERT_SOME; DROP; - DROP; - UNIT; - NIL operation; - PAIR - }; diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/dup0.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/dup0.tz deleted file mode 100644 index 2e46599e49..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/dup0.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage unit; -code { DUP 0 } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/failwith_big_map.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/failwith_big_map.tz deleted file mode 100644 index dba1230903..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/failwith_big_map.tz +++ /dev/null @@ -1,22 +0,0 @@ -# This contract uses FAILWITH to expose a big map diff -# See https://gitlab.com/nomadic-labs/tezos/-/issues/27#note_271401078 - -parameter (big_map int int); - -# Even if the stored big_map is dropped by the initial CAR instruction, -# it can still be accessed by its big-map id and sent as parameter so -# it is important that the type of the storage matches the type of the -# parameter. - -# This test is now ill-typed because FAILWITH accepts only packable types - -storage (big_map int int); - -code { CAR; - PUSH (option int) (Some 1); - PUSH int 1; - UPDATE; - PUSH (option int) None; - PUSH int 2; - UPDATE; - FAILWITH } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/invalid_self_entrypoint.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/invalid_self_entrypoint.tz deleted file mode 100644 index 4fac9c6350..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/invalid_self_entrypoint.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C))); -storage unit; -code { - DROP; - # This entrypoint does not exist - SELF %D; DROP; - UNIT; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_code_field.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_code_field.tz deleted file mode 100644 index 4b5b2cd62f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_code_field.tz +++ /dev/null @@ -1,2 +0,0 @@ -storage unit; -parameter nat; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_parameter_field.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_parameter_field.tz deleted file mode 100644 index 1f7e8ac75d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_parameter_field.tz +++ /dev/null @@ -1,4 +0,0 @@ -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_storage_field.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_storage_field.tz deleted file mode 100644 index 2aa2892228..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_only_storage_field.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter nat; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_parameter_and_storage_fields.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_parameter_and_storage_fields.tz deleted file mode 100644 index 18e7b35b0a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/missing_parameter_and_storage_fields.tz +++ /dev/null @@ -1,3 +0,0 @@ -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_code_field.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_code_field.tz deleted file mode 100644 index cd47b356d1..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_code_field.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter nat; -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR }; -code {} \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_parameter_field.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_parameter_field.tz deleted file mode 100644 index e59fb9fe05..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_parameter_field.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter nat; -parameter nat; -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_storage_and_code_fields.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_storage_and_code_fields.tz deleted file mode 100644 index 3b32484dc2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_storage_and_code_fields.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter nat; -storage unit; -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR }; -code {} \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_storage_field.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_storage_field.tz deleted file mode 100644 index 06c25f51d3..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/multiple_storage_field.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter nat; -storage unit; -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/never_literal.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/never_literal.tz deleted file mode 100644 index ba36b3b5f2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/never_literal.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter unit; -storage unit; -code { - PUSH never {}; - FAILWITH - } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_big_map.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_big_map.tz deleted file mode 100644 index 29ae0d6650..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_big_map.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter unit; -storage (pair (big_map int int) unit); -code { CDAR; - DUP; PACK; DROP; - UNIT; SWAP; PAIR; - NIL operation; - PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_operation.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_operation.tz deleted file mode 100644 index 349ca053af..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_operation.tz +++ /dev/null @@ -1,20 +0,0 @@ -parameter unit; -storage unit; -code { DROP; - UNIT; # starting storage for contract - AMOUNT; # Push the starting balance - NONE key_hash; # No delegate - CREATE_CONTRACT # Create the contract - { parameter unit ; - storage unit ; - code - { CDR; - NIL operation; - PAIR; } }; - DIP { DROP }; - # invalid PACK - PACK; - DROP; - UNIT; - NIL operation; - PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_sapling_state.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_sapling_state.tz deleted file mode 100644 index 0524d9b279..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/pack_sapling_state.tz +++ /dev/null @@ -1,13 +0,0 @@ -# Verify SAPLING_STATE is not packable. The contract should not typecheck when using `PACK`. -# The lines below PACK are present only in case of PACK allows SAPLING_STATE to -# make the typechecker happy. -parameter unit; -storage (sapling_state 8); -code { UNPAIR; - DROP; - PACK; - DROP; - SAPLING_EMPTY_STATE 8; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/push_big_map_with_id_with_parens.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/push_big_map_with_id_with_parens.tz deleted file mode 100644 index 2c659e9a63..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/push_big_map_with_id_with_parens.tz +++ /dev/null @@ -1,10 +0,0 @@ -# This contract verifies it is not possible to use the instruction `PUSH big_map -# tk tv i` where i is the ID of an existing big_map -parameter int; -storage (big_map string nat); -code { UNPAIR; - DROP; - PUSH (big_map string nat) 0; - NIL operation; - PAIR - } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/push_big_map_with_id_without_parens.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/push_big_map_with_id_without_parens.tz deleted file mode 100644 index c5eeef97c7..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/push_big_map_with_id_without_parens.tz +++ /dev/null @@ -1,11 +0,0 @@ -# This contract verifies it is not possible to use the instruction `PUSH big_map -# tk tv i` where i is the ID of an existing big_map -parameter int; -storage (big_map string nat); -code { - UNPAIR; - DROP; - PUSH big_map string nat 0; - NIL operation; - PAIR; - }; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/sapling_build_empty_state_with_int_parameter.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/sapling_build_empty_state_with_int_parameter.tz deleted file mode 100644 index 21b4839106..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/sapling_build_empty_state_with_int_parameter.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter nat; -storage (sapling_state 8); -code { - UNPAIR; - SWAP; - DROP; - SAPLING_EMPTY_STATE; - NIL operation; - PAIR; - }; diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/set_update_non_comparable.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/set_update_non_comparable.tz deleted file mode 100644 index 4a70691793..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/set_update_non_comparable.tz +++ /dev/null @@ -1,9 +0,0 @@ -# This contract tests the error message in case the UPDATE instruction on set -# is used with a non-comparable type -parameter (set nat); -storage unit; -code { CAR; - PUSH bool True; - NIL operation; - UPDATE; - UNIT; NIL operation; PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_apply.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_apply.tz deleted file mode 100644 index a77fb08a66..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_apply.tz +++ /dev/null @@ -1,17 +0,0 @@ -# This script attempts to duplicate a ticket by capturing it using APPLY. -# Is should fail at parsing because tickets are not packable so they are -# not allowed to be captured by APPLY. -parameter (ticket unit); -storage (option (pair (ticket unit) (ticket unit))); -code { - CAR; - LAMBDA (pair (ticket unit) unit) (ticket unit) { CAR }; - SWAP; APPLY; - DUP; - UNIT; EXEC; SWAP; - UNIT; EXEC; - PAIR; - SOME; - NIL operation; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_dup.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_dup.tz deleted file mode 100644 index fee0ea3785..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_dup.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (ticket %store nat) ; -storage unit; -code { UNPAIR; DUP; DROP 2; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_in_ticket.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_in_ticket.tz deleted file mode 100644 index ee6bdf2387..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_in_ticket.tz +++ /dev/null @@ -1,16 +0,0 @@ -# This script attempts to duplicate a ticket by storing it -# in another ticket and calling READ_TICKET twice on it. -# It should fail at parsing because ticket contents must be -# comparable so (ticket (ticket unit)) cannot be built. -parameter (ticket unit); -storage (option (pair (ticket unit) (ticket unit))); -code { - CAR; - PUSH nat 0; - SWAP; - TICKET; - READ_TICKET; CDR; CAR; - SWAP; READ_TICKET; CDR; CAR; - SWAP; DROP; - PAIR; SOME; NIL operation; PAIR - } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_unpack.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_unpack.tz deleted file mode 100644 index 888746f42e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/ticket_unpack.tz +++ /dev/null @@ -1,5 +0,0 @@ -# UNPACK on ticket should produce a type error -parameter unit; -storage (option (ticket nat)); -code { DROP ; PUSH nat 2 ; PACK ; UNPACK (ticket nat) ; - NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/uncomb0.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/uncomb0.tz deleted file mode 100644 index 9c33709129..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/uncomb0.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage unit; -code { UNPAIR 0 } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/uncomb1.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/uncomb1.tz deleted file mode 100644 index 6cc5153350..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/uncomb1.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage unit; -code { UNPAIR 1 } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/unpack_sapling_state.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/unpack_sapling_state.tz deleted file mode 100644 index a80f81eb84..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/unpack_sapling_state.tz +++ /dev/null @@ -1,12 +0,0 @@ -# Verify SAPLING_STATE is not packable. The contract should not typecheck when using `UNPACK`. -# The lines below UNPACK are present only in case of UNPACK allows SAPLING_STATE to -# make the typechecker happy. -parameter bytes; -storage (unit); -code { CAR; - UNPACK (sapling_state 8); - DROP; - PUSH unit Unit; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/ill_typed/unpair_field_annotation_mismatch.tz b/packages/taquito-michel-codec/test/contracts_008/ill_typed/unpair_field_annotation_mismatch.tz deleted file mode 100644 index c2b3fe0a49..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/ill_typed/unpair_field_annotation_mismatch.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter (unit :param_unit); -storage (unit :u1); -code { DROP ; - - UNIT @b; UNIT @a; PAIR %@ %@; - # Field annotations must match (or be ommited) - DUP; UNPAIR %c %d; DROP 2; - DROP; - - UNIT; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert.tz deleted file mode 100644 index 6c5ce503b5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bool; -storage unit; -code {CAR; ASSERT; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpeq.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpeq.tz deleted file mode 100644 index 55621bac8f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpeq.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPEQ; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpge.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpge.tz deleted file mode 100644 index e98b170445..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpge.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPGE; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpgt.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpgt.tz deleted file mode 100644 index 7a44174b72..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpgt.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPGT; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmple.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmple.tz deleted file mode 100644 index e4b61cfc44..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmple.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPLE; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmplt.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmplt.tz deleted file mode 100644 index 290b495378..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmplt.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPLT; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpneq.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpneq.tz deleted file mode 100644 index 86b601393b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_cmpneq.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; ASSERT_CMPNEQ; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_eq.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_eq.tz deleted file mode 100644 index 338096a627..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_eq.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_EQ; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_ge.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_ge.tz deleted file mode 100644 index 06bb3cec94..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_ge.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_GE; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_gt.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_gt.tz deleted file mode 100644 index d041093b0e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_gt.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_GT; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_le.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_le.tz deleted file mode 100644 index 8250f3f3bd..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_le.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_LE; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_lt.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_lt.tz deleted file mode 100644 index e387e9d740..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_lt.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_LT; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/assert_neq.tz b/packages/taquito-michel-codec/test/contracts_008/macros/assert_neq.tz deleted file mode 100644 index 83f19559e1..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/assert_neq.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int int); -storage unit; -code {CAR; DUP; CAR; DIP{CDR}; COMPARE; ASSERT_NEQ; UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/big_map_get_add.tz b/packages/taquito-michel-codec/test/contracts_008/macros/big_map_get_add.tz deleted file mode 100644 index 2dcf1ce69a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/big_map_get_add.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter (pair (pair %set_pair int (option int)) (pair %check_pair int (option int))) ; -storage (pair (big_map int int) unit) ; -code { DUP ; DIP { CDAR } ; - DUP ; DIP { CADR; DUP ; CAR ; DIP { CDR } ; UPDATE ; DUP } ; - CADR ; DUP ; CDR ; DIP { CAR ; GET } ; - IF_SOME { SWAP ; IF_SOME { ASSERT_CMPEQ } {FAIL}} { ASSERT_NONE } ; - UNIT ; SWAP ; PAIR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/big_map_mem.tz b/packages/taquito-michel-codec/test/contracts_008/macros/big_map_mem.tz deleted file mode 100644 index 55736ab89d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/big_map_mem.tz +++ /dev/null @@ -1,5 +0,0 @@ -# Fails if the boolean does not match the membership criteria -parameter (pair int bool) ; -storage (pair (big_map int unit) unit) ; -code { DUP ; DUP ; CADR ; DIP { CAAR ; DIP { CDAR ; DUP } ; MEM } ; - ASSERT_CMPEQ ; UNIT ; SWAP ; PAIR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/build_list.tz b/packages/taquito-michel-codec/test/contracts_008/macros/build_list.tz deleted file mode 100644 index 842056d913..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/build_list.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter nat; -storage (list nat); -code { CAR @counter; NIL @acc nat; SWAP; DUP @cmp_num; PUSH nat 0; CMPNEQ; - LOOP { DUP; DIP {SWAP}; CONS @acc; SWAP; PUSH nat 1; SWAP; SUB @counter; - DUP; DIP{ABS}; PUSH int 0; CMPNEQ}; - CONS; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/carn_and_cdrn.tz b/packages/taquito-michel-codec/test/contracts_008/macros/carn_and_cdrn.tz deleted file mode 100644 index cc3cdccee8..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/carn_and_cdrn.tz +++ /dev/null @@ -1,26 +0,0 @@ -# Same as ../opcodes/comb-get.tz but using the CAR n and CDR n macros instead of GET -parameter (pair nat nat nat unit); -storage unit; -code { - CAR ; - - # Checking the first element - DUP ; CAR ; - PUSH nat 1 ; ASSERT_CMPEQ ; - DUP ; CAR 0 ; - PUSH nat 1 ; ASSERT_CMPEQ ; - - # Checking the second element - DUP ; CAR 1 ; - PUSH nat 4 ; ASSERT_CMPEQ ; - - # Checking the third element - DUP ; CAR 2 ; - PUSH nat 2 ; ASSERT_CMPEQ ; - - # Checking the last (fourth) element - DUP ; CDR 3 ; - UNIT ; ASSERT_CMPEQ ; - - DROP ; UNIT ; NIL operation ; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/compare.tz b/packages/taquito-michel-codec/test/contracts_008/macros/compare.tz deleted file mode 100644 index 698ef3e695..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/compare.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (pair mutez mutez); -storage (list bool); -code {CAR; DUP; DUP; DUP; DUP; DIIIIIP {NIL bool}; - DIIIIP {DUP; CAR; DIP {CDR}; COMPARE; LE; CONS}; - DIIIP {DUP; CAR; DIP {CDR}; COMPARE; GE; CONS}; - DIIP{DUP; CAR; DIP {CDR}; COMPARE; LT; CONS}; - DIP {DUP; CAR; DIP {CDR}; COMPARE; GT; CONS}; - DUP; CAR; DIP {CDR}; COMPARE; EQ; CONS; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/compare_bytes.tz b/packages/taquito-michel-codec/test/contracts_008/macros/compare_bytes.tz deleted file mode 100644 index 3b5e5a9c40..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/compare_bytes.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (pair bytes bytes); -storage (list bool); -code {CAR; DUP; DUP; DUP; DUP; DIIIIIP {NIL bool}; - DIIIIP {DUP; CAR; DIP {CDR}; COMPARE; LE; CONS}; - DIIIP {DUP; CAR; DIP {CDR}; COMPARE; GE; CONS}; - DIIP{DUP; CAR; DIP {CDR}; COMPARE; LT; CONS}; - DIP {DUP; CAR; DIP {CDR}; COMPARE; GT; CONS}; - DUP; CAR; DIP {CDR}; COMPARE; EQ; CONS; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/fail.tz b/packages/taquito-michel-codec/test/contracts_008/macros/fail.tz deleted file mode 100644 index 7f8bde2521..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/fail.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter unit; -storage unit; -code - { # This contract will never accept a incoming transaction - FAIL}; diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/guestbook.tz b/packages/taquito-michel-codec/test/contracts_008/macros/guestbook.tz deleted file mode 100644 index b362f94b95..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/guestbook.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter string; -storage (map address (option string)); - -code { UNPAIR @message @guestbook; SWAP; - DUP; SENDER; GET @previous_message; - ASSERT_SOME; - ASSERT_NONE; - SWAP; SOME; SOME; SENDER; UPDATE; - NIL operation; - PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/macro_annotations.tz b/packages/taquito-michel-codec/test/contracts_008/macros/macro_annotations.tz deleted file mode 100644 index f48f18e3d9..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/macro_annotations.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter unit; -storage (pair (unit %truc) unit); -code { DROP; UNIT ; UNIT ; PAIR %truc ; UNIT ; - DUUP @new_storage ; - DIP { DROP ; DROP } ; - NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/map_caddaadr.tz b/packages/taquito-michel-codec/test/contracts_008/macros/map_caddaadr.tz deleted file mode 100644 index 45509839cc..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/map_caddaadr.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter unit; -storage (pair (pair nat (pair nat (pair (pair (pair (nat %p) (mutez %value)) nat) nat))) nat); -code { MAP_CDADDAADR @new_storage %value { PUSH mutez 1000000 ; ADD } ; - NIL operation ; SWAP; SET_CAR }; diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/max_in_list.tz b/packages/taquito-michel-codec/test/contracts_008/macros/max_in_list.tz deleted file mode 100644 index 89c4955e93..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/max_in_list.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (list int); -storage (option int); -code {CAR; DIP{NONE int}; - ITER {SWAP; - IF_NONE {SOME} - {DIP {DUP}; DUP; DIP{SWAP}; - CMPLE; IF {DROP} {DIP {DROP}}; - SOME}}; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/min.tz b/packages/taquito-michel-codec/test/contracts_008/macros/min.tz deleted file mode 100644 index cedd835bba..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/min.tz +++ /dev/null @@ -1,11 +0,0 @@ - -parameter (pair int int); -storage int; -code { CAR; # Ignore the storage - DUP; # Duplicate so we can get both the numbers passed as parameters - DUP; # Second dup so we can access the lesser number - CAR; DIP{CDR}; # Unpack the numbers on top of the stack - CMPLT; # Compare the two numbers, placing a boolean on top of the stack - IF {CAR} {CDR}; # Access the first number if the boolean was true - NIL operation; # Return no op - PAIR} # Pair the numbers satisfying the calling convention diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/pair_macro.tz b/packages/taquito-michel-codec/test/contracts_008/macros/pair_macro.tz deleted file mode 100644 index 55c70a3be3..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/pair_macro.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter unit; -storage unit; -code { UNIT; UNIT; UNIT; UNIT; UNIT; - PAPAPAPAIR @name %x1 %x2 %x3 %x4 %x5; - CDDDAR %x4 @fourth; - DROP; CDR; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/set_caddaadr.tz b/packages/taquito-michel-codec/test/contracts_008/macros/set_caddaadr.tz deleted file mode 100644 index e98671e409..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/set_caddaadr.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter mutez; -storage (pair (pair nat (pair nat (pair (pair (pair (nat %p) (mutez %value)) nat) nat))) nat); -code { DUP ; CAR ; SWAP ; CDR ; - SET_CADDAADR @toplevel_pair_name %value ; - NIL operation ; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/take_my_money.tz b/packages/taquito-michel-codec/test/contracts_008/macros/take_my_money.tz deleted file mode 100644 index bb502d0418..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/take_my_money.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter key_hash; -storage unit; -code { CAR; IMPLICIT_ACCOUNT; # Create an account for the recipient of the funds - DIP{UNIT}; # Push a value of the storage type below the contract - PUSH mutez 1000000; # The person can have a ꜩ - UNIT; # Push the contract's argument type - TRANSFER_TOKENS; # Run the transfer - NIL operation; SWAP; CONS; - PAIR }; # Cleanup and put the return values diff --git a/packages/taquito-michel-codec/test/contracts_008/macros/unpair_macro.tz b/packages/taquito-michel-codec/test/contracts_008/macros/unpair_macro.tz deleted file mode 100644 index 384b6839d8..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/macros/unpair_macro.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (unit :param_unit); -storage (unit :u1); -code { DROP ; - UNIT :u4 @a4; UNIT :u3 @a3; UNIT :u2 @a2; UNIT :u1 @a1; - PAIR; UNPAIR @x1 @x2; - PPAIPAIR @p1 %x1 %x2 %x3 %x4; UNPPAIPAIR %x1 % %x3 %x4 @uno @due @tre @quattro; - PAPAPAIR @p2 %x1 %x2 %x3 %x4; UNPAPAPAIR @un @deux @trois @quatre; - PAPPAIIR @p3 %x1 %x2 %x3 %x4; UNPAPPAIIR @one @two @three @four; - DIP { DROP; DROP; DROP }; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/authentication.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/authentication.tz deleted file mode 100644 index 021bbd2636..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/authentication.tz +++ /dev/null @@ -1,30 +0,0 @@ -/* - -This contract is an example of using a cryptographic signature to -handle authentication. A public key is stored, and only the owner of -the secret key associated to this public key can interact with the -contract. She is allowed to perform any list of operations by sending -them wrapped in a lambda to the contract with a cryptographic -signature. - -To ensure that each signature is used only once and is not replayed by -an attacker, not only the lambda is signed but also the unique -identifier of the contract (a pair of the contract address and the -chain id) and a counter that is incremented at each successful call. - -More precisely, the signature should check against pack ((chain_id, -self) (param, counter)). - -*/ -parameter (pair (lambda unit (list operation)) signature); -storage (pair (nat %counter) key); -code - { - UNPPAIPAIR; - DUUUP; DUUP ; SELF; CHAIN_ID ; PPAIPAIR; PACK; - DIP { SWAP }; DUUUUUP ; DIP { SWAP }; - DUUUP; DIP {CHECK_SIGNATURE}; SWAP; IF {DROP} {FAILWITH}; - UNIT; EXEC; - DIP { PUSH nat 1; ADD }; - PAPAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_entrypoints.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_entrypoints.tz deleted file mode 100644 index d49e625716..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_entrypoints.tz +++ /dev/null @@ -1,31 +0,0 @@ -storage - (pair (big_map string nat) (big_map string nat)) ; -parameter - (or (unit %default) - (or (or %mem (string %mem_left) (string %mem_right)) - (or (or %add (pair %add_left string nat) (pair %add_right string nat)) - (or %rem (string %rem_left) (string %rem_right))))) ; -code { UNPAIR ; - IF_LEFT - { DROP ; - DUP ; CAR ; - PUSH mutez 0 ; - NONE key_hash ; - CREATE_CONTRACT - { parameter string ; - storage (big_map string nat) ; - code { UNPAIR ; DROP ; NIL operation ; PAIR }} ; - DIP { DROP } ; - NIL operation ; SWAP ; CONS ; PAIR } - { IF_LEFT - { IF_LEFT - { DIP { UNPAIR } ; DIP { DUP } ; MEM ; ASSERT } - { DIP { UNPAIR ; SWAP } ; DIP { DUP } ; MEM ; ASSERT ; SWAP } } - { IF_LEFT - { IF_LEFT - { UNPAIR ; DIIP { UNPAIR } ; DIP { SOME } ; UPDATE } - { UNPAIR ; DIIP { UNPAIR ; SWAP } ; DIP { SOME } ; UPDATE ; SWAP } } - { IF_LEFT - { DIP { UNPAIR } ; DIP { NONE nat } ; UPDATE } - { DIP { UNPAIR ; SWAP } ; DIP { NONE nat } ; UPDATE ; SWAP } } } ; - PAIR ; NIL operation ; PAIR } } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_magic.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_magic.tz deleted file mode 100644 index f4e36f639b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_magic.tz +++ /dev/null @@ -1,41 +0,0 @@ -# this contracts handles two big_maps -storage - (or (pair (big_map string string) (big_map string string)) unit) ; -parameter - # it has 5 entry points - # swap: swaps the two maps. - (or (unit %swap) - # reset: resets storage, either to a new pair of maps, or to unit - (or (or %reset (pair (big_map string string) (big_map string string)) unit) - # import: drops the existing storage and creates two maps - # from the given lists of string pairs. - (or (pair %import (list (pair string string)) (list (pair string string))) - # add: adds the given list of key - value pairs into the - # first map - (or (list %add (pair string string)) - # rem: removes the given list of key - value pairs - # from the first map - (list %rem string))))) ; -code { UNPAIR ; - IF_LEFT - { DROP ; ASSERT_LEFT ; UNPAIR ; SWAP ; PAIR ; LEFT unit } - { IF_LEFT - { SWAP ; DROP } - { IF_LEFT - { DIP { ASSERT_RIGHT ; DROP } ; - UNPAIR ; - DIP { EMPTY_BIG_MAP string string } ; - ITER { UNPAIR ; DIP { SOME } ; UPDATE } ; - SWAP ; - DIP { EMPTY_BIG_MAP string string } ; - ITER { UNPAIR ; DIP { SOME } ; UPDATE } ; - SWAP ; - PAIR ; LEFT unit } - { IF_LEFT - { DIP { ASSERT_LEFT ; UNPAIR } ; - ITER { UNPAIR ; DIP { SOME } ; UPDATE } ; - PAIR ; LEFT unit } - { DIP { ASSERT_LEFT ; UNPAIR } ; - ITER { DIP { NONE string } ; UPDATE } ; - PAIR ; LEFT unit } }} } ; - NIL operation ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_read.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_read.tz deleted file mode 100644 index 60d666e28f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_read.tz +++ /dev/null @@ -1,9 +0,0 @@ -storage (nat); -parameter (big_map nat nat); -code { CAR; - PUSH nat 1; - GET; - ASSERT_SOME; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_store.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_store.tz deleted file mode 100644 index 4dc68145a6..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_store.tz +++ /dev/null @@ -1,8 +0,0 @@ -storage (big_map nat nat); -parameter (unit); -code { DROP; - EMPTY_BIG_MAP nat nat; - NIL operation; - PAIR; - } - diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_write.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_write.tz deleted file mode 100644 index bde3b19baa..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/big_map_write.tz +++ /dev/null @@ -1,10 +0,0 @@ -storage (unit); -parameter (big_map nat nat); -code { UNPAIR ; - PUSH (option nat) (Some 1); - PUSH nat 1; - UPDATE; - DROP; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/create_contract.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/create_contract.tz deleted file mode 100644 index 0d09a1fdfc..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/create_contract.tz +++ /dev/null @@ -1,33 +0,0 @@ -/* -- param: None: - - Create a contract then perform a recursive call on Some [addr] where - [addr] is the address of the newly created contract. - - The created contract simply stores its parameter (a string). It is - initialized with the storage "dummy" and has an initial balance of - 100tz. It has no delegate so these 100tz are totally frozen. - -- param: Some [addr]: - - Check that the sender is self, call the contract at address [addr] - with param "abcdefg" transferring 0tz. - -*/ -parameter (option address) ; -storage unit ; -code { CAR ; - IF_NONE - { PUSH string "dummy" ; - PUSH mutez 100000000 ; NONE key_hash ; - CREATE_CONTRACT - { parameter string ; - storage string ; - code { CAR ; NIL operation ; PAIR } } ; - DIP { SOME ; DIP { SELF ; PUSH mutez 0 } ; TRANSFER_TOKENS ; - NIL operation ; SWAP ; CONS } ; - CONS ; UNIT ; SWAP ; PAIR } - { SELF ; ADDRESS ; SENDER ; IFCMPNEQ { FAIL } {} ; - CONTRACT string ; IF_SOME {} { FAIL } ; - PUSH mutez 0 ; PUSH string "abcdefg" ; TRANSFER_TOKENS ; - NIL operation; SWAP; CONS ; UNIT ; SWAP ; PAIR } } ; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/create_contract_simple.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/create_contract_simple.tz deleted file mode 100644 index 2a5185d748..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/create_contract_simple.tz +++ /dev/null @@ -1,14 +0,0 @@ -parameter unit; -storage unit; -code { CAR; - PUSH string "foo"; - PUSH mutez 0; - NONE key_hash; - CREATE_CONTRACT - { parameter string ; - storage string ; - code { CAR ; NIL operation ; PAIR } } ; - DROP; DROP; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/default_account.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/default_account.tz deleted file mode 100644 index 74e7693d7b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/default_account.tz +++ /dev/null @@ -1,9 +0,0 @@ -/* -Send 100 tz to the implicit account given as parameter. -*/ - -parameter key_hash; -storage unit; -code {DIP{UNIT}; CAR; IMPLICIT_ACCOUNT; - PUSH mutez 100000000; UNIT; TRANSFER_TOKENS; - NIL operation; SWAP; CONS; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/groth16.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/groth16.tz deleted file mode 100644 index 66ff23a5e7..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/groth16.tz +++ /dev/null @@ -1,74 +0,0 @@ -# The contract returns if the proof verifies, and fails otherwise. -# The verifying key, proof, and inputs are generated from -# ZoKrates, modified to use BLS12-381. -# The circuit proves knowledge of a square root of 113569. -storage unit; - -# The parameter is a pair consisting of: -# * A pair of Fr element inputs, x and y -# * A proof, consisting of -# * G1 points `a` and `c` -# * G2 point `b` -parameter (pair (pair (bls12_381_fr %input_x) (bls12_381_fr %input_y)) - (pair (pair (bls12_381_g1 %proof_a) (bls12_381_g2 %proof_b)) - (bls12_381_g1 %proof_c))); - -code - { - # Discard storage and unpair. Result stack should be - # input{x:y} : proof{a:b:c}. - CAR; UNPPAIPPAIIR; - - # Push the verifying key. Result stack should be - # input{x:y} - # : proof{a:b:c} - # : vk_{a:b:gamma:delta:gamma_{a:b:c}} - DIP 5 - { - PUSH @vk_gamma_c bls12_381_g1 0x063bd6e11e2fcaac1dd8cf68c6b1925a73c3c583e298ed37c41c3715115cf96358a42dbe85a0228cbfd8a6c8a8c54cd015b5ae2860d1cc47f84698d951f14d9448d03f04df2ca0ffe609a2067d6f1a892163a5e05e541279134cae52b1f23c6b; - - PUSH @vk_gamma_b bls12_381_g1 0x11f5b5db1da7f1f26217edcce2219d016003af6e5b4d1ca3ad0ff477e354717e658bf16beddc4f4fb76ce39d3327811e0601709dc7ed98c70463cfa1ba33f99851b52b51d1a042d7425bec6277287441c399973632445ce61e7fdd63a70f0f60; - - PUSH @vk_gamma_a bls12_381_g1 0x03535a322edd23c55b0ca025e54d450d95df49cc9ee873dcd500e8219f4771264bf159b3b105954d85c7bea8ffe1ea0400c767fe58989366c2837fba76f1b4f46644f19be8ad01e22d894b649e427e0d7e04677ee3919d982f0f96bb0a2f0c34; - - PUSH @vk_delta bls12_381_g2 0x10c6d5cdca84fc3c7f33061add256f48e0ab03a697832b338901898b650419eb6f334b28153fb73ad2ecd1cd2ac67053161e9f46cfbdaf7b1132a4654a55162850249650f9b873ac3113fa8c02ef1cd1df481480a4457f351d28f4da89d19fa405c3d77f686dc9a24d2681c9184bf2b091f62e6b24df651a3da8bd7067e14e7908fb02f8955b84af5081614cb5bc49b416d9edf914fc608c441b3f2eb8b6043736ddb9d4e4d62334a23b5625c14ef3e1a7e99258386310221b22d83a5eac035c; - - PUSH @vk_gamma bls12_381_g2 0x16dcbd28bff336c2649c7dd1d8391ac7ce6f7ef0124a9db7a4a485a124199eded7ce963c1c18aee1eca9994fe06f192c00e0fb653e1fc737d8d0e2f2f91424ca01f6e6e7c5c04f1c43db03a2900cf6b942aaed6ae77daea6200e094b78c38d770028d531a9d1a118ec23d5a39be7aa6dc28f778da1988856d2235c4a35e81fa48380f050d4baf7ebd7b5e058bf294da916afc34562f097c02a8fcbcf62a00de44f8ae6cfa7acb8ad254e3aeea8b2af12f65b7ee0f54855cb9bd432f3436f238f; - - PUSH @vk_b bls12_381_g2 0x0e9383f98df2c6e8b5b45f3876c3384596a0cdbc41349f83c4380bf463a050cdbd1d5057aa483a642e66486d1ed7362a1869e423c3877095e215c17282b11108601166f928043254bbce603bf86f4cec9f2e97e9660e98e4f5bce9b2b3bbacb40946b702ccfcc9a31e0bfc1543a2128edcc95807740a2310ae25eb47b935648e392c58dfae5b5e899d3b970d64e4e9e209741ea8bfedcfcc16b3fd890ff02c788ec0943feaaf01bbb354317acb85fcfd611133e4e563d53ca4e0f50e21cf2e7e; - - PUSH @vk_a bls12_381_g1 0x1040577c7d349e332735fc947c868c24a665f812f5dc1e7f60e65e2df80be2267a4b7341ed2287285fccd517acd96d910abba947235c364553aa6445f2f2b3a1a728225a330286ba5197ab87f0edc560d89fc7b623812f7d0d633341726e597a - }; - - # Compute vk_x as - # (vk_gamma_b * input_x) + (vk_gamma_c * input_y) + vk_gamma_a - # Result stack should be - # vk_x - # : input{x:y} - # : proof{a:b:c} - # : vk_{a:b:gamma:delta:gamma_{a:b:c}} - DUP; DUP 12; MUL; - DUP 3; DUP 14; MUL; - ADD; DUP 11; ADD @vk_x; - - # Push the list for the pairing check. The list should be - # [ (proof_a, proof_b); - # (-vk_x, vk_gamma); - # (-proof_c, vk_delta); - # (-vk_a, vk_b) ] - NIL (pair bls12_381_g1 bls12_381_g2); - DUP 9; DUP 9; NEG; PAIR; CONS; - DUP 11; DUP 8; NEG; PAIR; CONS; - DUP 10; DUP 3; NEG; PAIR; CONS; - DUP 6; DUP 6; PAIR; CONS; - - # Compute the pairing check and fail if it doesn't succeed - PAIRING_CHECK; ASSERT; - - # Drop the stack - DROP 13; - - # return no operations - UNIT; NIL operation; PAIR - - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/hardlimit.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/hardlimit.tz deleted file mode 100644 index 464062a521..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/hardlimit.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter unit ; -storage int ; -code { # This contract stops accepting transactions after N incoming transactions - CDR ; DUP ; PUSH int 0 ; CMPLT; IF {PUSH int -1 ; ADD} {FAIL}; - NIL operation ; PAIR} ; diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/lockup.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/lockup.tz deleted file mode 100644 index a8ff43aa0f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/lockup.tz +++ /dev/null @@ -1,19 +0,0 @@ -parameter unit; -storage (pair timestamp (pair mutez address)); -code { CDR; # Ignore the parameter - DUP; # Duplicate the storage - CAR; # Get the timestamp - NOW; # Push the current timestamp - CMPLT; # Compare to the current time - IF {FAIL} {}; # Fail if it is too soon - DUP; # Duplicate the storage value - # this must be on the bottom of the stack for us to call transfer tokens - CDR; # Ignore the timestamp, focussing in on the transfer data - DUP; # Duplicate the transfer information - CAR; # Get the amount of the transfer on top of the stack - DIP{CDR}; # Put the contract underneath it - DIP { CONTRACT unit ; ASSERT_SOME } ; - UNIT; # Put the contract's argument type on top of the stack - TRANSFER_TOKENS; # Emit the transfer - NIL operation; SWAP; CONS;# Make a singleton list of internal operations - PAIR} # Pair up to meet the calling convention diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/multiple_en2.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/multiple_en2.tz deleted file mode 100644 index a1acafd487..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/multiple_en2.tz +++ /dev/null @@ -1,77 +0,0 @@ -{ parameter unit ; - storage (option address) ; - code { SENDER ; - SELF ; - ADDRESS ; - { COMPARE ; - EQ ; - IF { CDR ; - { IF_NONE { { UNIT ; FAILWITH } } {} } ; - DIP { NIL operation } ; - DUP ; - CONTRACT %add unit ; - { IF_NONE {} { { UNIT ; FAILWITH } } } ; - DUP ; - CONTRACT %fact nat ; - { IF_NONE {} { { UNIT ; FAILWITH } } } ; - DUP ; - CONTRACT %add nat ; - { IF_NONE { { UNIT ; FAILWITH } } {} } ; - PUSH mutez 0 ; - PUSH nat 12 ; - TRANSFER_TOKENS ; - SWAP ; - DIP { CONS } ; - DUP ; - CONTRACT unit ; - { IF_NONE { { UNIT ; FAILWITH } } {} } ; - PUSH mutez 0 ; - PUSH unit Unit ; - TRANSFER_TOKENS ; - SWAP ; - DIP { CONS } ; - DUP ; - CONTRACT %sub nat ; - { IF_NONE { { UNIT ; FAILWITH } } {} } ; - PUSH mutez 0 ; - PUSH nat 3 ; - TRANSFER_TOKENS ; - SWAP ; - DIP { CONS } ; - DUP ; - CONTRACT %add nat ; - { IF_NONE { { UNIT ; FAILWITH } } {} } ; - PUSH mutez 0 ; - PUSH nat 5 ; - TRANSFER_TOKENS ; - SWAP ; - DIP { CONS } ; - DROP ; - DIP { NONE address } ; - PAIR } - { CAR ; - DUP ; - DIP { DIP { PUSH int 0 ; PUSH mutez 0 ; NONE key_hash } ; - DROP ; - CREATE_CONTRACT - { parameter (or (or (nat %add) (nat %sub)) (unit %default)) ; - storage int ; - code { AMOUNT ; - PUSH mutez 0 ; - { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } ; - { { DUP ; CAR ; DIP { CDR } } } ; - IF_LEFT - { IF_LEFT { ADD } { SWAP ; SUB } } - { DROP ; DROP ; PUSH int 0 } ; - NIL operation ; - PAIR } } } ; - DIP { SELF ; PUSH mutez 0 } ; - TRANSFER_TOKENS ; - NIL operation ; - SWAP ; - CONS ; - SWAP ; - CONS ; - DIP { SOME } ; - PAIR } } - } } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/multiple_entrypoints_counter.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/multiple_entrypoints_counter.tz deleted file mode 100644 index 7401906971..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/multiple_entrypoints_counter.tz +++ /dev/null @@ -1,29 +0,0 @@ -{ parameter unit ; - storage (option address) ; - code { SENDER ; SELF ; ADDRESS ; - IFCMPEQ - { CDR ; ASSERT_SOME ; - DIP { NIL operation } ; - DUP ; CONTRACT %add unit ; ASSERT_NONE ; - DUP ; CONTRACT %fact nat ; ASSERT_NONE ; - DUP ; CONTRACT %add nat ; ASSERT_SOME ; PUSH mutez 0 ; PUSH nat 12 ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; - DUP ; CONTRACT unit ; ASSERT_SOME ; PUSH mutez 0 ; PUSH unit Unit ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; - DUP ; CONTRACT %sub nat ; ASSERT_SOME ; PUSH mutez 0 ; PUSH nat 3 ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; - DUP ; CONTRACT %add nat ; ASSERT_SOME ; PUSH mutez 0 ; PUSH nat 5 ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; - DROP ; DIP { NONE address } ; PAIR } - { CAR ; DUP ; - DIP - { DIP { PUSH int 0 ; PUSH mutez 0 ; NONE key_hash } ; - DROP ; - CREATE_CONTRACT - { parameter (or (or (nat %add) (nat %sub)) (unit %default)) ; - storage int ; - code { AMOUNT ; PUSH mutez 0 ; ASSERT_CMPEQ ; - UNPAIR ; - IF_LEFT - { IF_LEFT { ADD } { SWAP ; SUB } } - { DROP ; DROP ; PUSH int 0 } ; - NIL operation ; PAIR } } } ; - DIP { SELF ; PUSH mutez 0 } ; TRANSFER_TOKENS ; - NIL operation ; SWAP ; CONS ; SWAP ; CONS ; - DIP { SOME } ; PAIR } } } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/parameterized_multisig.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/parameterized_multisig.tz deleted file mode 100644 index 16f785ae0a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/parameterized_multisig.tz +++ /dev/null @@ -1,24 +0,0 @@ -storage (pair bool (pair (map nat (pair bool bool)) (pair key key))); -parameter (or nat (pair signature nat)); -code { DUP; CAR; DIP{CDDR}; # Stack tangling - IF_LEFT { DIP{DUP; CAR}; GET; # Get the value stored for that index - IF_NONE { PUSH bool False} # If not referenced, reject - { DUP; CAR; DIP{CDR}; AND}; - PAIR} - { DUP; CAR; DIP{CDR; DUP; PACK ; BLAKE2B}; PAIR; SWAP; # Create the signature pair - DIP{ DIP{DUP; CDR; DIP{CAR}; DUP}; - SWAP; CAR; DIP{DUP; UNPAIR}; CHECK_SIGNATURE }; # Check the first signature - SWAP; - # If the signature typechecked, get and update the first element of the pair - IF { DIP{DROP; SWAP; DUP}; DUP; - DIP{ GET; IF_NONE{PUSH (pair bool bool) (Pair False False)} {}; - CDR; PUSH bool True; PAIR; SOME }} - # Check the second signature - { DIP{DIP{DUP; CDR}; SWAP; DIP {UNPAIR}; CHECK_SIGNATURE}; SWAP; - IF { DUP; DIP{DIP{SWAP; DUP}; GET}; SWAP; - IF_NONE {PUSH (pair bool bool) (Pair False False)} {}; - CAR; PUSH bool True; SWAP; PAIR; SOME; SWAP} - {FAIL}}; - # Update the stored value and finish off - UPDATE; PAIR; PUSH bool False; PAIR}; - NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/replay.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/replay.tz deleted file mode 100644 index 73ac145aba..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/replay.tz +++ /dev/null @@ -1,7 +0,0 @@ -# This contract always fail because it tries to execute twice the same operation -parameter unit ; -storage unit ; -code { CDR ; NIL operation ; - SELF ; PUSH mutez 0 ; UNIT ; TRANSFER_TOKENS ; - DUP ; DIP { CONS } ; CONS ; - PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/reveal_signed_preimage.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/reveal_signed_preimage.tz deleted file mode 100644 index 1a7e97eb8a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/reveal_signed_preimage.tz +++ /dev/null @@ -1,13 +0,0 @@ -parameter (pair bytes signature) ; -storage (pair bytes key) ; -code { - #check that sha256(param.bytes) == storage.bytes - DUP ; UNPAIR ; CAR; SHA256; DIP { CAR } ; ASSERT_CMPEQ ; - - # check that the sig is a valid signature of the preimage - DUP ; UNPAIR ; SWAP ; DIP { UNPAIR ; SWAP } ; CDR ; CHECK_SIGNATURE ; ASSERT ; - - # send all our tokens to the implicit account corresponding to the stored public key - CDR ; DUP ; CDR ; HASH_KEY ; IMPLICIT_ACCOUNT ; - BALANCE ; UNIT ; TRANSFER_TOKENS ; - NIL operation ; SWAP ; CONS ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/self_address_receiver.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/self_address_receiver.tz deleted file mode 100644 index 6ebda8daad..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/self_address_receiver.tz +++ /dev/null @@ -1,12 +0,0 @@ -# See self_address_sender.tz -parameter (lambda unit address); -storage unit; -code { - UNPAIR; - UNIT; - EXEC; - SELF_ADDRESS; - ASSERT_CMPEQ; - NIL operation; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/self_address_sender.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/self_address_sender.tz deleted file mode 100644 index b0f74073c2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/self_address_sender.tz +++ /dev/null @@ -1,17 +0,0 @@ -# This tests that the SELF_ADDRESS inside a lambda returns the address -# of the contract executing the lambda (not the contract defining it). -# To do so, two contracts called the sender and the receiver are used. -# The sender (this contract) sends the lambda { DROP; SELF_ADDRESS } -# to the receiver (see self_address_receiver.tz) who checks that the -# returned value is the same as its SELF_ADDRESS. -parameter (contract (lambda unit address)); -storage unit; -code { - CAR; - BALANCE; - LAMBDA unit address { DROP; SELF_ADDRESS }; - TRANSFER_TOKENS; - DIP { UNIT; NIL operation }; - CONS; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_builder_fungible.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_builder_fungible.tz deleted file mode 100644 index 674ae80077..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_builder_fungible.tz +++ /dev/null @@ -1,40 +0,0 @@ -## A simple fungible token contract implemented using tickets of type -## [ticket unit]. - -## To store and transfer the tokens see ticket_wallet_fungible.tz - -## For non-fungible tokens, see ticket_builder_non_fungible.tz - -parameter (or (ticket %burn unit) (pair %mint (contract %destination (ticket unit)) (nat %amount))); -storage address; -code - { - AMOUNT; PUSH mutez 0; ASSERT_CMPEQ; - - UNPAIR; - IF_LEFT - { - # Burn entrypoint - - # Check that the ticket is ticketed by ourselves - READ_TICKET; CAR; SELF_ADDRESS; ASSERT_CMPEQ; - - # Drop the ticket - DROP; - - # Finish - NIL operation - } - { - # Mint entrypoint - - # Authenticate SENDER - DUP @manager 2; SENDER; ASSERT_CMPEQ; - - UNPAIR; - SWAP; UNIT; TICKET; - PUSH mutez 0; SWAP; TRANSFER_TOKENS; - NIL operation; SWAP; CONS - }; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_builder_non_fungible.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_builder_non_fungible.tz deleted file mode 100644 index ae669d17ad..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_builder_non_fungible.tz +++ /dev/null @@ -1,47 +0,0 @@ -## A simple non-fungible token contract implemented using tickets of -## type [ticket nat] with amounts of 1. - -## To store and transfer the tokens see ticket_wallet_non_fungible.tz - -## For fungible tokens, see ticket_builder_fungible.tz - -parameter (or (ticket %burn nat) (contract %mint_destination (ticket nat))); -storage (pair (address %manager) (nat %counter)); -code - { - AMOUNT; PUSH mutez 0; ASSERT_CMPEQ; - - UNPAIR 3; - IF_LEFT - { - # Burn entrypoint - - # Check that the ticket is ticketed by ourselves - READ_TICKET; CAR; SELF_ADDRESS; ASSERT_CMPEQ; - - # Drop the ticket - DROP; - - # Finish - NIL operation - } - { - # Mint entrypoint - - # Authenticate SENDER - DUP @manager 2; SENDER; ASSERT_CMPEQ; - - # Mint the token - PUSH @amount nat 1; - DUP @counter 4; - TICKET; - - # Send it - PUSH mutez 0; SWAP; TRANSFER_TOKENS; - NIL operation; SWAP; CONS; - - # Increment counter - DIP 2 {PUSH nat 1; ADD}; - }; - PAIR 3 - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_wallet_fungible.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_wallet_fungible.tz deleted file mode 100644 index d04180ddb8..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_wallet_fungible.tz +++ /dev/null @@ -1,88 +0,0 @@ -## A simple wallet for fungible tokens implemented using tickets of -## type [ticket unit]. - -## For actually minting or burning the tokens, see ticket_builder_fungible.tz - -## For non-fungible tokens, see ticket_wallet_non_fungible.tz - -parameter (or (ticket %receive unit) (pair %send (contract %destination (ticket unit)) (nat %amount) (address %ticketer))); -storage (pair (address %manager) (big_map %tickets address (ticket unit))); -code - { - AMOUNT; PUSH mutez 0; ASSERT_CMPEQ; - - UNPAIR 3; - IF_LEFT - { - # Receive entrypoint - - # Get the ticketer - READ_TICKET; CAR @ticketer; DUP; - - # Extract the associated ticket, if any, from the stored big map - DIG 4; - NONE (ticket unit); - DIG 2; - GET_AND_UPDATE; - - # Join it with the parameter - IF_SOME - { - DIG 3; - PAIR; - JOIN_TICKETS; - ASSERT_SOME - } - { DIG 2 }; - SOME; - DIG 2; - GET_AND_UPDATE; - ASSERT_NONE; - SWAP; - PAIR; - NIL operation - } - { - # Send entrypoints - - # Authenticate SENDER - DUP @manager 2; SENDER; ASSERT_CMPEQ; - - UNPAIR 3; - - # Get the ticket associated to the requested ticketer - DIG 4; - NONE (ticket unit); - DUP @ticketer 5; - GET_AND_UPDATE; - ASSERT_SOME; - - # Substract the requested amount - READ_TICKET; - GET @total_amount 4; - DUP @amount 5; - SWAP; SUB; ISNAT; ASSERT_SOME @remaining_amount; - - # Split the ticket - DIG 4; PAIR; SWAP; SPLIT_TICKET; - ASSERT_SOME; UNPAIR @to_send @to_keep; - - # Store the ticket to keep - DUG 5; - SOME; - DIG 3; - GET_AND_UPDATE; - ASSERT_NONE; - DIG 2; PAIR; - - # Send the ticket - SWAP; - PUSH mutez 0; - DIG 3; - TRANSFER_TOKENS; - NIL operation; - SWAP; - CONS; - }; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_wallet_non_fungible.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_wallet_non_fungible.tz deleted file mode 100644 index ba0170ae83..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/ticket_wallet_non_fungible.tz +++ /dev/null @@ -1,61 +0,0 @@ -## A simple wallet for non-fungible tokens implemented using tickets -## of type [ticket nat]. - -## For each nat [n], the ticketer is assumed to produce at most one -## ticket containing [n] and to always use amounts of exactly one. - -## For fungible tokens, see ticket_wallet_fungible.tz - -parameter (or (ticket %receive nat) (pair %send (contract %destination (ticket nat)) (address %ticketer) (nat %id))); -storage (pair (address %manager) (big_map %tickets (pair address nat) (ticket nat))); -code - { - AMOUNT; PUSH mutez 0; ASSERT_CMPEQ; - - UNPAIR 3; - IF_LEFT - { - # Receive entrypoint - - # Get the ticketer and id - READ_TICKET; CAST (pair (address %ticketer) (nat %id) (nat %amount)); - UNPAIR 3; - DIG 2; PUSH nat 1; ASSERT_CMPEQ; # This checks that the amount is 1 - PAIR; - - # Extract the associated ticket, if any, from the stored big map - DIP {SOME; DIP {SWAP}}; - GET_AND_UPDATE; - ASSERT_NONE; - - SWAP; - PAIR; - NIL operation - } - { - # Send entrypoints - - # Authenticate SENDER - DUP @manager 2; SENDER; ASSERT_CMPEQ; - - UNPAIR; - - # Get the ticket associated to the requested ticketer and id - DIG 3; - NONE (ticket nat); - DIG 3; - GET_AND_UPDATE; - ASSERT_SOME; - - SWAP; DIG 3; PAIR; DUG 2; - - # Send the ticket - PUSH mutez 0; - SWAP; - TRANSFER_TOKENS; - NIL operation; - SWAP; - CONS; - }; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/vote_for_delegate.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/vote_for_delegate.tz deleted file mode 100644 index 1155c073f5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/vote_for_delegate.tz +++ /dev/null @@ -1,30 +0,0 @@ -parameter (option key_hash) ; -storage (pair - (pair %mgr1 (address %addr) (option %key key_hash)) - (pair %mgr2 (address %addr) (option %key key_hash))) ; -code { # Update the storage - DUP ; CDAAR %addr @%; SENDER ; PAIR %@ %@; UNPAIR; - IFCMPEQ - { UNPAIR ; SWAP ; SET_CADR %key @changed_mgr1_key } - { DUP ; CDDAR ; SENDER ; - IFCMPEQ - { UNPAIR ; SWAP ; SET_CDDR %key } - { FAIL } } ; - # Now compare the proposals - DUP ; CADR ; - DIP { DUP ; CDDR } ; - IF_NONE - { IF_NONE - { NONE key_hash ; - SET_DELEGATE ; NIL operation ; SWAP ; CONS } - { DROP ; NIL operation } } - { SWAP ; - IF_SOME - { DIP { DUP } ; - IFCMPEQ - { SOME ; - SET_DELEGATE ; NIL operation ; SWAP ; CONS } - { DROP ; - NIL operation }} - { DROP ; NIL operation }} ; - PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/weather_insurance.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/weather_insurance.tz deleted file mode 100644 index e7e99e0183..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/weather_insurance.tz +++ /dev/null @@ -1,19 +0,0 @@ -parameter (pair (signature %signed_weather_data) (nat :rain %actual_level)); -# (pair (under_key over_key) (pair weather_service_key (pair rain_level days_in_future))) -storage (pair (pair (address %under_key) - (address %over_key)) - (pair (nat :rain %rain_level) (key %weather_service_key))); -code { DUP; DUP; - CAR; MAP_CDR{PACK ; BLAKE2B}; - SWAP; CDDDR %weather_service_key; - DIP {UNPAIR} ; CHECK_SIGNATURE @sigok; # Check if the data has been correctly signed - ASSERT; # If signature is not correct, end the execution - DUP; DUP; DUP; DIIIP{CDR %storage}; # Place storage type on bottom of stack - DIIP{CDAR}; # Place contracts below numbers - DIP{CADR %actual_level}; # Get actual rain - CDDAR %rain_level; # Get rain threshold - CMPLT; IF {CAR %under_key} {CDR %over_key}; # Select contract to receive tokens - CONTRACT unit ; ASSERT_SOME ; - BALANCE; UNIT ; TRANSFER_TOKENS @trans.op; # Setup and execute transfer - NIL operation ; SWAP ; CONS ; - PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/xcat.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/xcat.tz deleted file mode 100644 index 83e6c7ac1d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/xcat.tz +++ /dev/null @@ -1,48 +0,0 @@ -parameter (bytes); -storage (unit); -code { - # Extract parameter from initial stack. - CAR @preimage; - DIP { - # Push contract constants to the stack. - # - # There's a temptation to use @storage to parametrize - # a contract but, in general, there's no reason to encumber - # @storage with immutable values. - PUSH @from key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; #changeme - IMPLICIT_ACCOUNT ; - PUSH @to key_hash "tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN"; #changeme - IMPLICIT_ACCOUNT ; - PUSH @target_hash bytes 0x123456; #changeme - PUSH @deadline timestamp "2018-08-08 00:00:00Z"; #changeme - }; - # Test if the deadline has passed. - SWAP; NOW; - IFCMPLT - # In case the deadline did pass: - { - # Ignore parameter, just transfer xtz balance back to @from - DROP; DROP; DROP; BALANCE; UNIT; TRANSFER_TOKENS; - } - # In case the deadline hasn't passed yet: - { - # Test length of parameter. - DUP; SIZE; - PUSH @max_length nat 32; - IFCMPLT - { PUSH string "preimage too long"; FAILWITH; } - { - # Test if it's a preimage of @target_hash. - SHA256 @candidate_hash; - IFCMPNEQ - { PUSH string "invalid preimage"; FAILWITH; } - { - # Transfer xtz balance to @to. - BALANCE; UNIT; TRANSFER_TOKENS; DIP { DROP }; - }; - }; - }; - # Transform single operation into a list. - NIL operation; SWAP; CONS; - UNIT; SWAP; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/xcat_dapp.tz b/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/xcat_dapp.tz deleted file mode 100644 index 86ca62c5ac..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/mini_scenarios/xcat_dapp.tz +++ /dev/null @@ -1,79 +0,0 @@ -parameter (or - # First possible action is funding, to create an xcat - (pair %fund - (address %dest) - (pair %settings (bytes %target_hash) (timestamp %deadline))) - - # Other possible action is to claim the tokens (or ask a refund) - (or %claim_refund - (bytes %preimage_claim) - (bytes %refund_hash))); - -storage (pair - (big_map - bytes # The target hash is used as a key - (pair - # We store in %from the person who funded the xcat - (pair %recipients (address %from) (address %dest)) - (pair %settings (mutez %amount) (timestamp %deadline))) - ) - unit); - -code { - NIL @operations operation; SWAP; - UNPAPAIR @% @% @%; DIP {DUP}; - IF_LEFT # Let's fund a new xcat! - { - # Unpack the parameters - UNPAIR @% @%; - # Assert that the destination address is of type unit. - # This costs a bit more gas but limits foot-shooting. - DUP; CONTRACT @dest unit; ASSERT_SOME; DROP; - SWAP; UNPAIR @% @%; - DIP - { - AMOUNT @amount; - SENDER; - DUP; CONTRACT @from unit; ASSERT_SOME; DROP; - DIP { PAIR; SWAP; }; PAIR; PAIR; SOME @xcat; - SWAP; - }; - DUP; DIP { MEM; NOT; ASSERT }; # Assert that this target hash isn't already in the map - UPDATE; PAIR @new_storage; SWAP; PAIR; - } - { - # Let's process a claim or a refund - IF_LEFT - { # It's a claim! - DUP; SIZE; PUSH nat 32; ASSERT_CMPGE; - SHA256 @hash; DUP; DIP {SWAP}; - DIIP { - GET; ASSERT_SOME; - # Check deadline and prepare transaction. - DUP; CADR @%; CONTRACT @dest unit; ASSERT_SOME; - SWAP; CDR @%; - UNPAIR @% @%; SWAP; - # The deadline must not have passed - NOW; ASSERT_CMPLT; - # prepare transaction - UNIT; TRANSFER_TOKENS; - }; - } - { # It's a refund! - DUP; - DIP - { - GET; ASSERT_SOME; - DUP; CAAR @%; CONTRACT @from unit; ASSERT_SOME; SWAP; CDR; - UNPAIR @% @%; SWAP; - # The deadline must not HAVE passed - NOW; ASSERT_CMPGE; - UNIT; TRANSFER_TOKENS; SWAP; - }; - }; - # Clear the big map - NONE @none (pair (pair address address) (pair mutez timestamp)); - SWAP; UPDATE @cleared_map; SWAP; DIP { PAIR; SWAP }; - CONS; PAIR; - } - } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/abs.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/abs.tz deleted file mode 100644 index d03d0883fe..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/abs.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter nat; -storage unit; -code { CAR; - DUP; NEG; ABS; COMPARE; ASSERT_EQ; - UNIT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/add.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/add.tz deleted file mode 100644 index cbefea08a7..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/add.tz +++ /dev/null @@ -1,25 +0,0 @@ -parameter unit; -storage unit; -code - { - CAR; - - PUSH int 2; PUSH int 2; ADD; PUSH int 4; ASSERT_CMPEQ; - PUSH int 2; PUSH int 2; ADD; PUSH int 4; ASSERT_CMPEQ; - PUSH int 2; PUSH nat 2; ADD; PUSH int 4; ASSERT_CMPEQ; - PUSH nat 2; PUSH int 2; ADD; PUSH int 4; ASSERT_CMPEQ; - PUSH nat 2; PUSH nat 2; ADD; PUSH nat 4; ASSERT_CMPEQ; - - # Offset a timestamp by 60 seconds - PUSH int 60; PUSH timestamp "2019-09-09T12:08:37Z"; ADD; - PUSH timestamp "2019-09-09T12:09:37Z"; ASSERT_CMPEQ; - - PUSH timestamp "2019-09-09T12:08:37Z"; PUSH int 60; ADD; - PUSH timestamp "2019-09-09T12:09:37Z"; ASSERT_CMPEQ; - - PUSH mutez 1000; PUSH mutez 1000; ADD; - PUSH mutez 2000; ASSERT_CMPEQ; - - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_fr.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_fr.tz deleted file mode 100644 index e7b60dedc9..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_fr.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bls12_381_fr bls12_381_fr); -storage (option (bls12_381_fr)); -code {CAR; UNPAIR; ADD; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_g1.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_g1.tz deleted file mode 100644 index 9f817c88d8..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_g1.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bls12_381_g1 bls12_381_g1); -storage (option (bls12_381_g1)); -code {CAR; UNPAIR; ADD; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_g2.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_g2.tz deleted file mode 100644 index 1d1c0688c1..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/add_bls12_381_g2.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bls12_381_g2 bls12_381_g2); -storage (option (bls12_381_g2)); -code {CAR; UNPAIR; ADD; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/add_delta_timestamp.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/add_delta_timestamp.tz deleted file mode 100644 index b9ed869017..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/add_delta_timestamp.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair int timestamp); -storage (option timestamp); -code { CAR; DUP; CAR; DIP{CDR}; ADD; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/add_timestamp_delta.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/add_timestamp_delta.tz deleted file mode 100644 index 766bf9f91f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/add_timestamp_delta.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair timestamp int); -storage (option timestamp); -code { CAR; DUP; CAR; DIP{CDR}; ADD; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/address.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/address.tz deleted file mode 100644 index 7e6bcdec33..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/address.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (contract unit); -storage (option address); -code {CAR; ADDRESS; SOME; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/and.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/and.tz deleted file mode 100644 index 48e346ca04..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/and.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair :param (bool %first) (bool %second)); -storage (option bool); -code { CAR ; UNPAIR; AND @and; SOME @res; NIL @noop operation; PAIR; UNPAIR @x @y; PAIR %a %b }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/and_binary.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/and_binary.tz deleted file mode 100644 index 96f60082c7..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/and_binary.tz +++ /dev/null @@ -1,27 +0,0 @@ -parameter unit; -storage unit; -code { DROP; - - # 0101 & 0110 = 0100 - PUSH nat 5; PUSH nat 6; AND; PUSH nat 4; ASSERT_CMPEQ; - - # 0110 & 0101 = 0100 - PUSH nat 6; PUSH int 5; AND; PUSH nat 4; ASSERT_CMPEQ; - - # Negative numbers are represented as with a initial virtual - # infinite series of 1's. - # Hence, AND with -1 (1111...) is identity: - - # 12 = ...1100 - # & -1 = ...1111 - # ---- - # = 12 = ...1100 - PUSH nat 12; PUSH int -1; AND; PUSH nat 12; ASSERT_CMPEQ; - - # 12 = ...0001100 - # & -5 = ...1111011 - # ----------------- - # 8 = ...0001000 - PUSH nat 12; PUSH int -5; AND; PUSH nat 8; ASSERT_CMPEQ; - - UNIT; NIL @noop operation; PAIR; }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/and_logical_1.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/and_logical_1.tz deleted file mode 100644 index 20743c0bfd..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/and_logical_1.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bool bool); -storage bool; -code { CAR ; UNPAIR; AND @and; NIL @noop operation; PAIR; }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/balance.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/balance.tz deleted file mode 100644 index 0a9bfc6149..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/balance.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage mutez; -code {DROP; BALANCE; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_mem_nat.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_mem_nat.tz deleted file mode 100644 index 71ecaf2c4a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_mem_nat.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter nat; -storage (pair (big_map nat nat) (option bool)) ; -# stores (map, Some flag) where flag = parameter is a member of -# the map in first component of storage -code { UNPAIR; - DIP { CAR; DUP }; - MEM; SOME; SWAP; PAIR; NIL operation; PAIR;} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_mem_string.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_mem_string.tz deleted file mode 100644 index 8c557f7dc1..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_mem_string.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter string; -storage (pair (big_map string nat) (option bool)) ; -# stores (map, Some flag) where flag = parameter is a member of -# the map in first component of storage -code { UNPAIR; - DIP { CAR; DUP }; - MEM; SOME; SWAP; PAIR; NIL operation; PAIR;} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_to_self.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_to_self.tz deleted file mode 100644 index 6a9442b9f3..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/big_map_to_self.tz +++ /dev/null @@ -1,22 +0,0 @@ -parameter (or (pair %have_fun (big_map string nat) unit) (unit %default)); -storage (big_map string nat); -code { - UNPAIR; - DIP {NIL operation}; - IF_LEFT { - DROP - } - { - DROP; - SELF %have_fun; - PUSH mutez 0; - DUP 4; - PUSH (option nat) (Some 8); - PUSH string "hahaha"; - UPDATE; - UNIT; SWAP; PAIR; - TRANSFER_TOKENS; - CONS - }; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_push_bytes_not_padded.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_push_bytes_not_padded.tz deleted file mode 100644 index fd4142914d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_push_bytes_not_padded.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter unit; -storage (option bls12_381_fr); -code { - DROP; - PUSH bls12_381_fr 0x00; - SOME; - NIL operation; - PAIR; - }; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_push_nat.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_push_nat.tz deleted file mode 100644 index 314b97f2a6..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_push_nat.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter unit; -storage (option bls12_381_fr); -code { - DROP; - PUSH bls12_381_fr 16; - SOME; - NIL operation; - PAIR; - }; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_to_int.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_to_int.tz deleted file mode 100644 index 67e2c9b080..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_to_int.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter bls12_381_fr; -storage int; -code { - CAR; - INT; - NIL operation; - PAIR; - }; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_to_mutez.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_to_mutez.tz deleted file mode 100644 index 39630958e5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_to_mutez.tz +++ /dev/null @@ -1,12 +0,0 @@ -parameter bls12_381_fr; -storage mutez; -code { - CAR; - INT; - ISNAT; - ASSERT_SOME; - PUSH mutez 1; - MUL; - NIL operation; - PAIR; - }; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_z_int.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_z_int.tz deleted file mode 100644 index 67018c55fa..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_z_int.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter int; -storage (bls12_381_fr); -code { - UNPAIR; - MUL; - NIL operation; - PAIR; - }; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_z_nat.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_z_nat.tz deleted file mode 100644 index 1376e0c395..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_fr_z_nat.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter nat; -storage (bls12_381_fr); -code { - UNPAIR; - MUL; - NIL operation; - PAIR; - }; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_z_fr_int.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_z_fr_int.tz deleted file mode 100644 index 783fb3c0d6..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_z_fr_int.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter int; -storage (bls12_381_fr); -code { - UNPAIR; - SWAP; - MUL; - NIL operation; - PAIR; - }; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_z_fr_nat.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_z_fr_nat.tz deleted file mode 100644 index 1210e36db0..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/bls12_381_z_fr_nat.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter nat; -storage (bls12_381_fr); -code { - UNPAIR; - SWAP; - MUL; - NIL operation; - PAIR; - }; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/car.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/car.tz deleted file mode 100644 index 8fd03ba510..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/car.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (nat :l) (nat :r)); -storage nat; -code { CAR; CAR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/cdr.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/cdr.tz deleted file mode 100644 index dae260c5be..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/cdr.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (nat :l) (nat :r)); -storage nat; -code { CAR; CDR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/chain_id.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/chain_id.tz deleted file mode 100644 index 783d13fa0a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/chain_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage unit; -code { CHAIN_ID; DROP; CAR; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/chain_id_store.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/chain_id_store.tz deleted file mode 100644 index 11e57fd210..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/chain_id_store.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage (option chain_id); -code { DROP; CHAIN_ID; SOME; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/check_signature.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/check_signature.tz deleted file mode 100644 index b5d5b28426..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/check_signature.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter key; -storage (pair signature string); -code { - DUP; DUP; - DIP{ CDR; DUP; CAR; - DIP{CDR; PACK}}; - CAR; CHECK_SIGNATURE; - IF {} {FAIL} ; - CDR; NIL operation ; PAIR}; - diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/comb-get.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/comb-get.tz deleted file mode 100644 index 5493d68f26..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/comb-get.tz +++ /dev/null @@ -1,27 +0,0 @@ -# See also ../macros/carn_and_cdrn.tz for the same test using the -# CAR n and CDR n macros. -parameter (pair nat nat nat unit); -storage unit; -code { - CAR ; - - # Checking the first element - DUP ; CAR ; - PUSH nat 1 ; ASSERT_CMPEQ ; - DUP ; GET 1 ; - PUSH nat 1 ; ASSERT_CMPEQ ; - - # Checking the second element - DUP ; GET 3 ; - PUSH nat 4 ; ASSERT_CMPEQ ; - - # Checking the third element - DUP ; GET 5 ; - PUSH nat 2 ; ASSERT_CMPEQ ; - - # Checking the last (fourth) element - DUP ; GET 6 ; - UNIT ; ASSERT_CMPEQ ; - - DROP ; UNIT ; NIL operation ; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/comb-set-2.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/comb-set-2.tz deleted file mode 100644 index 757acfd380..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/comb-set-2.tz +++ /dev/null @@ -1,10 +0,0 @@ -# This tests UPDATE on combs. Contrary to comb-set.tz, both the values -# and their types are updated. -parameter (pair nat nat nat unit); -storage (option (pair int nat string bytes)); -code { - CAR ; - PUSH int 2 ; UPDATE 1 ; - PUSH string "toto" ; UPDATE 5 ; - PUSH bytes 0x01 ; UPDATE 6 ; - SOME ; NIL operation ; PAIR ; } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/comb-set.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/comb-set.tz deleted file mode 100644 index fe40757192..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/comb-set.tz +++ /dev/null @@ -1,10 +0,0 @@ -# This tests UPDATE on combs. See also comb-set-2.tz for tests of -# UPDATE that also change the type of fields. -parameter unit; -storage (pair nat nat nat unit); -code { CDR ; - PUSH nat 2 ; UPDATE 1 ; - PUSH nat 12 ; UPDATE 3 ; - PUSH nat 8 ; UPDATE 5 ; - UNIT ; UPDATE 6 ; - NIL operation ; PAIR ; } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/comb.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/comb.tz deleted file mode 100644 index 6709bde8b8..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/comb.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter unit; -storage (pair nat nat nat); -code { DROP ; - PUSH nat 3 ; - PUSH nat 2 ; - PUSH nat 1 ; - NIL operation ; - PAIR 4 - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/compare.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/compare.tz deleted file mode 100644 index 963215fb46..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/compare.tz +++ /dev/null @@ -1,52 +0,0 @@ -parameter unit; -storage unit; -code { - DROP; - - # bool - PUSH bool True; DUP; COMPARE; ASSERT_EQ; - PUSH bool False; DUP; COMPARE; ASSERT_EQ; - PUSH bool False; PUSH bool True; COMPARE; ASSERT_GT; - PUSH bool True; PUSH bool False; COMPARE; ASSERT_LT; - - # bytes - PUSH bytes 0xAABBCC; DUP; COMPARE; ASSERT_EQ; - PUSH bytes 0x; PUSH bytes 0x; COMPARE; ASSERT_EQ; - PUSH bytes 0x; PUSH bytes 0x01; COMPARE; ASSERT_GT; - PUSH bytes 0x01; PUSH bytes 0x02; COMPARE; ASSERT_GT; - PUSH bytes 0x02; PUSH bytes 0x01; COMPARE; ASSERT_LT; - - # int - PUSH int 1; DUP; COMPARE; ASSERT_EQ; - PUSH int 10; PUSH int 5; COMPARE; ASSERT_LT; - PUSH int -4; PUSH int 1923; COMPARE; ASSERT_GT; - - # nat - PUSH nat 1; DUP; COMPARE; ASSERT_EQ; - PUSH nat 10; PUSH nat 5; COMPARE; ASSERT_LT; - PUSH nat 4; PUSH nat 1923; COMPARE; ASSERT_GT; - - # key_hash - PUSH key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; DUP; COMPARE; ASSERT_EQ; - PUSH key_hash "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv"; PUSH key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; COMPARE; ASSERT_LT; - PUSH key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; PUSH key_hash "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv"; COMPARE; ASSERT_GT; - - # mutez - PUSH mutez 1; DUP; COMPARE; ASSERT_EQ; - PUSH mutez 10; PUSH mutez 5; COMPARE; ASSERT_LT; - PUSH mutez 4; PUSH mutez 1923; COMPARE; ASSERT_GT; - - # string - PUSH string "AABBCC"; DUP; COMPARE; ASSERT_EQ; - PUSH string ""; PUSH string ""; COMPARE; ASSERT_EQ; - PUSH string ""; PUSH string "a"; COMPARE; ASSERT_GT; - PUSH string "a"; PUSH string "b"; COMPARE; ASSERT_GT; - PUSH string "b"; PUSH string "a"; COMPARE; ASSERT_LT; - - # timestamp - PUSH timestamp "2019-09-16T08:38:05Z"; DUP; COMPARE; ASSERT_EQ; - PUSH timestamp "2017-09-16T08:38:04Z"; PUSH timestamp "2019-09-16T08:38:05Z"; COMPARE; ASSERT_GT; - PUSH timestamp "2019-09-16T08:38:05Z"; PUSH timestamp "2019-09-16T08:38:04Z"; COMPARE; ASSERT_LT; - - UNIT; NIL operation; PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/compare_big_type.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/compare_big_type.tz deleted file mode 100644 index 666ad31377..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/compare_big_type.tz +++ /dev/null @@ -1,20 +0,0 @@ -# This contract should cost a lot of gas to typecheck -# because big types are compared in COMPARE -parameter unit; -storage unit; -code { DROP; PUSH nat 0 ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DROP ; UNIT ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/compare_big_type2.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/compare_big_type2.tz deleted file mode 100644 index 126217d79f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/compare_big_type2.tz +++ /dev/null @@ -1,22 +0,0 @@ -# Like compare_big_type.tz but with an extra line -# DUP ; DUP ; COMPARE ; DROP ; -# so that we can measure how much it costs -parameter unit; -storage unit; -code { DROP; PUSH nat 0 ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; PAIR ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DUP ; DUP ; COMPARE ; DROP ; - DROP ; UNIT ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/comparisons.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/comparisons.tz deleted file mode 100644 index c603f07339..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/comparisons.tz +++ /dev/null @@ -1,15 +0,0 @@ -parameter (list int); -storage (list (list bool)); -code { - CAR; - - NIL (list bool); - DIP {DUP; MAP { EQ; };}; SWAP; CONS; - DIP {DUP; MAP { NEQ; };}; SWAP; CONS; - DIP {DUP; MAP { LE; };}; SWAP; CONS; - DIP {DUP; MAP { LT; };}; SWAP; CONS; - DIP {DUP; MAP { GE; };}; SWAP; CONS; - DIP {MAP { GT; };}; SWAP; CONS; - - NIL operation; PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/concat_hello.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/concat_hello.tz deleted file mode 100644 index e290b90fb2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/concat_hello.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter (list string); -storage (list string); -code{ CAR; - MAP { PUSH @hello string "Hello "; CONCAT }; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/concat_hello_bytes.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/concat_hello_bytes.tz deleted file mode 100644 index 55f8ab7a21..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/concat_hello_bytes.tz +++ /dev/null @@ -1,4 +0,0 @@ -parameter (list bytes); -storage (list bytes); -code{ CAR; - MAP { PUSH bytes 0xFF; CONCAT }; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/concat_list.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/concat_list.tz deleted file mode 100644 index b570027ff6..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/concat_list.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (list string); -storage string; -code {CAR; PUSH string ""; SWAP; - ITER {SWAP; DIP{NIL string; SWAP; CONS}; CONS; CONCAT}; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/cons.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/cons.tz deleted file mode 100644 index 5189b47c36..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/cons.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter int; -storage (list int); -code { UNPAIR; CONS; NIL operation; PAIR; }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/contains_all.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/contains_all.tz deleted file mode 100644 index fe4160f872..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/contains_all.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter (pair (list string) (list string)); -storage (option bool); -code {CAR; DUP; CAR; DIP{CDR}; EMPTY_SET string; SWAP; - ITER {PAIR; DUP; CAR; DIP{CDR}; PUSH bool True; SWAP; UPDATE}; - PUSH bool True; SWAP; PAIR; SWAP; - ITER {PAIR; DUP; DUP; CAR; DIP{CDAR; DIP{CDDR}; DUP}; MEM; DIP{SWAP}; AND; SWAP; PAIR}; - CDR; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/contract.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/contract.tz deleted file mode 100644 index 939337918d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/contract.tz +++ /dev/null @@ -1,11 +0,0 @@ -parameter address; -storage unit; -code { - CAR; - CONTRACT unit; - ASSERT_SOME; - DROP; - UNIT; - NIL operation; - PAIR - }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract.tz deleted file mode 100644 index d3fb8dc617..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract.tz +++ /dev/null @@ -1,14 +0,0 @@ -parameter unit; -storage (option address); -code { DROP; - UNIT; # starting storage for contract - AMOUNT; # Push the starting balance - NONE key_hash; # No delegate - CREATE_CONTRACT # Create the contract - { parameter unit ; - storage unit ; - code - { CDR; - NIL operation; - PAIR; } }; - DIP {SOME;NIL operation};CONS ; PAIR} # Ending calling convention stuff diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract_rootname.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract_rootname.tz deleted file mode 100644 index b85b4cf8bb..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract_rootname.tz +++ /dev/null @@ -1,15 +0,0 @@ -# this contract creates a contract -parameter unit; -storage (option address); -code { DROP; - UNIT; # starting storage for contract - AMOUNT; # Push the starting balance - NONE key_hash; # No delegate - CREATE_CONTRACT # Create the contract - { parameter %root unit ; - storage unit ; - code - { CDR; - NIL operation; - PAIR; } }; - DIP {SOME;NIL operation}; CONS ; PAIR} # Ending calling convention stuff diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract_rootname_alt.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract_rootname_alt.tz deleted file mode 100644 index 226a9abba2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/create_contract_rootname_alt.tz +++ /dev/null @@ -1,14 +0,0 @@ -parameter unit; -storage (option address); -code { DROP; - UNIT; # starting storage for contract - AMOUNT; # Push the starting balance - NONE key_hash; # No delegate - CREATE_CONTRACT # Create the contract - { parameter (unit %root) ; - storage unit ; - code - { CDR; - NIL operation; - PAIR; } }; - DIP {SOME;NIL operation}; CONS ; PAIR} # Ending calling convention stuff diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/diff_timestamps.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/diff_timestamps.tz deleted file mode 100644 index f1991a37a5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/diff_timestamps.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair timestamp timestamp); -storage int; -code { CAR; DUP; CAR; DIP{CDR}; SUB; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/dig_eq.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/dig_eq.tz deleted file mode 100644 index aaafc4271f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/dig_eq.tz +++ /dev/null @@ -1,14 +0,0 @@ -parameter (pair nat nat nat nat nat nat nat nat nat nat nat nat nat nat nat nat nat); -storage unit; -# this contract receives a 17-tuple, unpairs it, reverses the order, reverses it again, and pairs it and verifies that the result is the same as the original tuple. -code { CAR; - DUP; - - UNPAPAPAPAPAPAPAPAPAPAPAPAPAPAPAPAIR; - DIG 0; DIG 1; DIG 2; DIG 3; DIG 4; DIG 5; DIG 6; DIG 7; DIG 8; DIG 9; DIG 10; DIG 11; DIG 12; DIG 13; DIG 14; DIG 15; DIG 16; - # PUSH nat 1; ADD; - DIG 0; DIG 1; DIG 2; DIG 3; DIG 4; DIG 5; DIG 6; DIG 7; DIG 8; DIG 9; DIG 10; DIG 11; DIG 12; DIG 13; DIG 14; DIG 15; DIG 16; - PAPAPAPAPAPAPAPAPAPAPAPAPAPAPAPAIR; - ASSERT_CMPEQ; - - UNIT; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/dign.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/dign.tz deleted file mode 100644 index ec8a339dd4..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/dign.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (pair (pair (pair nat nat) nat) nat) nat); -storage nat; -code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DIG 4 ; DIP { DROP ; DROP ; DROP ; DROP } ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/dip.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/dip.tz deleted file mode 100644 index f0c32a8387..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/dip.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter (pair nat nat); -storage (pair nat nat); -code{ - CAR; UNPAIR; - DUP; DIP { ADD }; - PAIR; - NIL operation; - PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/dipn.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/dipn.tz deleted file mode 100644 index 55d088e551..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/dipn.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (pair (pair (pair nat nat) nat) nat) nat); -storage nat; -code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DIP 5 {PUSH nat 6} ; DROP ; DROP ; DROP ; DROP ; DROP ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/dropn.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/dropn.tz deleted file mode 100644 index 4b5379b3a3..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/dropn.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (pair (pair (pair nat nat) nat) nat) nat); -storage nat; -code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DROP 4 ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/dugn.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/dugn.tz deleted file mode 100644 index 521c052f1f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/dugn.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair (pair (pair (pair nat nat) nat) nat) nat); -storage nat; -code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DUG 4 ; DROP ; DROP ; DROP ; DROP ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/dup-n.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/dup-n.tz deleted file mode 100644 index 7e530c0971..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/dup-n.tz +++ /dev/null @@ -1,18 +0,0 @@ -parameter unit; -storage unit; -code - { - DROP ; - PUSH nat 5 ; - PUSH nat 4 ; - PUSH nat 3 ; - PUSH nat 2 ; - PUSH nat 1 ; - DUP 1 ; PUSH nat 1 ; ASSERT_CMPEQ ; - DUP 2 ; PUSH nat 2 ; ASSERT_CMPEQ ; - DUP 3 ; PUSH nat 3 ; ASSERT_CMPEQ ; - DUP 4 ; PUSH nat 4 ; ASSERT_CMPEQ ; - DUP 5 ; PUSH nat 5 ; ASSERT_CMPEQ ; - DROP 5 ; - UNIT ; NIL operation ; PAIR ; - }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ediv.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ediv.tz deleted file mode 100644 index a1fc89992a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ediv.tz +++ /dev/null @@ -1,13 +0,0 @@ -parameter (pair int int); -storage (pair (option (pair int nat)) (option (pair int nat)) (option (pair int nat)) (option (pair nat nat))); -code { CAR; - # :: nat : nat : 'S -> option (pair nat nat) : 'S - DUP; UNPAIR; ABS; DIP { ABS; }; EDIV; SWAP; - # :: nat : int : 'S -> option (pair int nat) : 'S - DUP; UNPAIR; ABS; EDIV; SWAP; - # :: int : nat : 'S -> option (pair int nat) : 'S - DUP; UNPAIR; DIP { ABS; }; EDIV; SWAP; - # :: int : int : 'S -> option (pair int nat) : 'S - UNPAIR; EDIV; - PAPAPAIR; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ediv_mutez.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ediv_mutez.tz deleted file mode 100644 index 2df73dd4a0..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ediv_mutez.tz +++ /dev/null @@ -1,12 +0,0 @@ -parameter (pair mutez (or mutez nat)); -storage (or (option (pair nat mutez)) (option (pair mutez mutez))); -code { CAR; - UNPAIR; - SWAP; - IF_LEFT { - SWAP; EDIV; LEFT (option (pair mutez mutez)); - } - { - SWAP; EDIV; RIGHT (option (pair nat mutez)); - }; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/empty_map.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/empty_map.tz deleted file mode 100644 index 9023fe847b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/empty_map.tz +++ /dev/null @@ -1,6 +0,0 @@ -storage (map string string); -parameter unit; -code {DROP; - EMPTY_MAP string string; - PUSH string "world"; SOME; PUSH string "hello"; UPDATE; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/exec_concat.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/exec_concat.tz deleted file mode 100644 index 0265f1557f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/exec_concat.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter string; -storage string; -code {CAR; - LAMBDA string string - {PUSH string "_abc"; NIL string ; - SWAP ; CONS ; SWAP ; CONS ; CONCAT}; - SWAP; EXEC; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/first.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/first.tz deleted file mode 100644 index 6e47b4c008..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/first.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list nat); -storage nat; -code{CAR; IF_CONS {DIP{DROP}} {FAIL}; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/get_and_update_big_map.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/get_and_update_big_map.tz deleted file mode 100644 index 3b39c9a6f7..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/get_and_update_big_map.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter string; -storage (pair (option nat) (big_map string nat)); -code { - UNPAPAIR; - GET_AND_UPDATE; - PAIR; - NIL operation; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/get_and_update_map.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/get_and_update_map.tz deleted file mode 100644 index b67f08ce77..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/get_and_update_map.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter string; -storage (pair (option nat) (map string nat)); -code { - UNPAPAIR; - GET_AND_UPDATE; - PAIR; - NIL operation; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/get_big_map_value.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/get_big_map_value.tz deleted file mode 100644 index 4ca52343d4..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/get_big_map_value.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter string; -storage (pair (big_map string string) (option string)); -# retrieves the values stored in the big_map on the left side of the -# pair at the key denoted by the parameter and puts it in the right -# hand side of the storage -code {DUP; CAR; DIP{CDAR; DUP}; GET; SWAP; PAIR; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/get_map_value.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/get_map_value.tz deleted file mode 100644 index f46639649a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/get_map_value.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage (pair (option string) (map string string)); -code {DUP; CAR; DIP{CDDR; DUP}; GET; PAIR; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/hash_consistency_checker.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/hash_consistency_checker.tz deleted file mode 100644 index fb98a39da4..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/hash_consistency_checker.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair mutez (pair timestamp int)) ; -storage bytes ; -code { CAR ; PACK ; BLAKE2B ; NIL operation ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/hash_key.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/hash_key.tz deleted file mode 100644 index 6c7f78b4aa..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/hash_key.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter key; -storage (option key_hash); -code {CAR; HASH_KEY; SOME ;NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/hash_string.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/hash_string.tz deleted file mode 100644 index b0b8ddea64..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/hash_string.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage bytes; -code {CAR; PACK ; BLAKE2B; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/if.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/if.tz deleted file mode 100644 index 4bc0e353da..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/if.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bool; -storage (option bool); -code {CAR; IF {PUSH bool True} {PUSH bool False}; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/if_some.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/if_some.tz deleted file mode 100644 index 5c3138b227..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/if_some.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (option string); -storage string; -code { CAR; IF_SOME {} {PUSH string ""}; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/int.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/int.tz deleted file mode 100644 index 3f19988139..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/int.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter nat; -storage (option int); -# this contract takes a natural number as parameter, converts it to an -# integer and stores it. -code { CAR; INT; SOME; NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/keccak.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/keccak.tz deleted file mode 100644 index e962561009..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/keccak.tz +++ /dev/null @@ -1,8 +0,0 @@ -storage (option bytes); -parameter bytes; -code - { - CAR; - KECCAK; SOME; - NIL operation; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/left_right.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/left_right.tz deleted file mode 100644 index d5650c0342..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/left_right.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (or bool string); -storage (or string bool); -code {CAR; IF_LEFT {RIGHT string} {LEFT bool}; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/level.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/level.tz deleted file mode 100644 index 7e3adb9d05..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/level.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage nat; -code {DROP; LEVEL; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_concat.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/list_concat.tz deleted file mode 100644 index d7bfb7d134..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_concat.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list string); -storage string; -code { UNPAIR ; SWAP ; CONS ; CONCAT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_concat_bytes.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/list_concat_bytes.tz deleted file mode 100644 index 0fc8e16206..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_concat_bytes.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list bytes); -storage bytes; -code { UNPAIR ; SWAP ; CONS ; CONCAT; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_id.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/list_id.tz deleted file mode 100644 index 6cd3693a1e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list string); -storage (list string); -code {CAR; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_id_map.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/list_id_map.tz deleted file mode 100644 index 38b4493e8e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_id_map.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list string); -storage (list string); -code {CAR; MAP {}; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_iter.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/list_iter.tz deleted file mode 100644 index df904d8822..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_iter.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (list int); -storage int; -code { CAR; PUSH int 1; SWAP; - ITER { MUL }; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_map_block.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/list_map_block.tz deleted file mode 100644 index b5202dd9b6..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_map_block.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (list int); -storage (list int); -code { CAR; PUSH int 0; SWAP; - MAP { DIP{DUP}; ADD; DIP{PUSH int 1; ADD}}; - NIL operation; PAIR; DIP{DROP}} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_size.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/list_size.tz deleted file mode 100644 index 6ced127991..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/list_size.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list int); -storage nat; -code {CAR; SIZE; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/loop_left.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/loop_left.tz deleted file mode 100644 index 64bcc76c89..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/loop_left.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter (list string); -storage (list string); -code { CAR; NIL string; SWAP; PAIR; LEFT (list string); - LOOP_LEFT { DUP; CAR; DIP{CDR}; - IF_CONS { SWAP; DIP{CONS}; PAIR; LEFT (list string) } - { RIGHT (pair (list string) (list string)) }; }; - NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_car.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/map_car.tz deleted file mode 100644 index b763590ece..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_car.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter bool; -storage (pair (bool %b) (nat %n)); -code { DUP; CAR; DIP{CDR}; SWAP; - MAP_CAR @new_storage %b { AND }; - NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_id.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/map_id.tz deleted file mode 100644 index ff0a3bbbf2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (map nat nat); -storage (map nat nat); -code { CAR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_iter.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/map_iter.tz deleted file mode 100644 index 3ab5c35c73..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_iter.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter (map (int :k) (int :e)); -storage (pair (int :k) (int :e)); -code { CAR; PUSH @acc_e (int :e) 0; PUSH @acc_k (int :k) 0; PAIR % %r; SWAP; - ITER - { DIP {DUP; CAR; DIP{CDR}}; DUP; # Last instr - DIP{CAR; ADD}; SWAP; DIP{CDR; ADD}; PAIR % %r }; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_map.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/map_map.tz deleted file mode 100644 index 4acbd63c32..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_map.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter nat; -storage (map string nat); -# this contract adds the value passed by parameter to each entry in -# the stored map. -code { UNPAIR; SWAP; - MAP { CDR; DIP {DUP}; ADD; }; - DIP { DROP; }; - NIL operation; PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_map_sideeffect.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/map_map_sideeffect.tz deleted file mode 100644 index 960b02a553..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_map_sideeffect.tz +++ /dev/null @@ -1,12 +0,0 @@ -parameter nat; -storage (pair (map string nat) nat); -# this contract adds the value passed by parameter to each entry in -# the stored map, and it sets the second component of the pair to the -# sum of the map's elements -code { UNPAIR; SWAP; CAR; - DIP 2 { PUSH @sum nat 0; }; - MAP { CDR; DIP {DUP}; ADD; - DUP; DUG 2; DIP 2 { ADD @sum }; - }; - DIP { DROP; }; PAIR; - NIL operation; PAIR; } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_mem_nat.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/map_mem_nat.tz deleted file mode 100644 index 0c245d7e0a..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_mem_nat.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter nat; -storage (pair (map nat nat) (option bool)) ; -# stores (map, Some flag) where flag = parameter is a member of -# the map in first component of storage -code { UNPAIR; - DIP { CAR; DUP }; - MEM; SOME; SWAP; PAIR; NIL operation; PAIR;} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_mem_string.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/map_mem_string.tz deleted file mode 100644 index 3fa5cd5b57..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_mem_string.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter string; -storage (pair (map string nat) (option bool)) ; -# stores (map, Some flag) where flag = parameter is a member of -# the map in first component of storage -code { UNPAIR; - DIP { CAR; DUP }; - MEM; SOME; SWAP; PAIR; NIL operation; PAIR;} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_size.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/map_size.tz deleted file mode 100644 index 4bd6417e6d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/map_size.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (map string nat); -storage nat; -code {CAR; SIZE; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/merge_comparable_pairs.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/merge_comparable_pairs.tz deleted file mode 100644 index 14fcc73411..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/merge_comparable_pairs.tz +++ /dev/null @@ -1,14 +0,0 @@ -# tests that merging comparable pair types works -parameter (set (pair (nat %n) (pair %p (string %s) (int %i)))); -storage nat; -code {UNPAIR; - SWAP; - PUSH nat 3; - COMPARE; - GT; - IF {} - {DROP; - EMPTY_SET (pair nat (pair string int));}; - SIZE; - NIL operation; - PAIR;} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/mul.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/mul.tz deleted file mode 100644 index 8432394b52..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/mul.tz +++ /dev/null @@ -1,48 +0,0 @@ -parameter unit ; -storage unit ; -code { CAR ; - DROP ; - # tez-nat, no overflow - PUSH nat 7987 ; - PUSH mutez 10 ; - MUL ; - PUSH mutez 79870 ; - COMPARE ; - ASSERT_EQ ; - # nat-tez, no overflow - PUSH mutez 10 ; - PUSH nat 7987 ; - MUL ; - PUSH mutez 79870 ; - COMPARE ; - ASSERT_EQ ; - # int-int, no overflow - PUSH int 10 ; - PUSH int -7987 ; - MUL ; - PUSH int -79870 ; - COMPARE ; - ASSERT_EQ ; - # int-nat, no overflow - PUSH nat 10 ; - PUSH int -7987 ; - MUL ; - PUSH int -79870 ; - COMPARE ; - ASSERT_EQ ; - # nat-int, no overflow - PUSH int -10 ; - PUSH nat 7987 ; - MUL ; - PUSH int -79870 ; - COMPARE ; - ASSERT_EQ ; - # nat-nat, no overflow - PUSH nat 10 ; - PUSH nat 7987 ; - MUL ; - PUSH nat 79870 ; - COMPARE ; - ASSERT_EQ ; - - UNIT ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_fr.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_fr.tz deleted file mode 100644 index dd201863b0..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_fr.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bls12_381_fr bls12_381_fr); -storage (option (bls12_381_fr)); -code {CAR; UNPAIR; MUL; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_g1.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_g1.tz deleted file mode 100644 index af3f376501..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_g1.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bls12_381_g1 bls12_381_fr); -storage (option (bls12_381_g1)); -code {CAR; UNPAIR; MUL; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_g2.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_g2.tz deleted file mode 100644 index 1875e8e3da..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_bls12_381_g2.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bls12_381_g2 bls12_381_fr); -storage (option (bls12_381_g2)); -code {CAR; UNPAIR; MUL; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_overflow.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_overflow.tz deleted file mode 100644 index 5d2b3a3dcf..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/mul_overflow.tz +++ /dev/null @@ -1,18 +0,0 @@ -parameter (or unit unit) ; -storage unit ; -code { CAR ; - IF_LEFT - { - PUSH nat 922337203685477580700 ; - PUSH mutez 10 ; - MUL ; # FAILURE - DROP - } - { - PUSH mutez 10 ; - PUSH nat 922337203685477580700 ; - MUL ; # FAILURE - DROP - } ; - - NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/mutez_to_bls12_381_fr.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/mutez_to_bls12_381_fr.tz deleted file mode 100644 index fefc038474..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/mutez_to_bls12_381_fr.tz +++ /dev/null @@ -1,14 +0,0 @@ -parameter mutez; -storage bls12_381_fr; -code { - CAR; - PUSH mutez 1; - SWAP; - EDIV; - ASSERT_SOME; - CAR; - PUSH bls12_381_fr 1; - MUL; - NIL operation; - PAIR; - }; \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/neg.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/neg.tz deleted file mode 100644 index 9cedf765f1..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/neg.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter (or int nat); -storage int; -code { - CAR; - IF_LEFT {NEG} {NEG}; - NIL operation; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_fr.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_fr.tz deleted file mode 100644 index cd9b0a945c..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_fr.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bls12_381_fr; -storage (option (bls12_381_fr)); -code {CAR; NEG; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_g1.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_g1.tz deleted file mode 100644 index 60806deada..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_g1.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bls12_381_g1; -storage (option (bls12_381_g1)); -code {CAR; NEG; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_g2.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_g2.tz deleted file mode 100644 index 5930525462..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/neg_bls12_381_g2.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bls12_381_g2; -storage (option (bls12_381_g2)); -code {CAR; NEG; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/none.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/none.tz deleted file mode 100644 index 473a288b49..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/none.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage (option nat); -code { DROP; NONE nat; NIL operation; PAIR; }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/noop.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/noop.tz deleted file mode 100644 index bd19da15cf..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/noop.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage unit; -code {CDR; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/not.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/not.tz deleted file mode 100644 index f89394072d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/not.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bool; -storage (option bool); -code {CAR; NOT; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/not_binary.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/not_binary.tz deleted file mode 100644 index c1e0f97979..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/not_binary.tz +++ /dev/null @@ -1,12 +0,0 @@ -parameter (or int nat); -storage (option int); -code { CAR; - IF_LEFT - { - NOT; - } - { - NOT; - } ; - SOME; NIL operation ; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/or.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/or.tz deleted file mode 100644 index 89d533c448..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/or.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bool bool); -storage (option bool); -code {CAR; DUP; CAR; SWAP; CDR; OR; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/or_binary.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/or_binary.tz deleted file mode 100644 index a31f109827..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/or_binary.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (pair nat nat); -storage (option nat); -# This contract takes a pair of natural numbers as argument and -# stores the result of their binary OR. -code { CAR; - UNPAIR; - OR; - SOME; NIL operation; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/originate_big_map.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/originate_big_map.tz deleted file mode 100644 index 97d7db669f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/originate_big_map.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (big_map int int); -storage (big_map int int); -code { CAR; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack.tz deleted file mode 100644 index ad313fa8ae..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter (pair (pair (pair string (list int)) (set nat)) bytes) ; -storage unit ; -code { CAR ; UNPAIR ; DIP { DUP } ; - PACK ; ASSERT_CMPEQ ; - UNPACK (pair (pair string (list int)) (set nat)) ; ASSERT_SOME ; DROP ; - UNIT ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack_rev.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack_rev.tz deleted file mode 100644 index 9c94cd68dc..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack_rev.tz +++ /dev/null @@ -1,43 +0,0 @@ -parameter (pair - int - nat - string - bytes - mutez - bool - key_hash - timestamp address); -storage unit ; -code { CAR; - # Check the int - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK int; ASSERT_SOME; ASSERT_CMPEQ; - # Check the nat - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK nat; ASSERT_SOME; ASSERT_CMPEQ; - # Check the string - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK string; ASSERT_SOME; ASSERT_CMPEQ; - # Check the bytes - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK bytes; ASSERT_SOME; ASSERT_CMPEQ; - # Check the mutez - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK mutez; ASSERT_SOME; ASSERT_CMPEQ; - # Check the bool - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK bool; ASSERT_SOME; ASSERT_CMPEQ; - # Check the key_hash - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK key_hash; ASSERT_SOME; ASSERT_CMPEQ; - # Check the timestamp - DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK timestamp; ASSERT_SOME; ASSERT_CMPEQ; - # Check the address - DUP; PACK; UNPACK address; ASSERT_SOME; ASSERT_CMPEQ; - - # Assert failure modes of unpack - PUSH int 0; PACK; UNPACK nat; ASSERT_SOME; DROP; - PUSH int -1; PACK; UNPACK nat; ASSERT_NONE; - - # Try deserializing invalid byte sequence (no magic number) - PUSH bytes 0x; UNPACK nat; ASSERT_NONE; - PUSH bytes 0x04; UNPACK nat; ASSERT_NONE; - - # Assert failure for byte sequences that do not correspond to - # any micheline value - PUSH bytes 0x05; UNPACK nat; ASSERT_NONE; - - UNIT ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack_rev_cty.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack_rev_cty.tz deleted file mode 100644 index 7ca7ca64a3..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/packunpack_rev_cty.tz +++ /dev/null @@ -1,31 +0,0 @@ -parameter (pair key unit signature (option signature) (list unit) (set bool) (pair int int) (or key_hash timestamp) (map int string) (lambda string bytes)); -storage unit ; -# for each uncomparable type t (we take an arbitrary parameter for -# parametric data-types e.g. pair, list), -# that is packable (which excludes big_map, operation, and contract) -# this contract receives a parameter v_t. -# it verifies that pack v_t == pack (unpack (pack v_t)) -code { CAR; - # packable uncomparable types - # checking: key - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK key; ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: unit - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK unit; ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: signature - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (signature); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: option signature - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (option signature); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: list unit - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (list unit); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: set bool - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (set bool); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: pair int int - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (pair int int); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: or key_hash timestamp - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (or key_hash timestamp); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: map int string - DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (map int string); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - # checking: lambda string bytes - DUP; PACK; DIP { PACK; UNPACK (lambda string bytes); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; - - UNIT ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/pair_id.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/pair_id.tz deleted file mode 100644 index 3bfedf2d8c..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/pair_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair bool bool); -storage (option (pair bool bool)); -code {CAR; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/pairing_check.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/pairing_check.tz deleted file mode 100644 index 3b829f315c..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/pairing_check.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (list (pair bls12_381_g1 bls12_381_g2)); -storage (option bool); -code {CAR; PAIRING_CHECK; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/pexec.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/pexec.tz deleted file mode 100644 index eab0c71b4f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/pexec.tz +++ /dev/null @@ -1,6 +0,0 @@ -parameter nat; -storage nat; -code { - LAMBDA (pair nat nat) nat - {UNPAIR ; ADD}; - SWAP; UNPAIR ; DIP { APPLY } ; EXEC ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/pexec_2.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/pexec_2.tz deleted file mode 100644 index d64f7442f5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/pexec_2.tz +++ /dev/null @@ -1,11 +0,0 @@ -parameter int; -storage (list int); -code { - UNPAIR @p @s ; # p :: s - LAMBDA (pair int (pair int int)) int - { UNPAIR ; DIP { UNPAIR } ; ADD ; MUL }; # l :: p :: s - SWAP ; APPLY ; # l :: s - PUSH int 3 ; APPLY ; # l :: s - SWAP ; MAP { DIP { DUP } ; EXEC } ; # s :: l - DIP { DROP } ; # s - NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/proxy.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/proxy.tz deleted file mode 100644 index 185bbcd321..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/proxy.tz +++ /dev/null @@ -1,13 +0,0 @@ -/* This proxy contract transfers the received amount to the contract given as parameter. - It is used to test the SOURCE and SENDER opcodes; see source.tz and sender.tz. */ -parameter (contract unit) ; -storage unit ; -code{ - UNPAIR; - AMOUNT ; - UNIT ; - TRANSFER_TOKENS; - DIP {NIL operation} ; - CONS; - PAIR - } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ret_int.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ret_int.tz deleted file mode 100644 index 720a99568e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ret_int.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage (option nat); -code {DROP; PUSH nat 300; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/reverse.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/reverse.tz deleted file mode 100644 index 5a851f3e29..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/reverse.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (list string); -storage (list string); -code { CAR; NIL string; SWAP; - ITER {CONS}; - NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/reverse_loop.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/reverse_loop.tz deleted file mode 100644 index d8117135c9..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/reverse_loop.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (list string); -storage (list string); -code { CAR; NIL string; SWAP; PUSH bool True; - LOOP { IF_CONS {SWAP; DIP{CONS}; PUSH bool True} {NIL string; PUSH bool False}}; - DROP; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/sapling_empty_state.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/sapling_empty_state.tz deleted file mode 100644 index 6a568da92d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/sapling_empty_state.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage (sapling_state 8); -code { DROP; SAPLING_EMPTY_STATE 8; NIL operation; PAIR; }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/self.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/self.tz deleted file mode 100644 index d96457fd13..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/self.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit ; -storage address ; -code { DROP ; SELF ; ADDRESS ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/self_address.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/self_address.tz deleted file mode 100644 index 73f4779bab..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/self_address.tz +++ /dev/null @@ -1,11 +0,0 @@ -parameter unit; -storage unit; -code { - DROP; - LAMBDA unit address { DROP; SELF_ADDRESS }; - UNIT; - EXEC; - SELF; ADDRESS; - ASSERT_CMPEQ; - UNIT; NIL operation; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/self_with_default_entrypoint.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/self_with_default_entrypoint.tz deleted file mode 100644 index 47f848c0d5..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/self_with_default_entrypoint.tz +++ /dev/null @@ -1,19 +0,0 @@ -parameter (or (or (nat %A) (bool %B)) (or %maybe_C (unit %default) (string %C))); -storage unit; -code { - DROP; - SELF; DROP; - # Refers to entrypoint A of the current contract. - SELF %A; DROP; - # Refers to the default entry of the current contract - SELF %default; PACK; - # "SELF" w/o annotation also refers to the default - # entry of the current contract. Internally, they are equal. - SELF; PACK; ASSERT_CMPEQ; - # The following instruction would not typecheck: - # SELF %D, - # since there is no entrypoint D. - UNIT; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/self_with_entrypoint.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/self_with_entrypoint.tz deleted file mode 100644 index ea6f8e1898..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/self_with_entrypoint.tz +++ /dev/null @@ -1,26 +0,0 @@ -parameter (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C))); -storage unit; -code { - DROP; - # Refers to entrypoint A of the current contract. - SELF %A; PACK @Apacked; - # Refers to the default entry of the current contract - SELF %default; PACK @defpacked; DUP; DIP { SWAP }; ASSERT_CMPNEQ; - # "SELF" w/o annotation also refers to the default - # entry of the current contract - SELF; PACK @selfpacked; ASSERT_CMPEQ; - - # Verify the types of the different entrypoints. CAST is noop - # if its argument is convertible with the type of the top of - # the stack. - SELF %A; CAST (contract nat); DROP; - SELF %B; CAST (contract bool); DROP; - SELF %maybe_C; CAST (contract (or (unit) (string))); DROP; - SELF %Z; CAST (contract unit); DROP; - SELF; CAST (contract (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C)))); DROP; - SELF %default; CAST (contract (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C)))); DROP; - - UNIT; - NIL operation; - PAIR; - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/sender.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/sender.tz deleted file mode 100644 index fb174179ac..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/sender.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter unit ; -storage address ; -code{ - DROP ; - SENDER; - NIL operation ; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_car.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/set_car.tz deleted file mode 100644 index 460b338567..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_car.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage (pair (string %s) (nat %n)); -code { DUP; CDR; DIP{CAR}; SET_CAR %s; NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_cdr.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/set_cdr.tz deleted file mode 100644 index d725756bbc..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_cdr.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter nat; -storage (pair (string %s) (nat %n)); -code { DUP; CDR; DIP{CAR}; SET_CDR %n; NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_delegate.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/set_delegate.tz deleted file mode 100644 index a7e051e504..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_delegate.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (option key_hash); -storage unit; -code { - UNPAIR; - SET_DELEGATE; - DIP {NIL operation}; - CONS; - PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_id.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/set_id.tz deleted file mode 100644 index ede301b0e9..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (set string); -storage (set string); -code { CAR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_iter.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/set_iter.tz deleted file mode 100644 index 55d8ae34ab..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_iter.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (set int); -storage int; -code { CAR; PUSH int 0; SWAP; ITER { ADD }; NIL operation; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_member.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/set_member.tz deleted file mode 100644 index ae97cce143..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_member.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage (pair (set string) (option bool)); -code {DUP; DUP; CAR; DIP{CDAR}; MEM; SOME; DIP {CDAR}; SWAP; PAIR ; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_size.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/set_size.tz deleted file mode 100644 index aa055cb021..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/set_size.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (set int); -storage nat; -code {CAR; SIZE; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/sha3.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/sha3.tz deleted file mode 100644 index 3ce8cde000..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/sha3.tz +++ /dev/null @@ -1,8 +0,0 @@ -storage (option bytes); -parameter bytes; -code - { - CAR; - SHA3; SOME; - NIL operation; PAIR - } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/shifts.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/shifts.tz deleted file mode 100644 index 71964750c0..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/shifts.tz +++ /dev/null @@ -1,18 +0,0 @@ -parameter (or (pair nat nat) (pair nat nat)); -storage (option nat); -# this contract takes either (Left a b) and stores (a << b) -# or (Right a b) and stores (a >> b). -# i.e., in the first case, the first component shifted to the left by -# the second, and the second case, component shifted to the right by -# the second. -code { CAR; - IF_LEFT { - UNPAIR; LSL; - } - { - UNPAIR; LSR; - }; - SOME; - NIL operation; - PAIR; - }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/slice.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/slice.tz deleted file mode 100644 index 3461bb5533..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/slice.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (pair nat nat); -storage (option string); -code { UNPAIR; SWAP; - IF_SOME {SWAP; UNPAIR; SLICE;} {DROP; NONE string;}; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/slice_bytes.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/slice_bytes.tz deleted file mode 100644 index c0f60f3587..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/slice_bytes.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (pair nat nat); -storage (option bytes); -code { UNPAIR; SWAP; - IF_SOME {SWAP; UNPAIR; SLICE;} {DROP; NONE bytes;}; - NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/slices.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/slices.tz deleted file mode 100644 index fa76827261..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/slices.tz +++ /dev/null @@ -1,11 +0,0 @@ -parameter (pair bytes signature) ; -storage key ; -code { DUP ; - CAAR ; DUP ; SIZE ; PUSH nat 128 ; SWAP ; SUB ; ISNAT ; IF_SOME {} { FAIL } ; - PUSH nat 128 ; SLICE @payload ; ASSERT_SOME ; - DUP ; DIP { DIP { DUP ; CAAR ; PUSH nat 32 ; PUSH nat 0 ; SLICE ; ASSERT_SOME } ; SHA256 ; ASSERT_CMPEQ } ; - DUP ; DIP { DIP { DUP ; CAAR ; PUSH nat 32 ; PUSH nat 32 ; SLICE ; ASSERT_SOME } ; BLAKE2B ; ASSERT_CMPEQ } ; - DUP ; DIP { DIP { DUP ; CAAR ; PUSH nat 64 ; PUSH nat 64 ; SLICE ; ASSERT_SOME } ; SHA512 ; ASSERT_CMPEQ } ; - DIP { DUP ; CDR ; DIP { DUP ; CADR }} ; SWAP ; DIP { SWAP } ; CHECK_SIGNATURE ; ASSERT ; - CDR ; DUP ; HASH_KEY ; IMPLICIT_ACCOUNT ; BALANCE ; UNIT ; TRANSFER_TOKENS ; - NIL operation ; SWAP ; CONS ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/source.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/source.tz deleted file mode 100644 index fc3c642027..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/source.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter unit ; - -storage address ; - -code{ - DROP ; - SOURCE; - NIL operation ; - PAIR - } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/split_bytes.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/split_bytes.tz deleted file mode 100644 index f3b623b3c4..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/split_bytes.tz +++ /dev/null @@ -1,16 +0,0 @@ -parameter bytes ; -storage (list bytes) ; -code { UNPAIR ; - DIP { NIL bytes ; SWAP ; ITER { CONS } } ; - DUP ; SIZE ; PUSH nat 0 ; CMPNEQ ; - DIP { PUSH @index nat 0 } ; - LOOP - { PAIR ; DUP ; - DIP { UNPAIR ; DIP { PUSH nat 1 } ; SLICE ; ASSERT_SOME ; CONS @storage } ; - UNPAIR ; - PUSH nat 1 ; ADD @index ; - DUP ; DIP { DIP { DUP } ; SWAP ; SIZE ; CMPNEQ } ; SWAP ; - } ; - DROP ; DROP ; - NIL bytes ; SWAP ; ITER { CONS } ; - NIL operation ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/split_string.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/split_string.tz deleted file mode 100644 index 909ba60474..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/split_string.tz +++ /dev/null @@ -1,16 +0,0 @@ -parameter string ; -storage (list string) ; -code { UNPAIR ; - DIP { NIL string ; SWAP ; ITER { CONS } } ; - DUP ; SIZE ; PUSH nat 0 ; CMPNEQ ; - DIP { PUSH @index nat 0 } ; - LOOP - { PAIR ; DUP ; - DIP { UNPAIR ; DIP { PUSH nat 1 } ; SLICE ; ASSERT_SOME ; CONS @storage } ; - UNPAIR ; - PUSH nat 1 ; ADD @index ; - DUP ; DIP { DIP { DUP } ; SWAP ; SIZE ; CMPNEQ } ; SWAP ; - } ; - DROP ; DROP ; - NIL string ; SWAP ; ITER { CONS } ; - NIL operation ; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_fr.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_fr.tz deleted file mode 100644 index b40aa9b4ad..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_fr.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bls12_381_fr; -storage (option (bls12_381_fr)); -code {CAR; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_g1.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_g1.tz deleted file mode 100644 index 1bc148f542..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_g1.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bls12_381_g1; -storage (option (bls12_381_g1)); -code {CAR; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_g2.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_g2.tz deleted file mode 100644 index b640877062..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/store_bls12_381_g2.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter bls12_381_g2; -storage (option (bls12_381_g2)); -code {CAR; SOME; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/store_input.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/store_input.tz deleted file mode 100644 index 4eee565ca2..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/store_input.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage string; -code {CAR; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/store_now.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/store_now.tz deleted file mode 100644 index 1a868ac06f..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/store_now.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage timestamp; -code {DROP; NOW; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/str_id.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/str_id.tz deleted file mode 100644 index f9e0710c32..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/str_id.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter string; -storage (option string); -code { CAR ; SOME ; NIL operation ; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/sub_timestamp_delta.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/sub_timestamp_delta.tz deleted file mode 100644 index f154e95241..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/sub_timestamp_delta.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (pair timestamp int); -storage timestamp; -code { CAR; DUP; CAR; DIP{CDR}; SUB; NIL operation; PAIR} diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/subset.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/subset.tz deleted file mode 100644 index a16ef1695c..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/subset.tz +++ /dev/null @@ -1,12 +0,0 @@ -parameter (pair (set string) (set string)); -storage bool; -code { CAR; DUP; CDR; DIP{CAR}; # Unpack lists - PUSH bool True; - PAIR; SWAP; # Setup accumulator - ITER { DIP{ DUP; DUP; CDR; - DIP{CAR; DIP{CDR}}}; - MEM; # Check membership - AND; # Combine accumulator and input - PAIR}; - CAR; # Get the accumulator value - NIL operation; PAIR} # Calling convention diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/tez_add_sub.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/tez_add_sub.tz deleted file mode 100644 index 39eba1d162..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/tez_add_sub.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (pair mutez mutez); -storage (option (pair mutez mutez)); -code {CAR; DUP; DUP; CAR; DIP{CDR}; ADD; - DIP{DUP; CAR; DIP{CDR}; SUB}; - PAIR; SOME; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_bad.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_bad.tz deleted file mode 100644 index e183ac5278..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_bad.tz +++ /dev/null @@ -1,5 +0,0 @@ -# Although this contract is correctly typed, originating it with a forged -# ticket should be refused -parameter unit; -storage (ticket nat); -code { CDR ; NIL operation ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_big_store.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_big_store.tz deleted file mode 100644 index 6d1de84523..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_big_store.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter nat ; -storage (big_map unit (ticket nat)); -code { UNPAIR ; PUSH nat 1 ; SWAP ; TICKET ; SOME ; UNIT ; UPDATE ; NIL operation ; PAIR } ; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_join.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_join.tz deleted file mode 100644 index 3aef469a48..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_join.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter (ticket nat); -storage (option (ticket nat)); -code { UNPAIR ; SWAP ; - IF_NONE {} { PAIR ; JOIN_TICKETS ; ASSERT_SOME } ; - SOME ; - NIL operation ; - PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_read.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_read.tz deleted file mode 100644 index c41176a5fe..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_read.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter (ticket nat); -storage address; -code { CAR ; - READ_TICKET ; DIP { DROP } ; UNPAIR ; DIP { UNPAIR } ; - DIIP { PUSH nat 1 ; ASSERT_CMPEQ } ; - DIP { PUSH nat 42 ; ASSERT_CMPEQ } ; - NIL operation ; - PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_split.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_split.tz deleted file mode 100644 index a2587beb71..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_split.tz +++ /dev/null @@ -1,11 +0,0 @@ -parameter (ticket nat) ; -storage unit; -code - { CAR ; - PUSH (pair nat nat) (Pair 1 2) ; SWAP; - SPLIT_TICKET; ASSERT_SOME; UNPAIR; - READ_TICKET; CDDR; PUSH nat 1; ASSERT_CMPEQ; - DROP; - READ_TICKET; CDDR; PUSH nat 2; ASSERT_CMPEQ; - DROP; - UNIT ; NIL operation ; PAIR } ; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_store-2.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_store-2.tz deleted file mode 100644 index cab3dd79d0..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_store-2.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (option (ticket nat)) ; -storage (option (ticket nat)); -code { CAR ; NIL operation ; PAIR } ; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_store.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_store.tz deleted file mode 100644 index 926a04aa1e..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticket_store.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter (ticket nat) ; -storage (option (ticket nat)); -code { CAR ; SOME ; NIL operation ; PAIR } ; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticketer-2.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ticketer-2.tz deleted file mode 100644 index bce940ccab..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticketer-2.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (pair (pair address nat) nat) ; -storage unit; -code { CAR ; UNPAIR ; UNPAIR ; - CONTRACT (ticket nat) ; ASSERT_SOME ; - DIP { TICKET } ; - SWAP ; DIP { PUSH mutez 0 } ; - TRANSFER_TOKENS ; - NIL operation ; SWAP ; CONS ; - UNIT ; SWAP ; PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticketer.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/ticketer.tz deleted file mode 100644 index c8ec456539..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/ticketer.tz +++ /dev/null @@ -1,10 +0,0 @@ -parameter address; -storage nat; -code { UNPAIR ; DIP { DUP } ; - SWAP ; - PUSH nat 1 ; SWAP ; - TICKET ; - DIP { CONTRACT (ticket nat) ; ASSERT_SOME ; PUSH mutez 0 } ; - TRANSFER_TOKENS ; - NIL operation ; SWAP ; CONS ; - PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/transfer_amount.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/transfer_amount.tz deleted file mode 100644 index 973c64f04d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/transfer_amount.tz +++ /dev/null @@ -1,3 +0,0 @@ -parameter unit; -storage mutez; -code { DROP; AMOUNT; NIL operation; PAIR }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/transfer_tokens.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/transfer_tokens.tz deleted file mode 100644 index 599b4dae18..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/transfer_tokens.tz +++ /dev/null @@ -1,5 +0,0 @@ -parameter (contract unit); -storage unit; -code { CAR; DIP{UNIT}; PUSH mutez 100000000; UNIT; - TRANSFER_TOKENS; - NIL operation; SWAP; CONS; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/uncomb.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/uncomb.tz deleted file mode 100644 index 84c3ced7ca..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/uncomb.tz +++ /dev/null @@ -1,8 +0,0 @@ -parameter (pair nat nat nat); -storage nat; -code { CAR ; - UNPAIR 3 ; - PUSH nat 100 ; MUL ; - SWAP ; PUSH nat 10 ; MUL ; - ADD ; ADD ; - NIL operation ; PAIR ; } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/unpair.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/unpair.tz deleted file mode 100644 index b45f30a03d..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/unpair.tz +++ /dev/null @@ -1,71 +0,0 @@ -parameter (unit :param_unit); -storage (unit :u1); -code { DROP ; - - # No annotation - UNIT; UNIT; PAIR; UNPAIR; DROP 2; - - # Variable annotations are overriden by UNPAIR - UNIT @b; UNIT @a; PAIR; UNPAIR @c @d; DROP 2; - - UNIT @b; UNIT @a; PAIR %@ %@; - DUP; UNPAIR %a %b; DROP 2; - DUP; UNPAIR % %b; DROP 2; - DUP; UNPAIR %a %; DROP 2; - DUP; UNPAIR % %; DROP 2; - DUP; UNPAIR %a; DROP 2; - DUP; UNPAIR %; DROP 2; - DUP; UNPAIR; DROP 2; - DUP; UNPAIR %a %b @a @b; DROP 2; - DUP; UNPAIR @a @b %a %b; DROP 2; - DUP; UNPAIR @a @% %a %b; DROP 2; - DUP; UNPAIR @% @% %a %b; DROP 2; - DUP; UNPAIR @% @b %a %b; DROP 2; - DROP; - - # Same test with non-matching field and variable annotations - UNIT @d; UNIT @c; PAIR %a %b; - DUP; UNPAIR %a %b; DROP 2; - DUP; UNPAIR % %b; DROP 2; - DUP; UNPAIR %a %; DROP 2; - DUP; UNPAIR % %; DROP 2; - DUP; UNPAIR %a; DROP 2; - DUP; UNPAIR %; DROP 2; - DUP; UNPAIR; DROP 2; - DUP; UNPAIR %a %b @a @b; DROP 2; - DUP; UNPAIR @a @b %a %b; DROP 2; - DUP; UNPAIR @a @% %a %b; DROP 2; - DUP; UNPAIR @% @% %a %b; DROP 2; - DUP; UNPAIR @% @b %a %b; DROP 2; - DROP; - - # Same tests without the variable annotations in input - UNIT; UNIT; PAIR %a %b; - DUP; UNPAIR %a %b; DROP 2; - DUP; UNPAIR % %b; DROP 2; - DUP; UNPAIR %a %; DROP 2; - DUP; UNPAIR % %; DROP 2; - DUP; UNPAIR %a; DROP 2; - DUP; UNPAIR %; DROP 2; - DUP; UNPAIR; DROP 2; - DUP; UNPAIR %a %b @a @b; DROP 2; - DUP; UNPAIR @a @b %a %b; DROP 2; - DUP; UNPAIR @a @% %a %b; DROP 2; - DUP; UNPAIR @% @% %a %b; DROP 2; - DUP; UNPAIR @% @b %a %b; DROP 2; - DROP; - - # Tests for @%% - UNIT; UNIT; PAIR %a %b @p; - DUP; UNPAIR @%% @b; DROP 2; - DUP; UNPAIR @a @%%; DROP 2; - DUP; UNPAIR @%% @%%; DROP 2; - DUP; UNPAIR @% @%%; DROP 2; - DUP; UNPAIR @%% @%; DROP 2; - DROP; - - # Swapping variable annotations - UNIT @b; UNIT @a; PAIR @c; UNPAIR @b @a; DROP 2; - - # End of test - UNIT; NIL operation; PAIR } \ No newline at end of file diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/update_big_map.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/update_big_map.tz deleted file mode 100644 index c403975a38..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/update_big_map.tz +++ /dev/null @@ -1,6 +0,0 @@ -storage (pair (big_map string string) unit); -parameter (map string (option string)); -# this contract the stored big_map according to the map taken in parameter -code { UNPAPAIR; - ITER { UNPAIR; UPDATE; } ; - PAIR; NIL operation; PAIR}; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/utxo_read.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/utxo_read.tz deleted file mode 100644 index aec29b7973..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/utxo_read.tz +++ /dev/null @@ -1,9 +0,0 @@ -parameter (pair (ticket nat) nat); -storage address; -code { CAR ; - UNPAIR ; - READ_TICKET ; DIP { DROP } ; UNPAIR ; DIP { UNPAIR } ; - DIIP { ASSERT_CMPEQ } ; - DIP { PUSH nat 42 ; ASSERT_CMPEQ } ; - NIL operation ; - PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/utxor.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/utxor.tz deleted file mode 100644 index 81d9632d35..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/utxor.tz +++ /dev/null @@ -1,24 +0,0 @@ -parameter (pair address address); -storage nat; -code { UNPAIR ; DIP { DUP } ; - SWAP ; - PUSH nat 5 ; SWAP ; - TICKET ; - PUSH nat 2 ; PUSH nat 3 ; PAIR ; - SWAP ; - SPLIT_TICKET ; - ASSERT_SOME ; - UNPAIR ; - DIP { DIP { DUP ; CAR ; - CONTRACT (pair (ticket nat) nat) ; ASSERT_SOME ; - PUSH mutez 0 } ; - PUSH nat 2 ; SWAP ; PAIR ; } ; - DIP { TRANSFER_TOKENS } ; - SWAP ; - DIP { DIP { CDR ; - CONTRACT (pair (ticket nat) nat) ; ASSERT_SOME ; - PUSH mutez 0 } ; - PUSH nat 3 ; SWAP ; PAIR ; } ; - DIP { TRANSFER_TOKENS } ; - NIL operation ; SWAP ; CONS ; SWAP ; CONS ; - PAIR } diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/voting_power.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/voting_power.tz deleted file mode 100644 index 741bb19678..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/voting_power.tz +++ /dev/null @@ -1,7 +0,0 @@ -parameter key; # A public key -storage (pair nat nat); -code { CAR; - HASH_KEY; VOTING_POWER; # Get the number of rolls for the key - DIP { TOTAL_VOTING_POWER }; # Get the total number of rolls - PAIR; - NIL operation; PAIR; }; diff --git a/packages/taquito-michel-codec/test/contracts_008/opcodes/xor.tz b/packages/taquito-michel-codec/test/contracts_008/opcodes/xor.tz deleted file mode 100644 index 557eaa642b..0000000000 --- a/packages/taquito-michel-codec/test/contracts_008/opcodes/xor.tz +++ /dev/null @@ -1,13 +0,0 @@ -parameter (or (pair bool bool) (pair nat nat)); -storage (option (or bool nat)); -code { - CAR; - IF_LEFT - { - UNPAIR; XOR; LEFT nat - } - { - UNPAIR; XOR; RIGHT bool - } ; - SOME; NIL operation ; PAIR - } diff --git a/packages/taquito-michel-codec/test/entrypoints.spec.ts b/packages/taquito-michel-codec/test/entrypoints.spec.ts new file mode 100644 index 0000000000..23fd00ca1c --- /dev/null +++ b/packages/taquito-michel-codec/test/entrypoints.spec.ts @@ -0,0 +1,260 @@ +import { Contract } from "../src/michelson-contract"; +import { MichelsonError } from "../src/utils"; +import { inspect } from "util"; + +describe('Entrypoints', () => { + it("big_map_entrypoints", () => { + const src = `storage + (pair (big_map string nat) (big_map string nat)) ; + parameter + (or (unit %default) + (or (or %mem (string %mem_left) (string %mem_right)) + (or (or %add (pair %add_left string nat) (pair %add_right string nat)) + (or %rem (string %rem_left) (string %rem_right))))) ; + code { UNPAIR ; + IF_LEFT + { DROP ; + DUP ; CAR ; + PUSH mutez 0 ; + NONE key_hash ; + CREATE_CONTRACT + { parameter string ; + storage (big_map string nat) ; + code { UNPAIR ; DROP ; NIL operation ; PAIR }} ; + DIP { DROP } ; + NIL operation ; SWAP ; CONS ; PAIR } + { IF_LEFT + { IF_LEFT + { DIP { UNPAIR } ; DIP { DUP } ; MEM ; ASSERT } + { DIP { UNPAIR ; SWAP } ; DIP { DUP } ; MEM ; ASSERT ; SWAP } } + { IF_LEFT + { IF_LEFT + { UNPAIR ; DIIP { UNPAIR } ; DIP { SOME } ; UPDATE } + { UNPAIR ; DIIP { UNPAIR ; SWAP } ; DIP { SOME } ; UPDATE ; SWAP } } + { IF_LEFT + { DIP { UNPAIR } ; DIP { NONE nat } ; UPDATE } + { DIP { UNPAIR ; SWAP } ; DIP { NONE nat } ; UPDATE ; SWAP } } } ; + PAIR ; NIL operation ; PAIR } }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("delegatable_target", () => { + const src = `# Michelson pseudo-code to transform from source script. + # This transformation adds 'set_delegate' entrypoint, e.g.: + # + # parameter <parameter_expr> ; + # storage <storage_expr> ; + # code <code_expr> ; + # + # to: + parameter + (or + (or (key_hash %set_delegate) + (unit %remove_delegate)) + (or %default string nat) + ) ; + + storage + (pair + key_hash # manager + (pair string nat) + ) ; + + code { + DUP ; + CAR ; + IF_LEFT + { # 'set_delegate'/'remove_delegate' entrypoints + # Assert no token was sent: + # to send tokens, the default entry point should be used + PUSH mutez 0 ; + AMOUNT ; + ASSERT_CMPEQ ; + # Assert that the sender is the manager + DUUP ; + CDR ; + CAR ; + IMPLICIT_ACCOUNT ; ADDRESS ; + SENDER ; + IFCMPNEQ + { SENDER ; + PUSH string "Only the owner can operate." ; + PAIR ; + FAILWITH ; + } + { DIP { CDR ; NIL operation } ; + IF_LEFT + { # 'set_delegate' entrypoint + SOME ; + SET_DELEGATE ; + CONS ; + PAIR ; + } + { # 'remove_delegate' entrypoint + DROP ; + NONE key_hash ; + SET_DELEGATE ; + CONS ; + PAIR ; + } + } + } + { # Transform the inputs to the original script types + DIP { CDR ; DUP ; CDR } ; + PAIR ; + + # 'default' entrypoint - original code + { UNPAIR; + IF_LEFT + { DIP { UNPAIR ; DROP } } + { DUG 1; UNPAIR ; DIP { DROP } } ; + PAIR ; NIL operation ; PAIR } + # Transform the outputs to the new script types (manager's storage is unchanged) + SWAP ; + CAR ; + SWAP ; + UNPAIR ; + DIP { SWAP ; PAIR } ; + PAIR ; + } + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("manager", () => { + const src = `parameter + (or + (lambda %do unit (list operation)) + (unit %default)); + storage key_hash; + code + { UNPAIR ; + IF_LEFT + { # 'do' entrypoint + # Assert no token was sent: + # to send tokens, the default entry point should be used + PUSH mutez 0 ; + AMOUNT ; + ASSERT_CMPEQ ; + # Assert that the sender is the manager + DUUP ; + IMPLICIT_ACCOUNT ; + ADDRESS ; + SENDER ; + ASSERT_CMPEQ ; + # Execute the lambda argument + UNIT ; + EXEC ; + PAIR ; + } + { # 'default' entrypoint + DROP ; + NIL operation ; + PAIR ; + } + };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("no_default_target", () => { + const src = `storage (pair string nat) ; + parameter + (or unit (or %data string nat)) ; + code { UNPAIR ; + IF_LEFT + { DROP ; NIL operation ; PAIR } + { IF_LEFT + { DIP { UNPAIR ; DROP } } + { DUG 1; UNPAIR ; DIP { DROP } } ; + PAIR ; NIL operation ; PAIR } + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("no_entrypoint_target", () => { + const src = `storage (pair string nat) ; + parameter + (or unit (or string nat)) ; + code { UNPAIR ; + IF_LEFT + { DROP ; NIL operation ; PAIR } + { IF_LEFT + { DIP { UNPAIR ; DROP } } + { DUG 1; UNPAIR ; DIP { DROP } } ; + PAIR ; NIL operation ; PAIR } + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("rooted_target", () => { + const src = `storage (pair string nat) ; + parameter + (or %root unit (or %default string nat)) ; + code { UNPAIR ; + IF_LEFT + { DROP ; NIL operation ; PAIR } + { IF_LEFT + { DIP { UNPAIR ; DROP } } + { DUG 1; UNPAIR ; DIP { DROP } } ; + PAIR ; NIL operation ; PAIR } + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("simple_entrypoints", () => { + const src = `# A trivial contract with some entrypoints + parameter (or (unit %A) (or (string %B) (nat %C))) ; + storage unit; + code { CDR ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); +}); diff --git a/packages/taquito-michel-codec/test/macros.spec.ts b/packages/taquito-michel-codec/test/macros.spec.ts index 7ff1e5981f..7feb6fd82d 100644 --- a/packages/taquito-michel-codec/test/macros.spec.ts +++ b/packages/taquito-michel-codec/test/macros.spec.ts @@ -1,18 +1,12 @@ -import { Parser, ParserOptions } from '../src/micheline-parser'; +import { Parser } from '../src/micheline-parser'; import { emitMicheline } from '../src/micheline-emitter'; -import { Protocol } from '../src/michelson-types'; - -const parserOptions: ParserOptions = { - expandMacros: true, - protocol: Protocol.PtEdo2Zk, -}; describe('Macros', () => { it('CMPEQ', () => { const macro = '{ CMPEQ }'; const expanded = '{ { COMPARE ; EQ } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -21,7 +15,7 @@ describe('Macros', () => { it('CMPNEQ', () => { const macro = '{ CMPNEQ }'; const expanded = '{ { COMPARE ; NEQ } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -30,7 +24,7 @@ describe('Macros', () => { it('CMPLT', () => { const macro = '{ CMPLT }'; const expanded = '{ { COMPARE ; LT } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -39,7 +33,7 @@ describe('Macros', () => { it('CMPGT', () => { const macro = '{ CMPGT }'; const expanded = '{ { COMPARE ; GT } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -48,7 +42,7 @@ describe('Macros', () => { it('CMPLE', () => { const macro = '{ CMPLE }'; const expanded = '{ { COMPARE ; LE } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -57,7 +51,7 @@ describe('Macros', () => { it('CMPGE', () => { const macro = '{ CMPGE }'; const expanded = '{ { COMPARE ; GE } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -66,7 +60,7 @@ describe('Macros', () => { it('IFEQ', () => { const macro = '{ IFEQ { UNIT } { UNIT } }'; const expanded = '{ { EQ ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -75,7 +69,7 @@ describe('Macros', () => { it('IFNEQ', () => { const macro = '{ IFNEQ { UNIT } { UNIT } }'; const expanded = '{ { NEQ ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -84,7 +78,7 @@ describe('Macros', () => { it('IFLT', () => { const macro = '{ IFLT { UNIT } { UNIT } }'; const expanded = '{ { LT ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -93,7 +87,7 @@ describe('Macros', () => { it('IFGT', () => { const macro = '{ IFGT { UNIT } { UNIT } }'; const expanded = '{ { GT ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -102,7 +96,7 @@ describe('Macros', () => { it('IFLE', () => { const macro = '{ IFLE { UNIT } { UNIT } }'; const expanded = '{ { LE ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -111,7 +105,7 @@ describe('Macros', () => { it('IFGE', () => { const macro = '{ IFGE { UNIT } { UNIT } }'; const expanded = '{ { GE ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -120,7 +114,7 @@ describe('Macros', () => { it('IFCMPEQ', () => { const macro = '{ IFCMPEQ { UNIT } { UNIT } }'; const expanded = '{ { COMPARE ; EQ ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -129,7 +123,7 @@ describe('Macros', () => { it('IFCMPNEQ', () => { const macro = '{ IFCMPNEQ { UNIT } { UNIT } }'; const expanded = '{ { COMPARE ; NEQ ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -138,7 +132,7 @@ describe('Macros', () => { it('IFCMPLT', () => { const macro = '{ IFCMPLT { UNIT } { UNIT } }'; const expanded = '{ { COMPARE ; LT ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -147,7 +141,7 @@ describe('Macros', () => { it('IFCMPGT', () => { const macro = '{ IFCMPGT { UNIT } { UNIT } }'; const expanded = '{ { COMPARE ; GT ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -156,7 +150,7 @@ describe('Macros', () => { it('IFCMPLE', () => { const macro = '{ IFCMPLE { UNIT } { UNIT } }'; const expanded = '{ { COMPARE ; LE ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -165,7 +159,7 @@ describe('Macros', () => { it('IFCMPGE', () => { const macro = '{ IFCMPGE { UNIT } { UNIT } }'; const expanded = '{ { COMPARE ; GE ; IF { UNIT } { UNIT } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -174,7 +168,7 @@ describe('Macros', () => { it('FAIL', () => { const macro = '{ FAIL }'; const expanded = '{ { UNIT ; FAILWITH } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -183,7 +177,7 @@ describe('Macros', () => { it('ASSERT', () => { const macro = '{ ASSERT }'; const expanded = '{ { IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -192,7 +186,7 @@ describe('Macros', () => { it('ASSERT_EQ', () => { const macro = '{ ASSERT_EQ }'; const expanded = '{ { EQ ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -201,7 +195,7 @@ describe('Macros', () => { it('ASSERT_NEQ', () => { const macro = '{ ASSERT_NEQ }'; const expanded = '{ { NEQ ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -210,7 +204,7 @@ describe('Macros', () => { it('ASSERT_LT', () => { const macro = '{ ASSERT_LT }'; const expanded = '{ { LT ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -219,7 +213,7 @@ describe('Macros', () => { it('ASSERT_GT', () => { const macro = '{ ASSERT_GT }'; const expanded = '{ { GT ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -228,7 +222,7 @@ describe('Macros', () => { it('ASSERT_LE', () => { const macro = '{ ASSERT_LE }'; const expanded = '{ { LE ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -237,7 +231,7 @@ describe('Macros', () => { it('ASSERT_GE', () => { const macro = '{ ASSERT_GE }'; const expanded = '{ { GE ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -246,7 +240,7 @@ describe('Macros', () => { it('ASSERT_CMPEQ', () => { const macro = '{ ASSERT_CMPEQ }'; const expanded = '{ { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -255,7 +249,7 @@ describe('Macros', () => { it('ASSERT_CMPNEQ', () => { const macro = '{ ASSERT_CMPNEQ }'; const expanded = '{ { { COMPARE ; NEQ } ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -264,7 +258,7 @@ describe('Macros', () => { it('ASSERT_CMPLT', () => { const macro = '{ ASSERT_CMPLT }'; const expanded = '{ { { COMPARE ; LT } ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -273,7 +267,7 @@ describe('Macros', () => { it('ASSERT_CMPGT', () => { const macro = '{ ASSERT_CMPGT }'; const expanded = '{ { { COMPARE ; GT } ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -282,7 +276,7 @@ describe('Macros', () => { it('ASSERT_CMPLE', () => { const macro = '{ ASSERT_CMPLE }'; const expanded = '{ { { COMPARE ; LE } ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -291,7 +285,7 @@ describe('Macros', () => { it('ASSERT_CMPGE', () => { const macro = '{ ASSERT_CMPGE }'; const expanded = '{ { { COMPARE ; GE } ; IF {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -300,7 +294,7 @@ describe('Macros', () => { it('ASSERT_NONE', () => { const macro = '{ ASSERT_NONE }'; const expanded = '{ { IF_NONE {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -309,7 +303,7 @@ describe('Macros', () => { it('ASSERT_SOME', () => { const macro = '{ ASSERT_SOME }'; const expanded = '{ { IF_NONE { { UNIT ; FAILWITH } } {} } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -318,7 +312,7 @@ describe('Macros', () => { it('ASSERT_LEFT', () => { const macro = '{ ASSERT_LEFT }'; const expanded = '{ { IF_LEFT {} { { UNIT ; FAILWITH } } } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -327,7 +321,16 @@ describe('Macros', () => { it('ASSERT_RIGHT', () => { const macro = '{ ASSERT_RIGHT }'; const expanded = '{ { IF_LEFT { { UNIT ; FAILWITH } } {} } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); + const m = p.parseMichelineExpression(macro); + const e = p.parseMichelineExpression(expanded); + expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); + }); + + it('DUP 2', () => { + const macro = '{ DUP 2 }'; + const expanded = '{ { DIP { DUP } ; SWAP } }'; + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -335,8 +338,17 @@ describe('Macros', () => { it('DUUP', () => { const macro = '{ DUUP }'; - const expanded = '{ DUP 2 }'; - const p = new Parser(parserOptions); + const expanded = '{ { DIP { DUP } ; SWAP } }'; + const p = new Parser({ expandMacros: true }); + const m = p.parseMichelineExpression(macro); + const e = p.parseMichelineExpression(expanded); + expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); + }); + + it('DUP 3', () => { + const macro = '{ DUP 3 }'; + const expanded = '{ { DIP 2 { DUP } ; DIG 3 } }'; + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -345,7 +357,7 @@ describe('Macros', () => { it('PAPPAIIR %a %b @x', () => { const macro = '{ PAPPAIIR %a %b @x }'; const expanded = '{ { DIP { PAIR %b } ; DIP { PAIR } ; PAIR %a @x } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -354,7 +366,7 @@ describe('Macros', () => { it('PAPPAIIR %a %b %c @x', () => { const macro = '{ PAPPAIIR %a %b %c @x }'; const expanded = '{ { DIP { PAIR %b %c } ; DIP { PAIR } ; PAIR %a @x } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -363,7 +375,7 @@ describe('Macros', () => { it('PAPPAIIR %a %b %c %d @x', () => { const macro = '{ PAPPAIIR %a %b %c %d @x }'; const expanded = '{ { DIP { PAIR %b %c } ; DIP { PAIR % %d } ; PAIR %a @x } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -372,7 +384,7 @@ describe('Macros', () => { it('PAPAPAIR', () => { const macro = '{ PAPAPAIR }'; const expanded = '{ { DIP 2 { PAIR } ; DIP { PAIR } ; PAIR } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -380,8 +392,10 @@ describe('Macros', () => { it('UNPAPPAIIR %a %b %c %d @x', () => { const macro = '{ UNPAPPAIIR %a %b %c %d @x }'; - const expanded = `{{UNPAIR; DIP {UNPAIR}; DIP {UNPAIR}}}`; - const p = new Parser(parserOptions); + const expanded = `{ { { DUP ; CAR %a ; DIP { CDR } } ; + DIP { { DUP ; CAR ; DIP { CDR %d } } } ; + DIP { { DUP ; CAR %b ; DIP { CDR %c } } } } }`; + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -389,8 +403,8 @@ describe('Macros', () => { it('UNPPAIPAIR', () => { const macro = '{ UNPPAIPAIR }'; - const expanded = `{{UNPAIR; DIP {UNPAIR}; UNPAIR}}`; - const p = new Parser(parserOptions); + const expanded = `{{{DUP; CAR; DIP {CDR}}; DIP {{DUP; CAR; DIP {CDR}}}; {DUP; CAR; DIP {CDR}}}}`; + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -398,8 +412,10 @@ describe('Macros', () => { it('UNPPAPAIIR', () => { const macro = '{ UNPPAPAIIR }'; - const expanded = `{{UNPAIR; UNPAIR; DIP {UNPAIR}}}`; - const p = new Parser(parserOptions); + const expanded = `{ { { DUP ; CAR ; DIP { CDR } } ; + { DUP ; CAR ; DIP { CDR } } ; + DIP { { DUP ; CAR ; DIP { CDR } } } } }`; + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -407,8 +423,8 @@ describe('Macros', () => { it('UNPPPAIIPAIR', () => { const macro = '{ UNPPPAIIPAIR }'; - const expanded = `{{UNPAIR; DIP {UNPAIR}; UNPAIR; UNPAIR}}`; - const p = new Parser(parserOptions); + const expanded = `{{{DUP; CAR; DIP {CDR}}; DIP {{DUP; CAR; DIP {CDR}}}; {DUP; CAR; DIP {CDR}}; {DUP; CAR; DIP {CDR}}}}`; + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -416,8 +432,8 @@ describe('Macros', () => { it('UNPAPPAIPAIR', () => { const macro = '{ UNPAPPAIPAIR }'; - const expanded = `{{UNPAIR; DIP {UNPAIR}; DIP 2 {UNPAIR}; DIP {UNPAIR}}}`; - const p = new Parser(parserOptions); + const expanded = `{{{DUP; CAR; DIP {CDR}}; DIP {{DUP; CAR; DIP {CDR}}}; DIP 2 {{DUP; CAR; DIP {CDR}}}; DIP {{DUP; CAR; DIP {CDR}}}}}`; + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -426,7 +442,7 @@ describe('Macros', () => { it('CAAR', () => { const macro = '{ CAAR }'; const expanded = '{ { CAR ; CAR } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -435,7 +451,7 @@ describe('Macros', () => { it('CDDR', () => { const macro = '{ CDDR }'; const expanded = '{ { CDR ; CDR } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -444,7 +460,7 @@ describe('Macros', () => { it('SET_CAR', () => { const macro = '{ SET_CAR }'; const expanded = '{ { CDR @%% ; SWAP ; PAIR % %@ } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -453,7 +469,7 @@ describe('Macros', () => { it('SET_CDR', () => { const macro = '{ SET_CDR }'; const expanded = '{ { CAR @%% ; PAIR %@ % } }'; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -466,7 +482,7 @@ describe('Macros', () => { CDR @%% ; SWAP ; PAIR %@ %@ } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -479,7 +495,7 @@ describe('Macros', () => { CDR @%% ; SWAP ; PAIR %@ %@ } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -491,7 +507,7 @@ describe('Macros', () => { DIP { CDR @%% ; { CDR @%% ; SWAP ; PAIR % %@ } } ; CAR @%% ; PAIR %@ %@ } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -503,7 +519,7 @@ describe('Macros', () => { DIP { CDR @%% ; { DUP ; CAR %a ; DROP ; CDR @%% ; SWAP ; PAIR %a %@ } } ; CAR @%% ; PAIR %@ %@ } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -516,7 +532,7 @@ describe('Macros', () => { DIP { CAR ; { { IF {} { { UNIT ; FAILWITH } } } } } ; SWAP ; PAIR % %@ } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -530,7 +546,7 @@ describe('Macros', () => { SWAP ; CAR @%% ; PAIR %@ % } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -549,7 +565,7 @@ describe('Macros', () => { CDR @%% ; SWAP ; PAIR %@ %@ } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -568,7 +584,7 @@ describe('Macros', () => { CDR @%% ; SWAP ; PAIR %@ %@ } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -585,7 +601,7 @@ describe('Macros', () => { PAIR % %@ } } ; CAR @%% ; PAIR %@ %@ } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -602,7 +618,7 @@ describe('Macros', () => { PAIR %a %@ } } ; CAR @%% ; PAIR %@ %@ } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); @@ -611,7 +627,7 @@ describe('Macros', () => { it('DIIP', () => { const macro = '{ DIIP { ASSERT } }'; const expanded = `{ DIP 2 { { IF {} { { UNIT ; FAILWITH } } } } }`; - const p = new Parser(parserOptions); + const p = new Parser({ expandMacros: true }); const m = p.parseMichelineExpression(macro); const e = p.parseMichelineExpression(expanded); expect(emitMicheline(m || [])).toEqual(emitMicheline(e || [])); diff --git a/packages/taquito-michel-codec/test/mini-scenarios.spec.ts b/packages/taquito-michel-codec/test/mini-scenarios.spec.ts new file mode 100644 index 0000000000..23ee2f527b --- /dev/null +++ b/packages/taquito-michel-codec/test/mini-scenarios.spec.ts @@ -0,0 +1,701 @@ +import { Contract } from "../src/michelson-contract"; +import { MichelsonError } from "../src/utils"; +import { formatError } from "../src/formatters"; + +describe('Mini scenarios', () => { + it("authentication", () => { + const src = `/* + + This contract is an example of using a cryptographic signature to + handle authentication. A public key is stored, and only the owner of + the secret key associated to this public key can interact with the + contract. She is allowed to perform any list of operations by sending + them wrapped in a lambda to the contract with a cryptographic + signature. + + To ensure that each signature is used only once and is not replayed by + an attacker, not only the lambda is signed but also the unique + identifier of the contract (a pair of the contract address and the + chain id) and a counter that is incremented at each successful call. + + More precisely, the signature should check against pack ((chain_id, + self) (param, counter)). + + */ + parameter (pair (lambda unit (list operation)) signature); + storage (pair (nat %counter) key); + code + { + UNPPAIPAIR; + DUUUP; DUUP ; SELF; CHAIN_ID ; PPAIPAIR; PACK; + DIP { SWAP }; DUUUUUP ; DIP { SWAP }; + DUUUP; DIP {CHECK_SIGNATURE}; SWAP; IF {DROP} {FAILWITH}; + UNIT; EXEC; + DIP { PUSH nat 1; ADD }; + PAPAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("big_map_entrypoints", () => { + const src = `storage + (pair (big_map string nat) (big_map string nat)) ; + parameter + (or (unit %default) + (or (or %mem (string %mem_left) (string %mem_right)) + (or (or %add (pair %add_left string nat) (pair %add_right string nat)) + (or %rem (string %rem_left) (string %rem_right))))) ; + code { UNPAIR ; + IF_LEFT + { DROP ; + DUP ; CAR ; + PUSH mutez 0 ; + NONE key_hash ; + CREATE_CONTRACT + { parameter string ; + storage (big_map string nat) ; + code { UNPAIR ; DROP ; NIL operation ; PAIR }} ; + DIP { DROP } ; + NIL operation ; SWAP ; CONS ; PAIR } + { IF_LEFT + { IF_LEFT + { DIP { UNPAIR } ; DIP { DUP } ; MEM ; ASSERT } + { DIP { UNPAIR ; SWAP } ; DIP { DUP } ; MEM ; ASSERT ; SWAP } } + { IF_LEFT + { IF_LEFT + { UNPAIR ; DIIP { UNPAIR } ; DIP { SOME } ; UPDATE } + { UNPAIR ; DIIP { UNPAIR ; SWAP } ; DIP { SOME } ; UPDATE ; SWAP } } + { IF_LEFT + { DIP { UNPAIR } ; DIP { NONE nat } ; UPDATE } + { DIP { UNPAIR ; SWAP } ; DIP { NONE nat } ; UPDATE ; SWAP } } } ; + PAIR ; NIL operation ; PAIR } }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("big_map_magic", () => { + const src = `# this contracts handles two big_maps + storage + (or (pair (big_map string string) (big_map string string)) unit) ; + parameter + # it has 5 entry points + # swap: swaps the two maps. + (or (unit %swap) + # reset: resets storage, either to a new pair of maps, or to unit + (or (or %reset (pair (big_map string string) (big_map string string)) unit) + # import: drops the existing storage and creates two maps + # from the given lists of string pairs. + (or (pair %import (list (pair string string)) (list (pair string string))) + # add: adds the given list of key - value pairs into the + # first map + (or (list %add (pair string string)) + # rem: removes the given list of key - value pairs + # from the first map + (list %rem string))))) ; + code { UNPAIR ; + IF_LEFT + { DROP ; ASSERT_LEFT ; UNPAIR ; SWAP ; PAIR ; LEFT unit } + { IF_LEFT + { SWAP ; DROP } + { IF_LEFT + { DIP { ASSERT_RIGHT ; DROP } ; + UNPAIR ; + DIP { EMPTY_BIG_MAP string string } ; + ITER { UNPAIR ; DIP { SOME } ; UPDATE } ; + SWAP ; + DIP { EMPTY_BIG_MAP string string } ; + ITER { UNPAIR ; DIP { SOME } ; UPDATE } ; + SWAP ; + PAIR ; LEFT unit } + { IF_LEFT + { DIP { ASSERT_LEFT ; UNPAIR } ; + ITER { UNPAIR ; DIP { SOME } ; UPDATE } ; + PAIR ; LEFT unit } + { DIP { ASSERT_LEFT ; UNPAIR } ; + ITER { DIP { NONE string } ; UPDATE } ; + PAIR ; LEFT unit } }} } ; + NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("create_contract", () => { + const src = `/* + - param: None: + + Create a contract then perform a recursive call on Some [addr] where + [addr] is the address of the newly created contract. + + The created contract simply stores its parameter (a string). It is + initialized with the storage "dummy" and has an initial balance of + 100tz. It has no delegate so these 100tz are totally frozen. + + - param: Some [addr]: + + Check that the sender is self, call the contract at address [addr] + with param "abcdefg" transferring 0tz. + + */ + parameter (option address) ; + storage unit ; + code { CAR ; + IF_NONE + { PUSH string "dummy" ; + PUSH mutez 100000000 ; NONE key_hash ; + CREATE_CONTRACT + { parameter string ; + storage string ; + code { CAR ; NIL operation ; PAIR } } ; + DIP { SOME ; DIP { SELF ; PUSH mutez 0 } ; TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS } ; + CONS ; UNIT ; SWAP ; PAIR } + { SELF ; ADDRESS ; SENDER ; IFCMPNEQ { FAIL } {} ; + CONTRACT string ; IF_SOME {} { FAIL } ; + PUSH mutez 0 ; PUSH string "abcdefg" ; TRANSFER_TOKENS ; + NIL operation; SWAP; CONS ; UNIT ; SWAP ; PAIR } } ;`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("create_contract_simple", () => { + const src = `parameter unit; + storage unit; + code { CAR; + PUSH string "foo"; + PUSH mutez 0; + NONE key_hash; + CREATE_CONTRACT + { parameter string ; + storage string ; + code { CAR ; NIL operation ; PAIR } } ; + DROP; DROP; + NIL operation; + PAIR; + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("default_account", () => { + const src = `/* + Send 100 tz to the implicit account given as parameter. + */ + + parameter key_hash; + storage unit; + code {DIP{UNIT}; CAR; IMPLICIT_ACCOUNT; + PUSH mutez 100000000; UNIT; TRANSFER_TOKENS; + NIL operation; SWAP; CONS; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("hardlimit", () => { + const src = `parameter unit ; + storage int ; + code { # This contract stops accepting transactions after N incoming transactions + CDR ; DUP ; PUSH int 0 ; CMPLT; IF {PUSH int -1 ; ADD} {FAIL}; + NIL operation ; PAIR} ;`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("lockup", () => { + const src = `parameter unit; + storage (pair timestamp (pair mutez address)); + code { CDR; # Ignore the parameter + DUP; # Duplicate the storage + CAR; # Get the timestamp + NOW; # Push the current timestamp + CMPLT; # Compare to the current time + IF {FAIL} {}; # Fail if it is too soon + DUP; # Duplicate the storage value + # this must be on the bottom of the stack for us to call transfer tokens + CDR; # Ignore the timestamp, focussing in on the transfer data + DUP; # Duplicate the transfer information + CAR; # Get the amount of the transfer on top of the stack + DIP{CDR}; # Put the contract underneath it + DIP { CONTRACT unit ; ASSERT_SOME } ; + UNIT; # Put the contract's argument type on top of the stack + TRANSFER_TOKENS; # Emit the transfer + NIL operation; SWAP; CONS;# Make a singleton list of internal operations + PAIR} # Pair up to meet the calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("multiple_en2", () => { + const src = `{ parameter unit ; + storage (option address) ; + code { SENDER ; + SELF ; + ADDRESS ; + { COMPARE ; + EQ ; + IF { CDR ; + { IF_NONE { { UNIT ; FAILWITH } } {} } ; + DIP { NIL operation } ; + DUP ; + CONTRACT %add unit ; + { IF_NONE {} { { UNIT ; FAILWITH } } } ; + DUP ; + CONTRACT %fact nat ; + { IF_NONE {} { { UNIT ; FAILWITH } } } ; + DUP ; + CONTRACT %add nat ; + { IF_NONE { { UNIT ; FAILWITH } } {} } ; + PUSH mutez 0 ; + PUSH nat 12 ; + TRANSFER_TOKENS ; + SWAP ; + DIP { CONS } ; + DUP ; + CONTRACT unit ; + { IF_NONE { { UNIT ; FAILWITH } } {} } ; + PUSH mutez 0 ; + PUSH unit Unit ; + TRANSFER_TOKENS ; + SWAP ; + DIP { CONS } ; + DUP ; + CONTRACT %sub nat ; + { IF_NONE { { UNIT ; FAILWITH } } {} } ; + PUSH mutez 0 ; + PUSH nat 3 ; + TRANSFER_TOKENS ; + SWAP ; + DIP { CONS } ; + DUP ; + CONTRACT %add nat ; + { IF_NONE { { UNIT ; FAILWITH } } {} } ; + PUSH mutez 0 ; + PUSH nat 5 ; + TRANSFER_TOKENS ; + SWAP ; + DIP { CONS } ; + DROP ; + DIP { NONE address } ; + PAIR } + { CAR ; + DUP ; + DIP { DIP { PUSH int 0 ; PUSH mutez 0 ; NONE key_hash } ; + DROP ; + CREATE_CONTRACT + { parameter (or (or (nat %add) (nat %sub)) (unit %default)) ; + storage int ; + code { AMOUNT ; + PUSH mutez 0 ; + { { COMPARE ; EQ } ; IF {} { { UNIT ; FAILWITH } } } ; + { { DUP ; CAR ; DIP { CDR } } } ; + IF_LEFT + { IF_LEFT { ADD } { SWAP ; SUB } } + { DROP ; DROP ; PUSH int 0 } ; + NIL operation ; + PAIR } } } ; + DIP { SELF ; PUSH mutez 0 } ; + TRANSFER_TOKENS ; + NIL operation ; + SWAP ; + CONS ; + SWAP ; + CONS ; + DIP { SOME } ; + PAIR } } + } }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("multiple_entrypoints_counter", () => { + const src = `{ parameter unit ; + storage (option address) ; + code { SENDER ; SELF ; ADDRESS ; + IFCMPEQ + { CDR ; ASSERT_SOME ; + DIP { NIL operation } ; + DUP ; CONTRACT %add unit ; ASSERT_NONE ; + DUP ; CONTRACT %fact nat ; ASSERT_NONE ; + DUP ; CONTRACT %add nat ; ASSERT_SOME ; PUSH mutez 0 ; PUSH nat 12 ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; + DUP ; CONTRACT unit ; ASSERT_SOME ; PUSH mutez 0 ; PUSH unit Unit ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; + DUP ; CONTRACT %sub nat ; ASSERT_SOME ; PUSH mutez 0 ; PUSH nat 3 ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; + DUP ; CONTRACT %add nat ; ASSERT_SOME ; PUSH mutez 0 ; PUSH nat 5 ; TRANSFER_TOKENS ; SWAP ; DIP { CONS } ; + DROP ; DIP { NONE address } ; PAIR } + { CAR ; DUP ; + DIP + { DIP { PUSH int 0 ; PUSH mutez 0 ; NONE key_hash } ; + DROP ; + CREATE_CONTRACT + { parameter (or (or (nat %add) (nat %sub)) (unit %default)) ; + storage int ; + code { AMOUNT ; PUSH mutez 0 ; ASSERT_CMPEQ ; + UNPAIR ; + IF_LEFT + { IF_LEFT { ADD } { SWAP ; SUB } } + { DROP ; DROP ; PUSH int 0 } ; + NIL operation ; PAIR } } } ; + DIP { SELF ; PUSH mutez 0 } ; TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS ; SWAP ; CONS ; + DIP { SOME } ; PAIR } } }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("parameterized_multisig", () => { + const src = `storage (pair bool (pair (map nat (pair bool bool)) (pair key key))); + parameter (or nat (pair signature nat)); + code { DUP; CAR; DIP{CDDR}; # Stack tangling + IF_LEFT { DIP{DUP; CAR}; GET; # Get the value stored for that index + IF_NONE { PUSH bool False} # If not referenced, reject + { DUP; CAR; DIP{CDR}; AND}; + PAIR} + { DUP; CAR; DIP{CDR; DUP; PACK ; BLAKE2B}; PAIR; SWAP; # Create the signature pair + DIP{ DIP{DUP; CDR; DIP{CAR}; DUP}; + SWAP; CAR; DIP{DUP; UNPAIR}; CHECK_SIGNATURE }; # Check the first signature + SWAP; + # If the signature typechecked, get and update the first element of the pair + IF { DIP{DROP; SWAP; DUP}; DUP; + DIP{ GET; IF_NONE{PUSH (pair bool bool) (Pair False False)} {}; + CDR; PUSH bool True; PAIR; SOME }} + # Check the second signature + { DIP{DIP{DUP; CDR}; SWAP; DIP {UNPAIR}; CHECK_SIGNATURE}; SWAP; + IF { DUP; DIP{DIP{SWAP; DUP}; GET}; SWAP; + IF_NONE {PUSH (pair bool bool) (Pair False False)} {}; + CAR; PUSH bool True; SWAP; PAIR; SOME; SWAP} + {FAIL}}; + # Update the stored value and finish off + UPDATE; PAIR; PUSH bool False; PAIR}; + NIL operation; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("replay", () => { + const src = `# This contract always fail because it tries to execute twice the same operation + parameter unit ; + storage unit ; + code { CDR ; NIL operation ; + SELF ; PUSH mutez 0 ; UNIT ; TRANSFER_TOKENS ; + DUP ; DIP { CONS } ; CONS ; + PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("reveal_signed_preimage", () => { + const src = `parameter (pair bytes signature) ; + storage (pair bytes key) ; + code { + #check that sha256(param.bytes) == storage.bytes + DUP ; UNPAIR ; CAR; SHA256; DIP { CAR } ; ASSERT_CMPEQ ; + + # check that the sig is a valid signature of the preimage + DUP ; UNPAIR ; SWAP ; DIP { UNPAIR ; SWAP } ; CDR ; CHECK_SIGNATURE ; ASSERT ; + + # send all our tokens to the implicit account corresponding to the stored public key + CDR ; DUP ; CDR ; HASH_KEY ; IMPLICIT_ACCOUNT ; + BALANCE ; UNIT ; TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("vote_for_delegate", () => { + const src = `parameter (option key_hash) ; + storage (pair + (pair %mgr1 (address %addr) (option %key key_hash)) + (pair %mgr2 (address %addr) (option %key key_hash))) ; + code { # Update the storage + DUP ; CDAAR %addr @%; SENDER ; PAIR %@ %@; UNPAIR; + IFCMPEQ + { UNPAIR ; SWAP ; SET_CADR %key @changed_mgr1_key } + { DUP ; CDDAR ; SENDER ; + IFCMPEQ + { UNPAIR ; SWAP ; SET_CDDR %key } + { FAIL } } ; + # Now compare the proposals + DUP ; CADR ; + DIP { DUP ; CDDR } ; + IF_NONE + { IF_NONE + { NONE key_hash ; + SET_DELEGATE ; NIL operation ; SWAP ; CONS } + { DROP ; NIL operation } } + { SWAP ; + IF_SOME + { DIP { DUP } ; + IFCMPEQ + { SOME ; + SET_DELEGATE ; NIL operation ; SWAP ; CONS } + { DROP ; + NIL operation }} + { DROP ; NIL operation }} ; + PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("weather_insurance", () => { + const src = `parameter (pair (signature %signed_weather_data) (nat :rain %actual_level)); + # (pair (under_key over_key) (pair weather_service_key (pair rain_level days_in_future))) + storage (pair (pair (address %under_key) + (address %over_key)) + (pair (nat :rain %rain_level) (key %weather_service_key))); + code { DUP; DUP; + CAR; MAP_CDR{PACK ; BLAKE2B}; + SWAP; CDDDR %weather_service_key; + DIP {UNPAIR} ; CHECK_SIGNATURE @sigok; # Check if the data has been correctly signed + ASSERT; # If signature is not correct, end the execution + DUP; DUP; DUP; DIIIP{CDR %storage}; # Place storage type on bottom of stack + DIIP{CDAR}; # Place contracts below numbers + DIP{CADR %actual_level}; # Get actual rain + CDDAR %rain_level; # Get rain threshold + CMPLT; IF {CAR %under_key} {CDR %over_key}; # Select contract to receive tokens + CONTRACT unit ; ASSERT_SOME ; + BALANCE; UNIT ; TRANSFER_TOKENS @trans.op; # Setup and execute transfer + NIL operation ; SWAP ; CONS ; + PAIR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("xcat", () => { + const src = `parameter (bytes); + storage (unit); + code { + # Extract parameter from initial stack. + CAR @preimage; + DIP { + # Push contract constants to the stack. + # + # There's a temptation to use @storage to parametrize + # a contract but, in general, there's no reason to encumber + # @storage with immutable values. + PUSH @from key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; #changeme + IMPLICIT_ACCOUNT ; + PUSH @to key_hash "tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN"; #changeme + IMPLICIT_ACCOUNT ; + PUSH @target_hash bytes 0x123456; #changeme + PUSH @deadline timestamp "2018-08-08 00:00:00Z"; #changeme + }; + # Test if the deadline has passed. + SWAP; NOW; + IFCMPLT + # In case the deadline did pass: + { + # Ignore parameter, just transfer xtz balance back to @from + DROP; DROP; DROP; BALANCE; UNIT; TRANSFER_TOKENS; + } + # In case the deadline hasn't passed yet: + { + # Test length of parameter. + DUP; SIZE; + PUSH @max_length nat 32; + IFCMPLT + { PUSH string "preimage too long"; FAILWITH; } + { + # Test if it's a preimage of @target_hash. + SHA256 @candidate_hash; + IFCMPNEQ + { PUSH string "invalid preimage"; FAILWITH; } + { + # Transfer xtz balance to @to. + BALANCE; UNIT; TRANSFER_TOKENS; DIP { DROP }; + }; + }; + }; + # Transform single operation into a list. + NIL operation; SWAP; CONS; + UNIT; SWAP; PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); + + it("xcat_dapp", () => { + const src = `parameter (or + # First possible action is funding, to create an xcat + (pair %fund + (address %dest) + (pair %settings (bytes %target_hash) (timestamp %deadline))) + + # Other possible action is to claim the tokens (or ask a refund) + (or %claim_refund + (bytes %preimage_claim) + (bytes %refund_hash))); + + storage (pair + (big_map + bytes # The target hash is used as a key + (pair + # We store in %from the person who funded the xcat + (pair %recipients (address %from) (address %dest)) + (pair %settings (mutez %amount) (timestamp %deadline))) + ) + unit); + + code { + NIL @operations operation; SWAP; + UNPAPAIR @% @% @%; DIP {DUP}; + IF_LEFT # Let's fund a new xcat! + { + # Unpack the parameters + UNPAIR @% @%; + # Assert that the destination address is of type unit. + # This costs a bit more gas but limits foot-shooting. + DUP; CONTRACT @dest unit; ASSERT_SOME; DROP; + SWAP; UNPAIR @% @%; + DIP + { + AMOUNT @amount; + SENDER; + DUP; CONTRACT @from unit; ASSERT_SOME; DROP; + DIP { PAIR; SWAP; }; PAIR; PAIR; SOME @xcat; + SWAP; + }; + DUP; DIP { MEM; NOT; ASSERT }; # Assert that this target hash isn't already in the map + UPDATE; PAIR @new_storage; SWAP; PAIR; + } + { + # Let's process a claim or a refund + IF_LEFT + { # It's a claim! + DUP; SIZE; PUSH nat 32; ASSERT_CMPGE; + SHA256 @hash; DUP; DIP {SWAP}; + DIIP { + GET; ASSERT_SOME; + # Check deadline and prepare transaction. + DUP; CADR @%; CONTRACT @dest unit; ASSERT_SOME; + SWAP; CDR @%; + UNPAIR @% @%; SWAP; + # The deadline must not have passed + NOW; ASSERT_CMPLT; + # prepare transaction + UNIT; TRANSFER_TOKENS; + }; + } + { # It's a refund! + DUP; + DIP + { + GET; ASSERT_SOME; + DUP; CAAR @%; CONTRACT @from unit; ASSERT_SOME; SWAP; CDR; + UNPAIR @% @%; SWAP; + # The deadline must not HAVE passed + NOW; ASSERT_CMPGE; + UNIT; TRANSFER_TOKENS; SWAP; + }; + }; + # Clear the big map + NONE @none (pair (pair address address) (pair mutez timestamp)); + SWAP; UPDATE @cleared_map; SWAP; DIP { PAIR; SWAP }; + CONS; PAIR; + } + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(formatError(err)); + } + throw err; + } + }); +}); + diff --git a/packages/taquito-michel-codec/test/opcodes.spec.ts b/packages/taquito-michel-codec/test/opcodes.spec.ts new file mode 100644 index 0000000000..4f9235cb93 --- /dev/null +++ b/packages/taquito-michel-codec/test/opcodes.spec.ts @@ -0,0 +1,2183 @@ +import { Contract } from "../src/michelson-contract"; +import { MichelsonError } from "../src/utils"; +import { inspect } from "util"; + +describe('Opcodes', () => { + it("abs", () => { + const src = `parameter nat; +storage unit; +code { CAR; + DUP; NEG; ABS; COMPARE; ASSERT_EQ; + UNIT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("add", () => { + const src = `parameter unit; +storage unit; +code + { + CAR; + + PUSH int 2; PUSH int 2; ADD; PUSH int 4; ASSERT_CMPEQ; + PUSH int 2; PUSH int 2; ADD; PUSH int 4; ASSERT_CMPEQ; + PUSH int 2; PUSH nat 2; ADD; PUSH int 4; ASSERT_CMPEQ; + PUSH nat 2; PUSH int 2; ADD; PUSH int 4; ASSERT_CMPEQ; + PUSH nat 2; PUSH nat 2; ADD; PUSH nat 4; ASSERT_CMPEQ; + + # Offset a timestamp by 60 seconds + PUSH int 60; PUSH timestamp "2019-09-09T12:08:37Z"; ADD; + PUSH timestamp "2019-09-09T12:09:37Z"; ASSERT_CMPEQ; + + PUSH timestamp "2019-09-09T12:08:37Z"; PUSH int 60; ADD; + PUSH timestamp "2019-09-09T12:09:37Z"; ASSERT_CMPEQ; + + PUSH mutez 1000; PUSH mutez 1000; ADD; + PUSH mutez 2000; ASSERT_CMPEQ; + + NIL operation; + PAIR; + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("add_delta_timestamp", () => { + const src = `parameter (pair int timestamp); +storage (option timestamp); +code { CAR; DUP; CAR; DIP{CDR}; ADD; SOME; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("add_timestamp_delta", () => { + const src = `parameter (pair timestamp int); +storage (option timestamp); +code { CAR; DUP; CAR; DIP{CDR}; ADD; SOME; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("address", () => { + const src = `parameter (contract unit); +storage (option address); +code {CAR; ADDRESS; SOME; NIL operation; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("and", () => { + const src = `parameter (pair :param (bool %first) (bool %second)); +storage (option bool); +code { CAR ; UNPAIR; AND @and; SOME @res; NIL @noop operation; PAIR; UNPAIR @x @y; PAIR %a %b };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("and_binary", () => { + const src = `parameter unit; +storage unit; +code { DROP; + + # 0101 & 0110 = 0100 + PUSH nat 5; PUSH nat 6; AND; PUSH nat 4; ASSERT_CMPEQ; + + # 0110 & 0101 = 0100 + PUSH nat 6; PUSH int 5; AND; PUSH nat 4; ASSERT_CMPEQ; + + # Negative numbers are represented as with a initial virtual + # infinite series of 1's. + # Hence, AND with -1 (1111...) is identity: + + # 12 = ...1100 + # & -1 = ...1111 + # ---- + # = 12 = ...1100 + PUSH nat 12; PUSH int -1; AND; PUSH nat 12; ASSERT_CMPEQ; + + # 12 = ...0001100 + # & -5 = ...1111011 + # ----------------- + # 8 = ...0001000 + PUSH nat 12; PUSH int -5; AND; PUSH nat 8; ASSERT_CMPEQ; + + UNIT; NIL @noop operation; PAIR; };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("and_logical_1", () => { + const src = `parameter (pair bool bool); +storage bool; +code { CAR ; UNPAIR; AND @and; NIL @noop operation; PAIR; };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("balance", () => { + const src = `parameter unit; +storage mutez; +code {DROP; BALANCE; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("big_map_mem_nat", () => { + const src = `parameter nat; +storage (pair (big_map nat nat) (option bool)) ; +# stores (map, Some flag) where flag = parameter is a member of +# the map in first component of storage +code { UNPAIR; + DIP { CAR; DUP }; + MEM; SOME; SWAP; PAIR; NIL operation; PAIR;}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("big_map_mem_string", () => { + const src = `parameter string; +storage (pair (big_map string nat) (option bool)) ; +# stores (map, Some flag) where flag = parameter is a member of +# the map in first component of storage +code { UNPAIR; + DIP { CAR; DUP }; + MEM; SOME; SWAP; PAIR; NIL operation; PAIR;}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("big_map_to_self", () => { + const src = `parameter (or (pair %have_fun (big_map string nat) unit) (unit %default)); +storage (big_map string nat); +code { + UNPAIR; + DIP {NIL operation}; + IF_LEFT { + DROP + } + { + DROP; + SELF %have_fun; + PUSH mutez 0; + DUP 4; + PUSH (option nat) (Some 8); + PUSH string "hahaha"; + UPDATE; + UNIT; SWAP; PAIR; + TRANSFER_TOKENS; + CONS + }; + PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("car", () => { + const src = `parameter (pair (nat :l) (nat :r)); +storage nat; +code { CAR; CAR ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("cdr", () => { + const src = `parameter (pair (nat :l) (nat :r)); +storage nat; +code { CAR; CDR ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("chain_id", () => { + const src = `parameter unit; +storage unit; +code { CHAIN_ID; DROP; CAR; NIL operation; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("chain_id_store", () => { + const src = `parameter unit; +storage (option chain_id); +code { DROP; CHAIN_ID; SOME; NIL operation; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("check_signature", () => { + const src = `parameter key; +storage (pair signature string); +code { + DUP; DUP; + DIP{ CDR; DUP; CAR; + DIP{CDR; PACK}}; + CAR; CHECK_SIGNATURE; + IF {} {FAIL} ; + CDR; NIL operation ; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("compare", () => { + const src = `parameter unit; +storage unit; +code { + DROP; + + # bool + PUSH bool True; DUP; COMPARE; ASSERT_EQ; + PUSH bool False; DUP; COMPARE; ASSERT_EQ; + PUSH bool False; PUSH bool True; COMPARE; ASSERT_GT; + PUSH bool True; PUSH bool False; COMPARE; ASSERT_LT; + + # bytes + PUSH bytes 0xAABBCC; DUP; COMPARE; ASSERT_EQ; + PUSH bytes 0x; PUSH bytes 0x; COMPARE; ASSERT_EQ; + PUSH bytes 0x; PUSH bytes 0x01; COMPARE; ASSERT_GT; + PUSH bytes 0x01; PUSH bytes 0x02; COMPARE; ASSERT_GT; + PUSH bytes 0x02; PUSH bytes 0x01; COMPARE; ASSERT_LT; + + # int + PUSH int 1; DUP; COMPARE; ASSERT_EQ; + PUSH int 10; PUSH int 5; COMPARE; ASSERT_LT; + PUSH int -4; PUSH int 1923; COMPARE; ASSERT_GT; + + # nat + PUSH nat 1; DUP; COMPARE; ASSERT_EQ; + PUSH nat 10; PUSH nat 5; COMPARE; ASSERT_LT; + PUSH nat 4; PUSH nat 1923; COMPARE; ASSERT_GT; + + # key_hash + PUSH key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; DUP; COMPARE; ASSERT_EQ; + PUSH key_hash "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv"; PUSH key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; COMPARE; ASSERT_LT; + PUSH key_hash "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx"; PUSH key_hash "tz1ddb9NMYHZi5UzPdzTZMYQQZoMub195zgv"; COMPARE; ASSERT_GT; + + # mutez + PUSH mutez 1; DUP; COMPARE; ASSERT_EQ; + PUSH mutez 10; PUSH mutez 5; COMPARE; ASSERT_LT; + PUSH mutez 4; PUSH mutez 1923; COMPARE; ASSERT_GT; + + # string + PUSH string "AABBCC"; DUP; COMPARE; ASSERT_EQ; + PUSH string ""; PUSH string ""; COMPARE; ASSERT_EQ; + PUSH string ""; PUSH string "a"; COMPARE; ASSERT_GT; + PUSH string "a"; PUSH string "b"; COMPARE; ASSERT_GT; + PUSH string "b"; PUSH string "a"; COMPARE; ASSERT_LT; + + # timestamp + PUSH timestamp "2019-09-16T08:38:05Z"; DUP; COMPARE; ASSERT_EQ; + PUSH timestamp "2017-09-16T08:38:04Z"; PUSH timestamp "2019-09-16T08:38:05Z"; COMPARE; ASSERT_GT; + PUSH timestamp "2019-09-16T08:38:05Z"; PUSH timestamp "2019-09-16T08:38:04Z"; COMPARE; ASSERT_LT; + + UNIT; NIL operation; PAIR; + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("comparisons", () => { + const src = `parameter (list int); +storage (list (list bool)); +code { + CAR; + + NIL (list bool); + DIP {DUP; MAP { EQ; };}; SWAP; CONS; + DIP {DUP; MAP { NEQ; };}; SWAP; CONS; + DIP {DUP; MAP { LE; };}; SWAP; CONS; + DIP {DUP; MAP { LT; };}; SWAP; CONS; + DIP {DUP; MAP { GE; };}; SWAP; CONS; + DIP {MAP { GT; };}; SWAP; CONS; + + NIL operation; PAIR; + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("concat_hello", () => { + const src = `parameter (list string); +storage (list string); +code{ CAR; + MAP { PUSH @hello string "Hello "; CONCAT }; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("concat_hello_bytes", () => { + const src = `parameter (list bytes); +storage (list bytes); +code{ CAR; + MAP { PUSH bytes 0xFF; CONCAT }; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("concat_list", () => { + const src = `parameter (list string); +storage string; +code {CAR; PUSH string ""; SWAP; + ITER {SWAP; DIP{NIL string; SWAP; CONS}; CONS; CONCAT}; + NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("cons", () => { + const src = `parameter int; +storage (list int); +code { UNPAIR; CONS; NIL operation; PAIR; };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("contains_all", () => { + const src = `parameter (pair (list string) (list string)); +storage (option bool); +code {CAR; DUP; CAR; DIP{CDR}; EMPTY_SET string; SWAP; + ITER {PAIR; DUP; CAR; DIP{CDR}; PUSH bool True; SWAP; UPDATE}; + PUSH bool True; SWAP; PAIR; SWAP; + ITER {PAIR; DUP; DUP; CAR; DIP{CDAR; DIP{CDDR}; DUP}; MEM; DIP{SWAP}; AND; SWAP; PAIR}; + CDR; SOME; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("contract", () => { + const src = `parameter address; +storage unit; +code { + CAR; + CONTRACT unit; + ASSERT_SOME; + DROP; + UNIT; + NIL operation; + PAIR + };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("create_contract", () => { + const src = `parameter unit; +storage (option address); +code { DROP; + UNIT; # starting storage for contract + AMOUNT; # Push the starting balance + NONE key_hash; # No delegate + CREATE_CONTRACT # Create the contract + { parameter unit ; + storage unit ; + code + { CDR; + NIL operation; + PAIR; } }; + DIP {SOME;NIL operation};CONS ; PAIR} # Ending calling convention stuff`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("create_contract_rootname", () => { + const src = `# this contract creates a contract +parameter unit; +storage (option address); +code { DROP; + UNIT; # starting storage for contract + AMOUNT; # Push the starting balance + NONE key_hash; # No delegate + CREATE_CONTRACT # Create the contract + { parameter %root unit ; + storage unit ; + code + { CDR; + NIL operation; + PAIR; } }; + DIP {SOME;NIL operation}; CONS ; PAIR} # Ending calling convention stuff`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("create_contract_rootname_alt", () => { + const src = `parameter unit; +storage (option address); +code { DROP; + UNIT; # starting storage for contract + AMOUNT; # Push the starting balance + NONE key_hash; # No delegate + CREATE_CONTRACT # Create the contract + { parameter (unit %root) ; + storage unit ; + code + { CDR; + NIL operation; + PAIR; } }; + DIP {SOME;NIL operation}; CONS ; PAIR} # Ending calling convention stuff`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("diff_timestamps", () => { + const src = `parameter (pair timestamp timestamp); +storage int; +code { CAR; DUP; CAR; DIP{CDR}; SUB; NIL operation; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("dig_eq", () => { + const src = `parameter (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat (pair nat nat)))))))))))))))); +storage unit; +# this contract receives a 17-tuple, unpairs it, reverses the order, reverses it again, and pairs it and verifies that the result is the same as the original tuple. +code { CAR; + DUP; + + UNPAPAPAPAPAPAPAPAPAPAPAPAPAPAPAPAIR; + DIG 0; DIG 1; DIG 2; DIG 3; DIG 4; DIG 5; DIG 6; DIG 7; DIG 8; DIG 9; DIG 10; DIG 11; DIG 12; DIG 13; DIG 14; DIG 15; DIG 16; + # PUSH nat 1; ADD; + DIG 0; DIG 1; DIG 2; DIG 3; DIG 4; DIG 5; DIG 6; DIG 7; DIG 8; DIG 9; DIG 10; DIG 11; DIG 12; DIG 13; DIG 14; DIG 15; DIG 16; + PAPAPAPAPAPAPAPAPAPAPAPAPAPAPAPAIR; + ASSERT_CMPEQ; + + UNIT; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("dign", () => { + const src = `parameter (pair (pair (pair (pair nat nat) nat) nat) nat); +storage nat; +code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DIG 4 ; DIP { DROP ; DROP ; DROP ; DROP } ; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("dip", () => { + const src = `parameter (pair nat nat); +storage (pair nat nat); +code{ + CAR; UNPAIR; + DUP; DIP { ADD }; + PAIR; + NIL operation; + PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("dipn", () => { + const src = `parameter (pair (pair (pair (pair nat nat) nat) nat) nat); +storage nat; +code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DIP 5 {PUSH nat 6} ; DROP ; DROP ; DROP ; DROP ; DROP ; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("dropn", () => { + const src = `parameter (pair (pair (pair (pair nat nat) nat) nat) nat); +storage nat; +code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DROP 4 ; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("dugn", () => { + const src = `parameter (pair (pair (pair (pair nat nat) nat) nat) nat); +storage nat; +code {CAR; UNPAIR ; UNPAIR ; UNPAIR ; UNPAIR ; DUG 4 ; DROP ; DROP ; DROP ; DROP ; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("ediv", () => { + const src = `parameter (pair int int); +storage (pair (option (pair int nat)) (pair (option (pair int nat)) (pair (option (pair int nat)) (option (pair nat nat))))); +code { CAR; + # :: nat : nat : 'S -> option (pair nat nat) : 'S + DUP; UNPAIR; ABS; DIP { ABS; }; EDIV; SWAP; + # :: nat : int : 'S -> option (pair int nat) : 'S + DUP; UNPAIR; ABS; EDIV; SWAP; + # :: int : nat : 'S -> option (pair int nat) : 'S + DUP; UNPAIR; DIP { ABS; }; EDIV; SWAP; + # :: int : int : 'S -> option (pair int nat) : 'S + UNPAIR; EDIV; + PAPAPAIR; + NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("ediv_mutez", () => { + const src = `parameter (pair mutez (or mutez nat)); +storage (or (option (pair nat mutez)) (option (pair mutez mutez))); +code { CAR; + UNPAIR; + SWAP; + IF_LEFT { + SWAP; EDIV; LEFT (option (pair mutez mutez)); + } + { + SWAP; EDIV; RIGHT (option (pair nat mutez)); + }; + NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("empty_map", () => { + const src = `storage (map string string); +parameter unit; +code {DROP; + EMPTY_MAP string string; + PUSH string "world"; SOME; PUSH string "hello"; UPDATE; + NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("exec_concat", () => { + const src = `parameter string; +storage string; +code {CAR; + LAMBDA string string + {PUSH string "_abc"; NIL string ; + SWAP ; CONS ; SWAP ; CONS ; CONCAT}; + SWAP; EXEC; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("first", () => { + const src = `parameter (list nat); +storage nat; +code{CAR; IF_CONS {DIP{DROP}} {FAIL}; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("get_big_map_value", () => { + const src = `parameter string; +storage (pair (big_map string string) (option string)); +# retrieves the values stored in the big_map on the left side of the +# pair at the key denoted by the parameter and puts it in the right +# hand side of the storage +code {DUP; CAR; DIP{CDAR; DUP}; GET; SWAP; PAIR; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("get_map_value", () => { + const src = `parameter string; +storage (pair (option string) (map string string)); +code {DUP; CAR; DIP{CDDR; DUP}; GET; PAIR; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("hash_consistency_checker", () => { + const src = `parameter (pair mutez (pair timestamp int)) ; +storage bytes ; +code { CAR ; PACK ; BLAKE2B ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("hash_key", () => { + const src = `parameter key; +storage (option key_hash); +code {CAR; HASH_KEY; SOME ;NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("hash_string", () => { + const src = `parameter string; +storage bytes; +code {CAR; PACK ; BLAKE2B; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("if", () => { + const src = `parameter bool; +storage (option bool); +code {CAR; IF {PUSH bool True} {PUSH bool False}; SOME; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("if_some", () => { + const src = `parameter (option string); +storage string; +code { CAR; IF_SOME {} {PUSH string ""}; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("int", () => { + const src = `parameter nat; +storage (option int); +# this contract takes a natural number as parameter, converts it to an +# integer and stores it. +code { CAR; INT; SOME; NIL operation; PAIR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("left_right", () => { + const src = `parameter (or bool string); +storage (or string bool); +code {CAR; IF_LEFT {RIGHT string} {LEFT bool}; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("list_concat", () => { + const src = `parameter (list string); +storage string; +code { UNPAIR ; SWAP ; CONS ; CONCAT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("list_concat_bytes", () => { + const src = `parameter (list bytes); +storage bytes; +code { UNPAIR ; SWAP ; CONS ; CONCAT; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("list_id", () => { + const src = `parameter (list string); +storage (list string); +code {CAR; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("list_id_map", () => { + const src = `parameter (list string); +storage (list string); +code {CAR; MAP {}; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("list_iter", () => { + const src = `parameter (list int); +storage int; +code { CAR; PUSH int 1; SWAP; + ITER { MUL }; + NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("list_map_block", () => { + const src = `parameter (list int); +storage (list int); +code { CAR; PUSH int 0; SWAP; + MAP { DIP{DUP}; ADD; DIP{PUSH int 1; ADD}}; + NIL operation; PAIR; DIP{DROP}}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("list_size", () => { + const src = `parameter (list int); +storage nat; +code {CAR; SIZE; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("loop_left", () => { + const src = `parameter (list string); +storage (list string); +code { CAR; NIL string; SWAP; PAIR; LEFT (list string); + LOOP_LEFT { DUP; CAR; DIP{CDR}; + IF_CONS { SWAP; DIP{CONS}; PAIR; LEFT (list string) } + { RIGHT (pair (list string) (list string)) }; }; + NIL operation; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("map_car", () => { + const src = `parameter bool; +storage (pair (bool %b) (nat %n)); +code { DUP; CAR; DIP{CDR}; SWAP; + MAP_CAR @new_storage %b { AND }; + NIL operation; PAIR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("map_id", () => { + const src = `parameter (map nat nat); +storage (map nat nat); +code { CAR ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("map_iter", () => { + const src = `parameter (map (int :k) (int :e)); +storage (pair (int :k) (int :e)); +code { CAR; PUSH @acc_e (int :e) 0; PUSH @acc_k (int :k) 0; PAIR % %r; SWAP; + ITER + { DIP {DUP; CAR; DIP{CDR}}; DUP; # Last instr + DIP{CAR; ADD}; SWAP; DIP{CDR; ADD}; PAIR % %r }; + NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("map_map", () => { + const src = `parameter nat; +storage (map string nat); +# this contract adds the value passed by parameter to each entry in +# the stored map. +code { UNPAIR; SWAP; + MAP { CDR; DIP {DUP}; ADD; }; + DIP { DROP; }; + NIL operation; PAIR; }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("map_map_sideeffect", () => { + const src = `parameter nat; +storage (pair (map string nat) nat); +# this contract adds the value passed by parameter to each entry in +# the stored map, and it sets the second component of the pair to the +# sum of the map's elements +code { UNPAIR; SWAP; CAR; + DIP 2 { PUSH @sum nat 0; }; + MAP { CDR; DIP {DUP}; ADD; + DUP; DUG 2; DIP 2 { ADD @sum }; + }; + DIP { DROP; }; PAIR; + NIL operation; PAIR; }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("map_mem_nat", () => { + const src = `parameter nat; +storage (pair (map nat nat) (option bool)) ; +# stores (map, Some flag) where flag = parameter is a member of +# the map in first component of storage +code { UNPAIR; + DIP { CAR; DUP }; + MEM; SOME; SWAP; PAIR; NIL operation; PAIR;}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("map_mem_string", () => { + const src = `parameter string; +storage (pair (map string nat) (option bool)) ; +# stores (map, Some flag) where flag = parameter is a member of +# the map in first component of storage +code { UNPAIR; + DIP { CAR; DUP }; + MEM; SOME; SWAP; PAIR; NIL operation; PAIR;}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("map_size", () => { + const src = `parameter (map string nat); +storage nat; +code {CAR; SIZE; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("merge_comparable_pairs", () => { + const src = `# tests that merging comparable pair types works +parameter (set (pair (nat %n) (pair %p (string %s) (int %i)))); +storage nat; +code {UNPAIR; + SWAP; + PUSH nat 3; + COMPARE; + GT; + IF {} + {DROP; + EMPTY_SET (pair nat (pair string int));}; + SIZE; + NIL operation; + PAIR;}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("mul", () => { + const src = `parameter unit ; +storage unit ; +code { CAR ; + DROP ; + # tez-nat, no overflow + PUSH nat 7987 ; + PUSH mutez 10 ; + MUL ; + PUSH mutez 79870 ; + COMPARE ; + ASSERT_EQ ; + # nat-tez, no overflow + PUSH mutez 10 ; + PUSH nat 7987 ; + MUL ; + PUSH mutez 79870 ; + COMPARE ; + ASSERT_EQ ; + # int-int, no overflow + PUSH int 10 ; + PUSH int -7987 ; + MUL ; + PUSH int -79870 ; + COMPARE ; + ASSERT_EQ ; + # int-nat, no overflow + PUSH nat 10 ; + PUSH int -7987 ; + MUL ; + PUSH int -79870 ; + COMPARE ; + ASSERT_EQ ; + # nat-int, no overflow + PUSH int -10 ; + PUSH nat 7987 ; + MUL ; + PUSH int -79870 ; + COMPARE ; + ASSERT_EQ ; + # nat-nat, no overflow + PUSH nat 10 ; + PUSH nat 7987 ; + MUL ; + PUSH nat 79870 ; + COMPARE ; + ASSERT_EQ ; + + UNIT ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("mul_overflow", () => { + const src = `parameter (or unit unit) ; +storage unit ; +code { CAR ; + IF_LEFT + { + PUSH nat 922337203685477580700 ; + PUSH mutez 10 ; + MUL ; # FAILURE + DROP + } + { + PUSH mutez 10 ; + PUSH nat 922337203685477580700 ; + MUL ; # FAILURE + DROP + } ; + + NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("neg", () => { + const src = `parameter (or int nat); +storage int; +code { + CAR; + IF_LEFT {NEG} {NEG}; + NIL operation; + PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("none", () => { + const src = `parameter unit; +storage (option nat); +code { DROP; NONE nat; NIL operation; PAIR; };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("noop", () => { + const src = `parameter unit; +storage unit; +code {CDR; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("not", () => { + const src = `parameter bool; +storage (option bool); +code {CAR; NOT; SOME; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("not_binary", () => { + const src = `parameter (or int nat); +storage (option int); +code { CAR; + IF_LEFT + { + NOT; + } + { + NOT; + } ; + SOME; NIL operation ; PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("or", () => { + const src = `parameter (pair bool bool); +storage (option bool); +code {CAR; DUP; CAR; SWAP; CDR; OR; SOME; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("or_binary", () => { + const src = `parameter (pair nat nat); +storage (option nat); +# This contract takes a pair of natural numbers as argument and +# stores the result of their binary OR. +code { CAR; + UNPAIR; + OR; + SOME; NIL operation; PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("packunpack", () => { + const src = `parameter (pair (pair (pair string (list int)) (set nat)) bytes) ; +storage unit ; +code { CAR ; UNPAIR ; DIP { DUP } ; + PACK ; ASSERT_CMPEQ ; + UNPACK (pair (pair string (list int)) (set nat)) ; ASSERT_SOME ; DROP ; + UNIT ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("packunpack_rev", () => { + const src = `parameter (pair + int + (pair + nat + (pair + string + (pair bytes (pair mutez (pair bool (pair key_hash (pair timestamp address)))))))); +storage unit ; +code { CAR; + # Check the int + DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK int; ASSERT_SOME; ASSERT_CMPEQ; + # Check the nat + DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK nat; ASSERT_SOME; ASSERT_CMPEQ; + # Check the string + DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK string; ASSERT_SOME; ASSERT_CMPEQ; + # Check the bytes + DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK bytes; ASSERT_SOME; ASSERT_CMPEQ; + # Check the mutez + DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK mutez; ASSERT_SOME; ASSERT_CMPEQ; + # Check the bool + DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK bool; ASSERT_SOME; ASSERT_CMPEQ; + # Check the key_hash + DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK key_hash; ASSERT_SOME; ASSERT_CMPEQ; + # Check the timestamp + DUP; CAR; DIP { UNPAIR; }; PACK; UNPACK timestamp; ASSERT_SOME; ASSERT_CMPEQ; + # Check the address + DUP; PACK; UNPACK address; ASSERT_SOME; ASSERT_CMPEQ; + + # Assert failure modes of unpack + PUSH int 0; PACK; UNPACK nat; ASSERT_SOME; DROP; + PUSH int -1; PACK; UNPACK nat; ASSERT_NONE; + + # Try deserializing invalid byte sequence (no magic number) + PUSH bytes 0x; UNPACK nat; ASSERT_NONE; + PUSH bytes 0x04; UNPACK nat; ASSERT_NONE; + + # Assert failure for byte sequences that do not correspond to + # any micheline value + PUSH bytes 0x05; UNPACK nat; ASSERT_NONE; + + UNIT ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("packunpack_rev_cty", () => { + const src = `parameter (pair key (pair unit (pair signature (pair (option signature) (pair (list unit) (pair (set bool) (pair (pair int int) (pair (or key_hash timestamp) (pair (map int string) (lambda string bytes)))))))))); +storage unit ; +# for each uncomparable type t (we take an arbitrary parameter for +# parametric data-types e.g. pair, list), +# that is packable (which excludes big_map, operation, and contract) +# this contract receives a parameter v_t. +# it verifies that pack v_t == pack (unpack (pack v_t)) +code { CAR; + # packable uncomparable types + # checking: key + DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK key; ASSERT_SOME; PACK; }; ASSERT_CMPEQ; + # checking: unit + DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK unit; ASSERT_SOME; PACK; }; ASSERT_CMPEQ; + # checking: signature + DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (signature); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; + # checking: option signature + DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (option signature); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; + # checking: list unit + DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (list unit); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; + # checking: set bool + DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (set bool); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; + # checking: pair int int + DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (pair int int); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; + # checking: or key_hash timestamp + DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (or key_hash timestamp); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; + # checking: map int string + DUP; CAR; DIP { UNPAIR; }; PACK; DIP { PACK; UNPACK (map int string); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; + # checking: lambda string bytes + DUP; PACK; DIP { PACK; UNPACK (lambda string bytes); ASSERT_SOME; PACK; }; ASSERT_CMPEQ; + + UNIT ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("pair_id", () => { + const src = `parameter (pair bool bool); +storage (option (pair bool bool)); +code {CAR; SOME; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("pexec", () => { + const src = `parameter nat; +storage nat; +code { + LAMBDA (pair nat nat) nat + {UNPAIR ; ADD}; + SWAP; UNPAIR ; DIP { APPLY } ; EXEC ; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("pexec_2", () => { + const src = `parameter int; +storage (list int); +code { + UNPAIR @p @s ; # p :: s + LAMBDA (pair int (pair int int)) int + { UNPAIR ; DIP { UNPAIR } ; ADD ; MUL }; # l :: p :: s + SWAP ; APPLY ; # l :: s + PUSH int 3 ; APPLY ; # l :: s + SWAP ; MAP { DIP { DUP } ; EXEC } ; # s :: l + DIP { DROP } ; # s + NIL operation; PAIR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("proxy", () => { + const src = `/* This proxy contract transfers the received amount to the contract given as parameter. + It is used to test the SOURCE and SENDER opcodes; see source.tz and sender.tz. */ +parameter (contract unit) ; +storage unit ; +code{ + UNPAIR; + AMOUNT ; + UNIT ; + TRANSFER_TOKENS; + DIP {NIL operation} ; + CONS; + PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("ret_int", () => { + const src = `parameter unit; +storage (option nat); +code {DROP; PUSH nat 300; SOME; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("reverse", () => { + const src = `parameter (list string); +storage (list string); +code { CAR; NIL string; SWAP; + ITER {CONS}; + NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("reverse_loop", () => { + const src = `parameter (list string); +storage (list string); +code { CAR; NIL string; SWAP; PUSH bool True; + LOOP { IF_CONS {SWAP; DIP{CONS}; PUSH bool True} {NIL string; PUSH bool False}}; + DROP; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("self", () => { + const src = `parameter unit ; +storage address ; +code { DROP ; SELF ; ADDRESS ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("self_with_default_entrypoint", () => { + const src = `parameter (or (or (nat %A) (bool %B)) (or %maybe_C (unit %default) (string %C))); +storage unit; +code { + DROP; + SELF; DROP; + # Refers to entrypoint A of the current contract. + SELF %A; DROP; + # Refers to the default entry of the current contract + SELF %default; PACK; + # "SELF" w/o annotation also refers to the default + # entry of the current contract. Internally, they are equal. + SELF; PACK; ASSERT_CMPEQ; + # The following instruction would not typecheck: + # SELF %D, + # since there is no entrypoint D. + UNIT; + NIL operation; + PAIR; + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("self_with_entrypoint", () => { + const src = `parameter (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C))); +storage unit; +code { + DROP; + # Refers to entrypoint A of the current contract. + SELF %A; PACK @Apacked; + # Refers to the default entry of the current contract + SELF %default; PACK @defpacked; DUP; DIP { SWAP }; ASSERT_CMPNEQ; + # "SELF" w/o annotation also refers to the default + # entry of the current contract + SELF; PACK @selfpacked; ASSERT_CMPEQ; + + # Verify the types of the different entrypoints. CAST is noop + # if its argument is convertible with the type of the top of + # the stack. + SELF %A; CAST (contract nat); DROP; + SELF %B; CAST (contract bool); DROP; + SELF %maybe_C; CAST (contract (or (unit) (string))); DROP; + SELF %Z; CAST (contract unit); DROP; + SELF; CAST (contract (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C)))); DROP; + SELF %default; CAST (contract (or (or (nat %A) (bool %B)) (or %maybe_C (unit %Z) (string %C)))); DROP; + + UNIT; + NIL operation; + PAIR; + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("sender", () => { + const src = `parameter unit ; +storage address ; +code{ + DROP ; + SENDER; + NIL operation ; + PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("set_car", () => { + const src = `parameter string; +storage (pair (string %s) (nat %n)); +code { DUP; CDR; DIP{CAR}; SET_CAR %s; NIL operation; PAIR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("set_cdr", () => { + const src = `parameter nat; +storage (pair (string %s) (nat %n)); +code { DUP; CDR; DIP{CAR}; SET_CDR %n; NIL operation; PAIR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("set_delegate", () => { + const src = `parameter (option key_hash); +storage unit; +code { + UNPAIR; + SET_DELEGATE; + DIP {NIL operation}; + CONS; + PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("set_id", () => { + const src = `parameter (set string); +storage (set string); +code { CAR ; NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("set_iter", () => { + const src = `parameter (set int); +storage int; +code { CAR; PUSH int 0; SWAP; ITER { ADD }; NIL operation; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("set_member", () => { + const src = `parameter string; +storage (pair (set string) (option bool)); +code {DUP; DUP; CAR; DIP{CDAR}; MEM; SOME; DIP {CDAR}; SWAP; PAIR ; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("set_size", () => { + const src = `parameter (set int); +storage nat; +code {CAR; SIZE; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("shifts", () => { + const src = `parameter (or (pair nat nat) (pair nat nat)); +storage (option nat); +# this contract takes either (Left a b) and stores (a << b) +# or (Right a b) and stores (a >> b). +# i.e., in the first case, the first component shifted to the left by +# the second, and the second case, component shifted to the right by +# the second. +code { CAR; + IF_LEFT { + UNPAIR; LSL; + } + { + UNPAIR; LSR; + }; + SOME; + NIL operation; + PAIR; + };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("slice", () => { + const src = `parameter (pair nat nat); +storage (option string); +code { UNPAIR; SWAP; + IF_SOME {SWAP; UNPAIR; SLICE;} {DROP; NONE string;}; + NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("slice_bytes", () => { + const src = `parameter (pair nat nat); +storage (option bytes); +code { UNPAIR; SWAP; + IF_SOME {SWAP; UNPAIR; SLICE;} {DROP; NONE bytes;}; + NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("slices", () => { + const src = `parameter (pair bytes signature) ; +storage key ; +code { DUP ; + CAAR ; DUP ; SIZE ; PUSH nat 128 ; SWAP ; SUB ; ISNAT ; IF_SOME {} { FAIL } ; + PUSH nat 128 ; SLICE @payload ; ASSERT_SOME ; + DUP ; DIP { DIP { DUP ; CAAR ; PUSH nat 32 ; PUSH nat 0 ; SLICE ; ASSERT_SOME } ; SHA256 ; ASSERT_CMPEQ } ; + DUP ; DIP { DIP { DUP ; CAAR ; PUSH nat 32 ; PUSH nat 32 ; SLICE ; ASSERT_SOME } ; BLAKE2B ; ASSERT_CMPEQ } ; + DUP ; DIP { DIP { DUP ; CAAR ; PUSH nat 64 ; PUSH nat 64 ; SLICE ; ASSERT_SOME } ; SHA512 ; ASSERT_CMPEQ } ; + DIP { DUP ; CDR ; DIP { DUP ; CADR }} ; SWAP ; DIP { SWAP } ; CHECK_SIGNATURE ; ASSERT ; + CDR ; DUP ; HASH_KEY ; IMPLICIT_ACCOUNT ; BALANCE ; UNIT ; TRANSFER_TOKENS ; + NIL operation ; SWAP ; CONS ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("source", () => { + const src = `parameter unit ; + +storage address ; + +code{ + DROP ; + SOURCE; + NIL operation ; + PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("split_bytes", () => { + const src = `parameter bytes ; +storage (list bytes) ; +code { UNPAIR ; + DIP { NIL bytes ; SWAP ; ITER { CONS } } ; + DUP ; SIZE ; PUSH nat 0 ; CMPNEQ ; + DIP { PUSH @index nat 0 } ; + LOOP + { PAIR ; DUP ; + DIP { UNPAIR ; DIP { PUSH nat 1 } ; SLICE ; ASSERT_SOME ; CONS @storage } ; + UNPAIR ; + PUSH nat 1 ; ADD @index ; + DUP ; DIP { DIP { DUP } ; SWAP ; SIZE ; CMPNEQ } ; SWAP ; + } ; + DROP ; DROP ; + NIL bytes ; SWAP ; ITER { CONS } ; + NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("split_string", () => { + const src = `parameter string ; +storage (list string) ; +code { UNPAIR ; + DIP { NIL string ; SWAP ; ITER { CONS } } ; + DUP ; SIZE ; PUSH nat 0 ; CMPNEQ ; + DIP { PUSH @index nat 0 } ; + LOOP + { PAIR ; DUP ; + DIP { UNPAIR ; DIP { PUSH nat 1 } ; SLICE ; ASSERT_SOME ; CONS @storage } ; + UNPAIR ; + PUSH nat 1 ; ADD @index ; + DUP ; DIP { DIP { DUP } ; SWAP ; SIZE ; CMPNEQ } ; SWAP ; + } ; + DROP ; DROP ; + NIL string ; SWAP ; ITER { CONS } ; + NIL operation ; PAIR }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("store_input", () => { + const src = `parameter string; +storage string; +code {CAR; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("store_now", () => { + const src = `parameter unit; +storage timestamp; +code {DROP; NOW; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("str_id", () => { + const src = `parameter string; +storage (option string); +code { CAR ; SOME ; NIL operation ; PAIR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("sub_timestamp_delta", () => { + const src = `parameter (pair timestamp int); +storage timestamp; +code { CAR; DUP; CAR; DIP{CDR}; SUB; NIL operation; PAIR}`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("subset", () => { + const src = `parameter (pair (set string) (set string)); +storage bool; +code { CAR; DUP; CDR; DIP{CAR}; # Unpack lists + PUSH bool True; + PAIR; SWAP; # Setup accumulator + ITER { DIP{ DUP; DUP; CDR; + DIP{CAR; DIP{CDR}}}; + MEM; # Check membership + AND; # Combine accumulator and input + PAIR}; + CAR; # Get the accumulator value + NIL operation; PAIR} # Calling convention`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("tez_add_sub", () => { + const src = `parameter (pair mutez mutez); +storage (option (pair mutez mutez)); +code {CAR; DUP; DUP; CAR; DIP{CDR}; ADD; + DIP{DUP; CAR; DIP{CDR}; SUB}; + PAIR; SOME; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("transfer_amount", () => { + const src = `parameter unit; +storage mutez; +code { DROP; AMOUNT; NIL operation; PAIR };`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("transfer_tokens", () => { + const src = `parameter (contract unit); +storage unit; +code { CAR; DIP{UNIT}; PUSH mutez 100000000; UNIT; + TRANSFER_TOKENS; + NIL operation; SWAP; CONS; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("update_big_map", () => { + const src = `storage (pair (big_map string string) unit); +parameter (map string (option string)); +# this contract the stored big_map according to the map taken in parameter +code { UNPAPAIR; + ITER { UNPAIR; UPDATE; } ; + PAIR; NIL operation; PAIR};`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); + + it("xor", () => { + const src = `parameter (or (pair bool bool) (pair nat nat)); +storage (option (or bool nat)); +code { + CAR; + IF_LEFT + { + UNPAIR; XOR; LEFT nat + } + { + UNPAIR; XOR; RIGHT bool + } ; + SOME; NIL operation ; PAIR + }`; + try { + Contract.parse(src); + } catch (err) { + if (err instanceof MichelsonError) { + console.log(inspect(err, false, null)); + } + throw err; + } + }); +}); diff --git a/packages/taquito-michel-codec/test/typecheck.spec.ts b/packages/taquito-michel-codec/test/typecheck.spec.ts index 424afb4907..a8c56b6638 100644 --- a/packages/taquito-michel-codec/test/typecheck.spec.ts +++ b/packages/taquito-michel-codec/test/typecheck.spec.ts @@ -3,141 +3,125 @@ import { assertDataValid, assertTypesEqual, contractEntryPoint } from "../src/mi describe('Typecheck', () => { it('assertDataValid: string', () => { - const typedef: MichelsonType = { prim: "string" }; - const data: MichelsonData = { string: "test" }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "string" }; + const data: MichelsonData<typeof typedef> = { string: "test" }; + assertDataValid(typedef, data); }); it('assertDataValid: int', () => { - const typedef: MichelsonType = { prim: "int" }; - const data: MichelsonData = { int: "0" }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "int" }; + const data: MichelsonData<typeof typedef> = { int: "0" }; + assertDataValid(typedef, data); }); it('assertDataValid: nat', () => { - const typedef: MichelsonType = { prim: "nat" }; - const data: MichelsonData = { int: "0" }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "nat" }; + const data: MichelsonData<typeof typedef> = { int: "0" }; + assertDataValid(typedef, data); }); it('assertDataValid: bytes', () => { - const typedef: MichelsonType = { prim: "bytes" }; - const data: MichelsonData = { "bytes": "ABCDEF42" }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "bytes" }; + const data: MichelsonData<typeof typedef> = { "bytes": "0xABCDEF42" }; + assertDataValid(typedef, data); }); it('assertDataValid: bool', () => { - const typedef: MichelsonType = { prim: "bool" }; - const data: MichelsonData = { prim: "True" }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "bool" }; + const data: MichelsonData<typeof typedef> = { "prim": "True" }; + assertDataValid(typedef, data); }); it('assertDataValid: unit', () => { - const typedef: MichelsonType = { prim: "unit" }; - const data: MichelsonData = { prim: "Unit" }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "unit" }; + const data: MichelsonData<typeof typedef> = { "prim": "Unit" }; + assertDataValid(typedef, data); }); it('assertDataValid: list', () => { - const typedef: MichelsonType = { prim: "list", args: [{ prim: "string" }] }; - const data: MichelsonData = [{ string: "aaa" }, { string: "bbb" }]; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "list", args: [{ prim: "string" }] }; + const data: MichelsonData<typeof typedef> = [{ string: "aaa" }, { string: "bbb" }]; + assertDataValid(typedef, data); }); it('assertDataValid: pair', () => { - const typedef: MichelsonType = { prim: "pair", args: [{ prim: "string" }, { prim: "nat" }] }; - const data: MichelsonData = { prim: "Pair", args: [{ string: "aaa" }, { int: "0" }] }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "pair", args: [{ prim: "string" }, { prim: "nat" }] }; + const data: MichelsonData<typeof typedef> = { prim: "Pair", args: [{ string: "aaa" }, { int: "0" }] }; + assertDataValid(typedef, data); }); it('assertDataValid: option nat', () => { - const typedef: MichelsonType = { prim: "option", args: [{ prim: "nat" }] }; - const data: MichelsonData = { prim: "Some", args: [{ int: "0" }] }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "option", args: [{ prim: "nat" }] }; + const data: MichelsonData<typeof typedef> = { prim: "Some", args: [{ int: "0" }] }; + assertDataValid(typedef, data); }); it('assertDataValid: option none', () => { - const typedef: MichelsonType = { prim: "option", args: [{ prim: "nat" }] }; - const data: MichelsonData = { prim: "None" }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "option", args: [{ prim: "nat" }] }; + const data: MichelsonData<typeof typedef> = { prim: "None" }; + assertDataValid(typedef, data); }); it('assertDataValid: or left', () => { - const typedef: MichelsonType = { prim: "or", args: [{ prim: "string" }, { prim: "nat" }] }; - const data: MichelsonData = { prim: "Left", args: [{ string: "aaa" }] }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "or", args: [{ prim: "string" }, { prim: "nat" }] }; + const data: MichelsonData<typeof typedef> = { prim: "Left", args: [{ string: "aaa" }] }; + assertDataValid(typedef, data); }); it('assertDataValid: or right', () => { - const typedef: MichelsonType = { prim: "or", args: [{ prim: "string" }, { prim: "nat" }] }; - const data: MichelsonData = { prim: "Right", args: [{ int: "0" }] }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "or", args: [{ prim: "string" }, { prim: "nat" }] }; + const data: MichelsonData<typeof typedef> = { prim: "Right", args: [{ int: "0" }] }; + assertDataValid(typedef, data); }); it('assertDataValid: set', () => { - const typedef: MichelsonType = { prim: "set", args: [{ prim: "pair", args: [{ prim: "string" }, { prim: "nat" }] }] }; - const data: MichelsonData = [{ prim: "Pair", args: [{ string: "aaa" }, { int: "0" }] }, { prim: "Pair", args: [{ string: "bbb" }, { int: "1" }] }]; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "set", args: [{ "prim": "pair", args: [{ prim: "string" }, { prim: "nat" }] }] }; + const data: MichelsonData<typeof typedef> = [{ prim: "Pair", args: [{ string: "aaa" }, { int: "0" }] }, { prim: "Pair", args: [{ string: "bbb" }, { int: "1" }] }]; + assertDataValid(typedef, data); }); it('assertDataValid: unsorted set', () => { - const typedef: MichelsonType = { prim: "set", args: [{ prim: "pair", args: [{ prim: "string" }, { prim: "nat" }] }] }; - const data: MichelsonData = [{ prim: "Pair", args: [{ string: "bbb" }, { int: "0" }] }, { prim: "Pair", args: [{ string: "aaa" }, { int: "1" }] }]; - expect(() => assertDataValid(data, typedef)).toThrow(); + const typedef: MichelsonType = { "prim": "set", args: [{ "prim": "pair", args: [{ prim: "string" }, { prim: "nat" }] }] }; + const data: MichelsonData<typeof typedef> = [{ prim: "Pair", args: [{ string: "bbb" }, { int: "0" }] }, { prim: "Pair", args: [{ string: "aaa" }, { int: "1" }] }]; + expect(() => assertDataValid(typedef, data)).toThrow(); }); it('assertDataValid: map', () => { - const typedef: MichelsonType = { prim: "map", args: [{ prim: "string" }, { prim: "nat" }] }; - const data: MichelsonData = [{ prim: "Elt", args: [{ string: "aaa" }, { int: "0" }] }, { prim: "Elt", args: [{ string: "bbb" }, { int: "1" }] }]; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "map", args: [{ prim: "string" }, { prim: "nat" }] }; + const data: MichelsonData<typeof typedef> = [{ prim: "Elt", args: [{ string: "aaa" }, { int: "0" }] }, { prim: "Elt", args: [{ string: "bbb" }, { int: "1" }] }]; + assertDataValid(typedef, data); }); it('assertDataValid: unsorted map', () => { - const typedef: MichelsonType = { prim: "map", args: [{ prim: "string" }, { prim: "nat" }] }; - const data: MichelsonData = [{ prim: "Elt", args: [{ string: "bbb" }, { int: "0" }] }, { prim: "Elt", args: [{ string: "aaa" }, { int: "1" }] }]; - expect(() => assertDataValid(data, typedef)).toThrow(); + const typedef: MichelsonType = { "prim": "map", args: [{ prim: "string" }, { prim: "nat" }] }; + const data: MichelsonData<typeof typedef> = [{ prim: "Elt", args: [{ string: "bbb" }, { int: "0" }] }, { prim: "Elt", args: [{ string: "aaa" }, { int: "1" }] }]; + expect(() => assertDataValid(typedef, data)).toThrow(); }); it('assertDataValid: timestamp', () => { - const typedef: MichelsonType = { prim: "timestamp" }; - const data: MichelsonData = { string: "2020-06-21T00:39:07Z" }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "timestamp" }; + const data: MichelsonData<typeof typedef> = { string: "2020-06-21T00:39:07Z" }; + assertDataValid(typedef, data); }); it('assertDataValid: address', () => { - const typedef: MichelsonType = { prim: "address" }; - const data: MichelsonData = { string: "tz1VmUWL8DxseZnPTdhHQkkuk6nK55NVdKCG" }; - assertDataValid(data, typedef); - }); - - it('assertDataValid: address (bin)', () => { - const typedef: MichelsonType = { prim: "address" }; - const data: MichelsonData = { bytes: "010c21fa1ba5104ea31fcd8b4741f7e84fec3ce9d300" }; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "address" }; + const data: MichelsonData<typeof typedef> = { string: "tz1VmUWL8DxseZnPTdhHQkkuk6nK55NVdKCG" }; + assertDataValid(typedef, data); }); it('assertDataValid: mutez', () => { - const typedef: MichelsonType = { prim: "mutez" }; - const data: MichelsonData = { int: "0" }; - assertDataValid(data, typedef); - }); - - it('assertDataValid: ticket', () => { - const typedef: MichelsonType = { prim: "ticket", args: [{ prim: "bytes" }] }; - const data: MichelsonData = [ - { string: "KT1ThEdxfUcWUwqsdergy3QnbCWGHSUHeHJq" }, - { bytes: "01020304" }, - { int: "42" }, - ]; - assertDataValid(data, typedef); + const typedef: MichelsonType = { "prim": "mutez" }; + const data: MichelsonData<typeof typedef> = { int: "0" }; + assertDataValid(typedef, data); }); it('assertTypesEqual: identical', () => { const pair: MichelsonType = { - prim: "pair", - args: [ - { prim: "int", annots: ["%i"] }, - { prim: "nat", annots: ["%n"] } + "prim": "pair", + "args": [ + { "prim": "int", "annots": ["%i"] }, + { "prim": "nat", "annots": ["%n"] } ] }; assertTypesEqual(pair, pair); @@ -145,17 +129,17 @@ describe('Typecheck', () => { it('assertTypesEqual: different fields', () => { const pair0: MichelsonType = { - prim: "pair", - args: [ - { prim: "int", annots: ["%i"] }, - { prim: "nat", annots: ["%n"] } + "prim": "pair", + "args": [ + { "prim": "int", "annots": ["%i"] }, + { "prim": "nat", "annots": ["%n"] } ] }; const pair1: MichelsonType = { - prim: "pair", - args: [ - { prim: "int", annots: ["%i"] }, - { prim: "nat", annots: ["%nn"] } + "prim": "pair", + "args": [ + { "prim": "int", "annots": ["%i"] }, + { "prim": "nat", "annots": ["%nn"] } ] }; expect(() => assertTypesEqual(pair0, pair1)).toThrow(); diff --git a/packages/taquito-michel-codec/tslint.json b/packages/taquito-michel-codec/tslint.json index 7cc54365a2..08182db41b 100644 --- a/packages/taquito-michel-codec/tslint.json +++ b/packages/taquito-michel-codec/tslint.json @@ -2,7 +2,6 @@ "extends": "../../tslint.json", "rules": { "semicolon": true, - "strict-type-predicates": true, - "no-unused-variable": true + "strict-type-predicates": true } } \ No newline at end of file diff --git a/packages/taquito-michelson-encoder/data/sample17.ts b/packages/taquito-michelson-encoder/data/sample17.ts deleted file mode 100644 index 2e2cdf8dfb..0000000000 --- a/packages/taquito-michelson-encoder/data/sample17.ts +++ /dev/null @@ -1,153 +0,0 @@ -export const script17 = { - script: { - code: [ - { prim: 'parameter', args: [{ prim: 'nat' }] }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'big_map', args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%metadata'] }, - { - prim: 'map', - args: [ - { prim: 'nat' }, - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%current_stock'] }, - { prim: 'mutez', annots: ['%max_price'] } - ] - } - ], - annots: ['%taco_shop_storage'] - } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'Unknown kind of taco.' }] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '2' }] }, - { prim: 'CDR' }, - { prim: 'EDIV' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'DIV by 0' }] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'CAR' }, - { prim: 'AMOUNT' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'Sorry, the taco you are trying to purchase has a different price' } - ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DUP' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'SUB' }, - { prim: 'ABS' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'SWAP' }, - { prim: 'SOME' }, - { prim: 'SWAP' }, - { prim: 'UPDATE' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { - prim: 'Pair', - args: [ - { - int: '20350' - }, - [ - { - prim: 'Elt', - args: [ - { - int: '1' - }, - { - prim: 'Pair', - args: [ - { - int: '10000' - }, - { - int: '50' - } - ] - } - ] - } - ] - ] - } - } -}; - -export const storage17 = script17.script.code.find( - x => x.prim === 'storage' - )!.args[0] as any; diff --git a/packages/taquito-michelson-encoder/data/sample18_ticket.ts b/packages/taquito-michelson-encoder/data/sample18_ticket.ts deleted file mode 100644 index 31389ccdff..0000000000 --- a/packages/taquito-michelson-encoder/data/sample18_ticket.ts +++ /dev/null @@ -1,494 +0,0 @@ -export const rpcContractResponse = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'contract', - args: [ - { - prim: 'pair', - args: [ - { prim: 'nat', annots: ['%opening_price'] }, - { prim: 'nat', annots: ['%set_reserve_price'] }, - { - prim: 'timestamp', - annots: ['%set_start_time'] - }, - { prim: 'int', annots: ['%set_round_time'] }, - { - prim: 'ticket', - args: [{ prim: 'nat' }], - annots: ['%ticket'] - } - ] - } - ], - annots: ['%destination'] - }, - { prim: 'nat', annots: ['%opening_price'] }, - { prim: 'nat', annots: ['%reserve_price'] }, - { prim: 'timestamp', annots: ['%start_time'] }, - { prim: 'int', annots: ['%round_time'] }, - { prim: 'nat', annots: ['%ticket_id'] } - ], - annots: ['%auction'] - }, - { prim: 'nat', annots: ['%burn'] } - ] - }, - { - prim: 'or', - args: [ - { - prim: 'map', - args: [{ prim: 'string' }, { prim: 'bytes' }], - annots: ['%mint'] - }, - { prim: 'ticket', args: [{ prim: 'nat' }], annots: ['%receive'] } - ] - } - ] - }, - { - prim: 'pair', - args: [ - { - prim: 'contract', - args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }], - annots: ['%destination'] - }, - { prim: 'nat', annots: ['%ticket_id'] } - ], - annots: ['%send'] - } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'address', annots: ['%admin'] }, - { - prim: 'big_map', - args: [{ prim: 'nat' }, { prim: 'ticket', args: [{ prim: 'nat' }] }], - annots: ['%tickets'] - }, - { prim: 'nat', annots: ['%current_id'] }, - { - prim: 'big_map', - args: [ - { prim: 'nat' }, - { - prim: 'pair', - args: [ - { prim: 'nat' }, - { prim: 'map', args: [{ prim: 'string' }, { prim: 'bytes' }] } - ] - } - ], - annots: ['%token_metadata'] - } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'AMOUNT' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { prim: 'PUSH', args: [{ prim: 'string' }, { string: 'failed assertion' }] }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { - prim: 'NONE', - args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'GET_AND_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'DROP', args: [{ int: '5' }] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'no tickets' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CAR' }, - { - prim: 'PUSH', - args: [{ prim: 'mutez' }, { int: '0' }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { - prim: 'NIL', - args: [{ prim: 'operation' }] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ], - [ - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'ADD' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { - prim: 'NONE', - args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'UPDATE' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'TICKET' }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'GET_AND_UPDATE' }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'PAIR' }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'UPDATE' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'ADD' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ], - [ - { prim: 'READ_TICKET' }, - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'SOME' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '4' }] }, - { prim: 'GET_AND_UPDATE' }, - { prim: 'DROP' }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'failed assertion' } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '1' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'ADD' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ], - [ - { prim: 'DIG', args: [{ int: '4' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '5' }] }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [{ prim: 'string' }, { string: 'failed assertion' }] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'NONE', args: [{ prim: 'ticket', args: [{ prim: 'nat' }] }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [{ int: '3' }] }, - { prim: 'CDR' }, - { prim: 'GET_AND_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'DROP', args: [{ int: '5' }] }, - { - prim: 'PUSH', - args: [{ prim: 'string' }, { string: 'no tickets' }] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CAR' }, - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'DIG', args: [{ int: '3' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'DIG', args: [{ int: '2' }] }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ] - ] - } - ], - storage: { - prim: 'Pair', - args: [{ string: 'tz1bwfmSYqrhUTAoybGdhWBBefsbuhNdcC2Y' }, { int: '142' }, { int: '2' }, { int: '143' }] - } - } -}; -export const storage = rpcContractResponse.script.code.find((x) => x.prim === 'storage')!.args[0] as any; - -export const params = rpcContractResponse.script.code.find((x) => x.prim === 'parameter')!.args[0] as any; - -export const bigMapValue = { - prim: 'Pair', - args: [{ string: 'KT1EAMUQC1yJ2sRPNPpLHVMGCzroYGe1C1ea' }, { int: '0' }, { int: '1' }] -}; diff --git a/packages/taquito-michelson-encoder/data/sample19_sapling.ts b/packages/taquito-michelson-encoder/data/sample19_sapling.ts deleted file mode 100644 index 280a36eb38..0000000000 --- a/packages/taquito-michelson-encoder/data/sample19_sapling.ts +++ /dev/null @@ -1,1047 +0,0 @@ -export const rpcContractResponse = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { prim: 'option', args: [ { prim: 'key_hash' } ], annots: [ '%key' ] }, - { prim: 'sapling_transaction', args: [ { int: '8' } ], annots: [ '%transaction' ] } - ] - } - ] - } - ] - }, - { prim: 'storage', args: [ { prim: 'sapling_state', args: [ { int: '8' } ] } ] }, - { - prim: 'code', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'SWAP' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [ { prim: 'int' }, { int: '10' } ] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'ABS' }, - { prim: 'PUSH', args: [ { prim: 'mutez' }, { int: '1' } ] }, - { prim: 'MUL' }, - { prim: 'PUSH', args: [ { prim: 'int' }, { int: '0' } ] }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'COMPARE' }, - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CAR' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [ { prim: 'int' }, { int: '15' } ] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'IMPLICIT_ACCOUNT' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' } - ], - [ - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'CAR' }, - { - prim: 'IF_NONE', - args: [ - [ { prim: 'SWAP' }, { prim: 'DROP' } ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'WrongCondition: ~ operation.key.is_some()' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'AMOUNT' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'WrongCondition: sp.amount == amount_tez.value' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'SWAP' }, - { prim: 'ITER', args: [ [ { prim: 'CONS' } ] ] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { int: '14' } - } -}; - -export const storage = rpcContractResponse.script.code.find((x) => x.prim === 'storage')!.args[0] as any; - -export const params = rpcContractResponse.script.code.find((x) => x.prim === 'parameter')!.args[0] as any; - -export const rpcContractResponse2 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'sapling_transaction', - args: [ { int: '8' } ], - annots: [ '%transaction' ] - }, - { prim: 'option', args: [ { prim: 'key_hash' } ], annots: [ '%key' ] } - ] - } - ], - annots: [ '%__entry_00__' ] - }, - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'sapling_transaction', - args: [ { int: '8' } ], - annots: [ '%transaction' ] - }, - { prim: 'option', args: [ { prim: 'key_hash' } ], annots: [ '%key' ] } - ] - } - ], - annots: [ '%__entry_01__' ] - } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'mutez', annots: [ '%balance' ] }, - { prim: 'sapling_state', args: [ { int: '8' } ], annots: [ '%ledger1' ] }, - { prim: 'sapling_state', args: [ { int: '8' } ], annots: [ '%ledger2' ] } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUP' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'SWAP' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CAR' }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [ { prim: 'int' }, { int: '12' } ] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DIG', args: [ { int: '4' } ] }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'ABS' }, - { prim: 'PUSH', args: [ { prim: 'mutez' }, { int: '1' } ] }, - { prim: 'MUL' }, - { prim: 'DIG', args: [ { int: '6' } ] }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'PAIR' }, - { prim: 'DUG', args: [ { int: '6' } ] }, - { prim: 'PUSH', args: [ { prim: 'int' }, { int: '0' } ] }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'COMPARE' }, - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ { prim: 'int' }, { int: '18' } ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'IMPLICIT_ACCOUNT' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' } - ], - [ - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { - prim: 'IF_NONE', - args: [ - [ { prim: 'SWAP' }, { prim: 'DROP' } ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'WrongCondition: ~ operation.key.is_some()' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'AMOUNT' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'WrongCondition: sp.amount == amount_tez.value' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DROP' } - ], - [ - { prim: 'DUP' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'SWAP' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CAR' }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [ { prim: 'int' }, { int: '28' } ] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'DIG', args: [ { int: '4' } ] }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'DUP' }, - { prim: 'CAR' }, - { prim: 'DUP' }, - { prim: 'ABS' }, - { prim: 'PUSH', args: [ { prim: 'mutez' }, { int: '1' } ] }, - { prim: 'MUL' }, - { prim: 'DIG', args: [ { int: '6' } ] }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'PAIR' }, - { prim: 'DUG', args: [ { int: '6' } ] }, - { prim: 'PUSH', args: [ { prim: 'int' }, { int: '0' } ] }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'COMPARE' }, - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ { prim: 'int' }, { int: '34' } ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'IMPLICIT_ACCOUNT' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' } - ], - [ - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DROP' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { - prim: 'IF_NONE', - args: [ - [ { prim: 'SWAP' }, { prim: 'DROP' } ], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'WrongCondition: ~ operation.key.is_some()' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - }, - { prim: 'AMOUNT' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [], - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'WrongCondition: sp.amount == amount_tez.value' - } - ] - }, - { prim: 'FAILWITH' } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DROP' } - ] - ] - }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'SWAP' }, - { prim: 'ITER', args: [ [ { prim: 'CONS' } ] ] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { prim: 'Pair', args: [ { int: '0' }, { int: '17' }, { int: '18' } ] } - } -}; - -export const storage2 = rpcContractResponse2.script.code.find((x) => x.prim === 'storage')!.args[0] as any; - -export const params2 = rpcContractResponse2.script.code.find((x) => x.prim === 'parameter')!.args[0] as any; - -// KT1NQh57yhVyT9cKhvjjaSmZ9YHZgwkAhJsB -export const rpcContractResponse3 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'list', - args: [ - { - prim: 'pair', - args: [ - { prim: 'sapling_transaction', args: [ { int: '8' } ] }, - { prim: 'option', args: [ { prim: 'key_hash' } ] } - ] - } - ] - } - ] - }, - { prim: 'storage', args: [ { prim: 'sapling_state', args: [ { int: '8' } ] } ] }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [ [ { prim: 'SWAP' } ] ] }, - { prim: 'AMOUNT' }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [ [ { prim: 'SWAP' } ] ] }, - { - prim: 'ITER', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'DIP', args: [ [ { prim: 'SWAP' } ] ] }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [ [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ], [] ] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DUP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'ABS' }, - { prim: 'PUSH', args: [ { prim: 'mutez' }, { int: '1' } ] }, - { prim: 'MUL' } - ] - ] - }, - [ - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DIP', - args: [ - { int: '2' }, - [ - [ - { - prim: 'IF_NONE', - args: [ - [ - [ - { prim: 'UNIT' }, - { prim: 'FAILWITH' } - ] - ], - [] - ] - } - ], - { prim: 'IMPLICIT_ACCOUNT' } - ] - ] - }, - { prim: 'SWAP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'UNIT' }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'SWAP' }, - { prim: 'DIP', args: [ [ { prim: 'CONS' } ] ] } - ] - ] - } - ], - [ - { prim: 'DIP', args: [ { int: '2' }, [ { prim: 'SWAP' } ] ] }, - { prim: 'DIP', args: [ [ { prim: 'SWAP' } ] ] }, - { prim: 'SWAP' }, - { prim: 'SUB' }, - { - prim: 'DIP', - args: [ - { int: '2' }, - [ - [ - { - prim: 'IF_NONE', - args: [ - [], - [ - [ - { prim: 'UNIT' }, - { prim: 'FAILWITH' } - ] - ] - ] - } - ] - ] - ] - }, - { prim: 'SWAP' } - ] - ] - } - ] - ] - ] - }, - { - prim: 'DIP', - args: [ - [ - { prim: 'PUSH', args: [ { prim: 'mutez' }, { int: '0' } ] }, - [ - [ { prim: 'COMPARE' }, { prim: 'EQ' } ], - { prim: 'IF', args: [ [], [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ] ] } - ] - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { int: '53' } - } -}; - -export const storage3 = rpcContractResponse3.script.code.find((x) => x.prim === 'storage')!.args[0] as any; - -export const params3 = rpcContractResponse3.script.code.find((x) => x.prim === 'parameter')!.args[0] as any; - -// KT1P7WdaJCnyyz83oBrHrFUPsxeVawGy4TSB -export const rpcContractResponse4 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'pair', - args: [ - { prim: 'bool' }, - { prim: 'sapling_transaction', args: [ { int: '8' } ], annots: [ ':left' ] }, - { prim: 'sapling_transaction', args: [ { int: '8' } ], annots: [ ':right' ] } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { prim: 'sapling_state', args: [ { int: '8' } ], annots: [ ':left' ] }, - { prim: 'sapling_state', args: [ { int: '8' } ], annots: [ ':right' ] } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'UNPAIR' }, - { prim: 'DIP', args: [ [ { prim: 'UNPAIR' } ] ] }, - { prim: 'DIP', args: [ { int: '3' }, [ { prim: 'UNPAIR' } ] ] }, - { prim: 'DIP', args: [ { int: '2' }, [ { prim: 'SWAP' } ] ] }, - { - prim: 'IF', - args: [ - [ - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [ [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ], [] ] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'DIP', args: [ [ { prim: 'DUP' } ] ] }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [ [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ], [] ] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'DROP' } - ] - ] - } - ], - [ - { prim: 'DIP', args: [ [ { prim: 'DUP' } ] ] }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [ [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ], [] ] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'DROP' }, - { - prim: 'DIP', - args: [ - [ - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [ [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ], [] ] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DROP' } - ] - ] - } - ] - ] - }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { prim: 'Pair', args: [ { int: '54' }, { int: '55' } ] } - } -}; - -export const storage4 = rpcContractResponse4.script.code.find((x) => x.prim === 'storage')!.args[0] as any; - -export const params4 = rpcContractResponse4.script.code.find((x) => x.prim === 'parameter')!.args[0] as any; - -// KT1R11DJKeYmt7Wzu21fQPeYdByyPWLbDqyF -export const rpcContractResponse5 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ { prim: 'list', args: [ { prim: 'sapling_transaction', args: [ { int: '8' } ] } ] } ] - }, - { prim: 'storage', args: [ { prim: 'unit' } ] }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'SAPLING_EMPTY_STATE', args: [ { int: '8' } ] }, - { prim: 'SWAP' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [ [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ], [] ] - } - ], - { prim: 'UNPAIR' }, - { prim: 'DROP' } - ] - ] - }, - { prim: 'DROP' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { prim: 'Unit' } - } -}; - -export const storage5 = rpcContractResponse5.script.code.find((x) => x.prim === 'storage')!.args[0] as any; - -export const params5 = rpcContractResponse5.script.code.find((x) => x.prim === 'parameter')!.args[0] as any; - -// KT1GZBKBSaDDEkEH4xreMJH3oSfjsqRn8MTL -export const rpcContractResponse6 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'contract', - args: [ - { - prim: 'or', - args: [ - { prim: 'sapling_transaction', args: [ { int: '8' } ] }, - { prim: 'sapling_state', args: [ { int: '8' } ] } - ] - } - ] - }, - { prim: 'sapling_transaction', args: [ { int: '8' } ] } - ] - } - ] - }, - { prim: 'storage', args: [ { prim: 'unit' } ] }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'SAPLING_EMPTY_STATE', args: [ { int: '8' } ] }, - { prim: 'SWAP' }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ { prim: 'IF_NONE', args: [ [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ], [] ] } ], - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'PUSH', args: [ { prim: 'mutez' }, { int: '0' } ] }, - { prim: 'SWAP' }, - { prim: 'RIGHT', args: [ { prim: 'sapling_transaction', args: [ { int: '8' } ] } ] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'SWAP' }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { prim: 'Unit' } - } -}; - -export const storage6 = rpcContractResponse6.script.code.find((x) => x.prim === 'storage')!.args[0] as any; - -export const params6 = rpcContractResponse6.script.code.find((x) => x.prim === 'parameter')!.args[0] as any; - -// KT1XpFASuiYhShqteQ4QjSfR21ERq2R3ZfrH -export const rpcContractResponse7 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { prim: 'sapling_transaction', args: [ { int: '8' } ] }, - { prim: 'sapling_state', args: [ { int: '8' } ] } - ] - } - ] - }, - { - prim: 'storage', - args: [ { prim: 'option', args: [ { prim: 'sapling_transaction', args: [ { int: '8' } ] } ] } ] - }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { - prim: 'IF_LEFT', - args: [ - [ { prim: 'DIP', args: [ [ { prim: 'DROP' } ] ] }, { prim: 'SOME' } ], - [ - { - prim: 'DIP', - args: [ - [ - [ - { - prim: 'IF_NONE', - args: [ [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ], [] ] - } - ] - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ - { - prim: 'IF_NONE', - args: [ [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ], [] ] - } - ], - { prim: 'DROP' }, - { prim: 'NONE', args: [ { prim: 'sapling_transaction', args: [ { int: '8' } ] } ] } - ] - ] - }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { prim: 'None' } - } -}; - -export const storage7 = rpcContractResponse7.script.code.find((x) => x.prim === 'storage')!.args[0] as any; - -export const params7 = rpcContractResponse7.script.code.find((x) => x.prim === 'parameter')!.args[0] as any; - -// KT1KnF4vZMgTRgy9hniwV9pYpPj4b7HEV8fU -export const rpcContractResponse8 = { - balance: '0', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'pair', - args: [ - { prim: 'sapling_transaction', args: [ { int: '8' } ] }, - { prim: 'sapling_state', args: [ { int: '8' } ] } - ] - } - ] - }, - { prim: 'storage', args: [ { prim: 'sapling_state', args: [ { int: '8' } ] } ] }, - { - prim: 'code', - args: [ - [ - { prim: 'UNPAIR' }, - { prim: 'UNPAIR' }, - { prim: 'DIP', args: [ { int: '2' }, [ { prim: 'DROP' } ] ] }, - { prim: 'SAPLING_VERIFY_UPDATE' }, - [ { prim: 'IF_NONE', args: [ [ [ { prim: 'UNIT' }, { prim: 'FAILWITH' } ] ], [] ] } ], - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { int: '56' } - } -}; - -export const storage8 = rpcContractResponse8.script.code.find((x) => x.prim === 'storage')!.args[0] as any; - -export const params8 = rpcContractResponse8.script.code.find((x) => x.prim === 'parameter')!.args[0] as any; diff --git a/packages/taquito-michelson-encoder/data/sample19_timestamp_ticket.ts b/packages/taquito-michelson-encoder/data/sample19_timestamp_ticket.ts deleted file mode 100644 index bfbcfd05f0..0000000000 --- a/packages/taquito-michelson-encoder/data/sample19_timestamp_ticket.ts +++ /dev/null @@ -1,2682 +0,0 @@ -export const rpcContractResponse = { - balance: '4', - script: { - code: [ - { - prim: 'parameter', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { - prim: 'or', - args: [ - { prim: 'nat', annots: [ '%buy_tickets' ] }, - { prim: 'nat', annots: [ '%place_bet' ] } - ] - }, - { - prim: 'or', - args: [ - { prim: 'unit', annots: [ '%reset_pool' ] }, - { prim: 'address', annots: [ '%update_oracle' ] } - ] - } - ] - }, - { - prim: 'or', - args: [ - { prim: 'unit', annots: [ '%validate_pool' ] }, - { - prim: 'pair', - args: [ { prim: 'string' }, { prim: 'timestamp' }, { prim: 'nat' } ], - annots: [ '%validate_pool_confirm' ] - } - ] - } - ] - } - ] - }, - { - prim: 'storage', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'big_map', - args: [ { prim: 'address' }, { prim: 'mutez' } ], - annots: [ '%winners' ] - }, - { - prim: 'map', - args: [ { prim: 'address' }, { prim: 'nat' } ], - annots: [ '%bets' ] - }, - { prim: 'mutez', annots: [ '%current_pot' ] }, - { prim: 'timestamp', annots: [ '%opened_at' ] }, - { - prim: 'pair', - args: [ - { prim: 'string', annots: [ '%pool_type' ] }, - { prim: 'mutez', annots: [ '%entrance_fee' ] }, - { prim: 'mutez', annots: [ '%minimum_bet' ] }, - { prim: 'int', annots: [ '%open_period' ] }, - { prim: 'int', annots: [ '%validation_delay' ] }, - { prim: 'int', annots: [ '%ticket_validity' ] }, - { prim: 'nat', annots: [ '%max_capacity' ] } - ], - annots: [ '%settings' ] - }, - { prim: 'option', args: [ { prim: 'address' } ], annots: [ '%validator' ] }, - { prim: 'bool', annots: [ '%pending_validation' ] }, - { prim: 'address', annots: [ '%oracle' ] }, - { prim: 'address', annots: [ '%admin' ] } - ], - annots: [ '%data' ] - }, - { - prim: 'big_map', - args: [ { prim: 'address' }, { prim: 'ticket', args: [ { prim: 'timestamp' } ] } ], - annots: [ '%tickets' ] - } - ] - } - ] - }, - { - prim: 'code', - args: [ - [ - { - prim: 'LAMBDA', - args: [ - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'big_map', args: [ { prim: 'address' }, { prim: 'mutez' } ] }, - { - prim: 'pair', - args: [ - { prim: 'map', args: [ { prim: 'address' }, { prim: 'nat' } ] }, - { - prim: 'pair', - args: [ - { prim: 'mutez' }, - { - prim: 'pair', - args: [ - { prim: 'timestamp' }, - { - prim: 'pair', - args: [ - { - prim: 'pair', - args: [ - { prim: 'string' }, - { - prim: 'pair', - args: [ - { prim: 'mutez' }, - { - prim: 'pair', - args: [ - { - prim: - 'mutez' - }, - { - prim: - 'pair', - args: [ - { - prim: - 'int' - }, - { - prim: - 'pair', - args: [ - { - prim: - 'int' - }, - { - prim: - 'pair', - args: [ - { - prim: - 'int' - }, - { - prim: - 'nat' - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, - { - prim: 'pair', - args: [ - { - prim: 'option', - args: [ - { prim: 'address' } - ] - }, - { - prim: 'pair', - args: [ - { prim: 'bool' }, - { - prim: 'pair', - args: [ - { - prim: - 'address' - }, - { - prim: - 'address' - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, - { prim: 'address' } - ] - }, - { prim: 'operation' }, - [ - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { - prim: 'CONTRACT', - args: [ - { - prim: 'pair', - args: [ - { prim: 'string' }, - { prim: 'pair', args: [ { prim: 'timestamp' }, { prim: 'nat' } ] } - ] - } - ], - annots: [ '%validate_pool_confirm' ] - }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ { prim: 'string' }, { string: 'NO_CONTRACT' } ] - }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'CONTRACT', - args: [ - { - prim: 'pair', - args: [ - { prim: 'string' }, - { - prim: 'contract', - args: [ - { - prim: 'pair', - args: [ - { prim: 'string' }, - { - prim: 'pair', - args: [ { prim: 'timestamp' }, { prim: 'nat' } ] - } - ] - } - ] - } - ] - } - ], - annots: [ '%get' ] - }, - { - prim: 'IF_NONE', - args: [ - [ - { prim: 'PUSH', args: [ { prim: 'string' }, { string: 'NO_ORACLE' } ] }, - { prim: 'FAILWITH' } - ], - [] - ] - }, - { prim: 'PUSH', args: [ { prim: 'mutez' }, { int: '0' } ] }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'TRANSFER_TOKENS' } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'UNPAIR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { - prim: 'IF_LEFT', - args: [ - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DROP' }, - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'PUSH', args: [ { prim: 'nat' }, { int: '0' } ] }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [ { int: '3' } ] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'ZERO_TICKET_AMOUNT' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'MUL' }, - { prim: 'AMOUNT' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DROP', - args: [ { int: '3' } ] - }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'INCORRECT_AMOUNT' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SWAP' }, - { - prim: 'NONE', - args: [ - { - prim: 'ticket', - args: [ - { - prim: - 'timestamp' - } - ] - } - ] - }, - { prim: 'SENDER' }, - { prim: 'GET_AND_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'NOW' }, - { prim: 'TICKET' } - ], - [ - { - prim: 'DIG', - args: [ - { int: '3' } - ] - }, - { prim: 'NOW' }, - { prim: 'TICKET' }, - { prim: 'PAIR' }, - { - prim: 'JOIN_TICKETS' - }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: - 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'UNJOIGNABLE_TICKETS' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [] - ] - } - ] - ] - }, - { prim: 'SOME' }, - { prim: 'SENDER' }, - { prim: 'GET_AND_UPDATE' }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'PAIR' }, - { - prim: 'NIL', - args: [ { prim: 'operation' } ] - }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ], - [ - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'SWAP' }, - { - prim: 'NONE', - args: [ - { prim: 'ticket', args: [ { prim: 'timestamp' } ] } - ] - }, - { prim: 'SENDER' }, - { prim: 'GET_AND_UPDATE' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_TICKET' } - ] - }, - { prim: 'FAILWITH' } - ], - [ { prim: 'READ_TICKET' }, { prim: 'PAIR' } ] - ] - }, - { prim: 'UNPAIR' }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { prim: 'UNPAIR' }, - { prim: 'NOW' }, - { prim: 'DIG', args: [ { int: '4' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '5' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'ADD' }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [ { int: '4' } ] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'INVALID_TICKET' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'PUSH', - args: [ { prim: 'nat' }, { int: '1' } ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DROP', - args: [ { int: '4' } ] - }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'INVALID_TICKETS_AMOUNT' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'NOW' }, - { - prim: 'DIG', - args: [ { int: '3' } ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ { int: '4' } ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'DIG', - args: [ { int: '4' } ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ { int: '5' } ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'ADD' }, - { prim: 'COMPARE' }, - { prim: 'LT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DROP', - args: [ - { int: '4' } - ] - }, - { - prim: 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'NOT_OPEN' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '3' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [ - { int: '3' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '4' } - ] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'SIZE' }, - { prim: 'COMPARE' }, - { prim: 'GE' }, - { - prim: 'IF', - args: [ - [ - { - prim: - 'DROP', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'MAXIMUM_CAPACITY' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [ - { - prim: - 'SWAP' - }, - { - prim: - 'PUSH', - args: [ - { - prim: - 'nat' - }, - { - int: - '1' - } - ] - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'SUB' - }, - { - prim: - 'ABS' - }, - { - prim: - 'NOW' - }, - { - prim: - 'TICKET' - }, - { - prim: - 'SOME' - }, - { - prim: - 'SENDER' - }, - { - prim: - 'GET_AND_UPDATE' - }, - { - prim: - 'DROP' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'SOME' - }, - { - prim: - 'SENDER' - }, - { - prim: - 'UPDATE' - }, - { - prim: - 'PAIR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'CAR' - }, - { - prim: - 'PAIR' - }, - { - prim: - 'PAIR' - } - ] - ] - } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'PAIR' } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DROP' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [ { int: '3' } ] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'UNAUTHORIZED_ACTION' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'NOW' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'ADD' }, - { prim: 'ADD' }, - { prim: 'COMPARE' }, - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DROP', - args: [ { int: '3' } ] - }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'TOO_EARLY_FOR_RESET' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SELF_ADDRESS' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ { int: '2' } ] - }, - { prim: 'PAIR' }, - { - prim: 'DIG', - args: [ { int: '3' } ] - }, - { prim: 'SWAP' }, - { prim: 'EXEC' }, - { - prim: 'DUG', - args: [ { int: '2' } ] - }, - { prim: 'PAIR' }, - { - prim: 'NIL', - args: [ { prim: 'operation' } ] - }, - { - prim: 'DIG', - args: [ { int: '2' } ] - }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ], - [ - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DROP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [ { int: '3' } ] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NOT_AN_ADMIN' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' } - ] - ] - }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ], - [ - { - prim: 'IF_LEFT', - args: [ - [ - { prim: 'DROP' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [ { int: '3' } ] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'ACTIVE_PENDING_VALIDATION' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'SELF_ADDRESS' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'SWAP' }, - { prim: 'EXEC' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'PUSH', - args: [ { prim: 'bool' }, { prim: 'True' } ] - }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SENDER' }, - { prim: 'SOME' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'CONS' }, - { prim: 'PAIR' } - ] - ] - } - ], - [ - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DROP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'NOT' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [ { int: '3' } ] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'NO_PENDING_VALIDATION' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'SENDER' }, - { prim: 'COMPARE' }, - { prim: 'NEQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP', args: [ { int: '3' } ] }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { string: 'UNAUTHORIZED_SENDER' } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { prim: 'NOW' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '2' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [ { int: '2' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '3' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'DIG', args: [ { int: '3' } ] }, - { prim: 'DUP' }, - { prim: 'DUG', args: [ { int: '4' } ] }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'ADD' }, - { prim: 'ADD' }, - { prim: 'COMPARE' }, - { prim: 'GT' }, - { - prim: 'IF', - args: [ - [ - { - prim: 'DROP', - args: [ { int: '3' } ] - }, - { - prim: 'PUSH', - args: [ - { prim: 'string' }, - { - string: - 'UNAVAILABLE_FOR_VALIDATION' - } - ] - }, - { prim: 'FAILWITH' } - ], - [ - { - prim: 'DIG', - args: [ { int: '2' } ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'PUSH', - args: [ - { prim: 'nat' }, - { int: '100' } - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ { int: '2' } ] - }, - { prim: 'MUL' }, - { - prim: 'DIG', - args: [ { int: '2' } ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ { int: '3' } ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'PAIR' }, - { - prim: 'DIG', - args: [ { int: '2' } ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ { int: '3' } ] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'ITER', - args: [ - [ - { prim: 'SWAP' }, - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '3' } - ] - }, - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '3' } - ] - }, - { prim: 'CDR' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { - prim: - 'DROP' - }, - { - prim: - 'PUSH', - args: [ - { - prim: - 'nat' - }, - { - int: - '0' - } - ] - }, - { - prim: - 'SWAP' - }, - { - prim: - 'CAR' - }, - { - prim: - 'PAIR' - } - ], - [ - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'COMPARE' - }, - { - prim: - 'GT' - }, - { - prim: - 'IF', - args: [ - [ - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'SUB' - }, - { - prim: - 'ABS' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'COMPARE' - }, - { - prim: - 'LT' - }, - { - prim: - 'IF', - args: [ - [ - { - prim: - 'SWAP' - }, - { - prim: - 'DROP' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'CAR' - }, - { - prim: - 'PAIR' - } - ], - [ - { - prim: - 'DROP' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'DROP' - } - ] - ] - } - ], - [ - { - prim: - 'SWAP' - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'SUB' - }, - { - prim: - 'ABS' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'COMPARE' - }, - { - prim: - 'LT' - }, - { - prim: - 'IF', - args: [ - [ - { - prim: - 'SWAP' - }, - { - prim: - 'DROP' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'CAR' - }, - { - prim: - 'PAIR' - } - ], - [ - { - prim: - 'DROP' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'DROP' - } - ] - ] - } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DROP' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ { int: '2' } ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ { int: '2' } ] - }, - { prim: 'CAR' }, - { prim: 'COMPARE' }, - { prim: 'EQ' }, - { - prim: 'IF', - args: [ - [ - { prim: 'DROP' }, - { prim: 'PAIR' } - ], - [ - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CAR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CAR' }, - { prim: 'GET' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: - 'SWAP' - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'CAR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'CAR' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'SOME' - }, - { - prim: - 'SWAP' - }, - { - prim: - 'UPDATE' - } - ], - [ - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'CAR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'CDR' - }, - { - prim: - 'CDR' - }, - { - prim: - 'CAR' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'ADD' - }, - { - prim: - 'SOME' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'CAR' - }, - { - prim: - 'UPDATE' - } - ] - ] - }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { - prim: 'IF_NONE', - args: [ - [ - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'NONE', - args: [ - { - prim: - 'ticket', - args: [ - { - prim: - 'timestamp' - } - ] - } - ] - }, - { - prim: - 'PAIR' - } - ], - [ - { - prim: - 'PUSH', - args: [ - { - prim: - 'nat' - }, - { - int: - '1' - } - ] - }, - { - prim: - 'NOW' - }, - { - prim: - 'TICKET' - }, - { - prim: - 'DIG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'NONE', - args: [ - { - prim: - 'ticket', - args: [ - { - prim: - 'timestamp' - } - ] - } - ] - }, - { - prim: - 'DIG', - args: [ - { - int: - '3' - } - ] - }, - { - prim: - 'DUP' - }, - { - prim: - 'DUG', - args: [ - { - int: - '4' - } - ] - }, - { - prim: - 'GET_AND_UPDATE' - }, - { - prim: - 'IF_NONE', - args: [ - [ - { - prim: - 'SWAP' - }, - { - prim: - 'SOME' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'GET_AND_UPDATE' - }, - { - prim: - 'PAIR' - } - ], - [ - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'PAIR' - }, - { - prim: - 'JOIN_TICKETS' - }, - { - prim: - 'IF_NONE', - args: [ - [ - { - prim: - 'DROP', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'PUSH', - args: [ - { - prim: - 'string' - }, - { - string: - 'UNJOIGNABLE_TICKETS' - } - ] - }, - { - prim: - 'FAILWITH' - } - ], - [ - { - prim: - 'SOME' - }, - { - prim: - 'DIG', - args: [ - { - int: - '2' - } - ] - }, - { - prim: - 'GET_AND_UPDATE' - }, - { - prim: - 'PAIR' - } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'UNPAIR' }, - { prim: 'DROP' }, - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { - prim: 'DIG', - args: [ - { int: '2' } - ] - }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'PUSH', - args: [ - { - prim: - 'mutez' - }, - { int: '0' } - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'PUSH', - args: [ - { - prim: 'bool' - }, - { - prim: - 'False' - } - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'NOW' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'DUP' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { - prim: 'NONE', - args: [ - { - prim: - 'address' - } - ] - }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'DUP' }, - { - prim: 'DUG', - args: [ - { int: '2' } - ] - }, - { prim: 'CDR' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'SWAP' }, - { prim: 'CAR' }, - { prim: 'PAIR' }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ] - ] - } - ] - ] - }, - { prim: 'NIL', args: [ { prim: 'operation' } ] }, - { prim: 'PAIR' } - ] - ] - } - ] - ] - } - ] - ] - } - ], - storage: { - prim: 'Pair', - args: [ - { - prim: 'Pair', - args: [ - { int: '24059' }, - [], - { int: '0' }, - { string: '2019-09-09T12:09:37Z' }, - { - prim: 'Pair', - args: [ - { string: 'XTZ-USD' }, - { int: '2' }, - { int: '2' }, - { int: '86400' }, - { int: '86400' }, - { int: '2592000' }, - { int: '9' } - ] - }, - { prim: 'None' }, - { prim: 'False' }, - { string: 'tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb' }, - { string: 'tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb' } - ] - }, - { int: '24060' } - ] - } - } -}; - -// deepcode ignore no-any: any is good enough -export const storage = rpcContractResponse.script.code.find((x) => x.prim === 'storage')!.args[0] as any; - -// deepcode ignore no-any: any is good enough -export const params = rpcContractResponse.script.code.find((x) => x.prim === 'parameter')!.args[0] as any; - -export const bigMapValue = { - prim: 'Pair', - args: [ { string: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw' }, { string: '2021-03-09T16:32:15Z' }, { int: '2' } ] -}; diff --git a/packages/taquito-michelson-encoder/package-lock.json b/packages/taquito-michelson-encoder/package-lock.json index a0de0cd5c3..7e3b14f177 100644 --- a/packages/taquito-michelson-encoder/package-lock.json +++ b/packages/taquito-michelson-encoder/package-lock.json @@ -1,37 +1,38 @@ { "name": "@taquito/michelson-encoder", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -64,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -244,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -268,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -349,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -632,12 +633,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -685,9 +694,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -733,9 +742,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -743,9 +752,9 @@ } }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", "dev": true }, "@types/normalize-package-data": { @@ -761,9 +770,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -773,18 +782,18 @@ "dev": true }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, "abab": { @@ -850,6 +859,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1021,9 +1038,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1079,6 +1096,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1243,63 +1289,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1337,19 +1326,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1405,9 +1381,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1435,6 +1411,14 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==", + "dev": true + } } }, "copy-descriptor": { @@ -1475,16 +1459,10 @@ "request": "^2.88.2" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1551,9 +1529,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1609,6 +1587,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1650,6 +1659,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1719,12 +1734,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1757,9 +1766,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1775,20 +1784,63 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "exit": { @@ -1839,69 +1891,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1938,6 +1927,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -1974,24 +1974,47 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, "fast-deep-equal": { @@ -2109,9 +2132,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2146,9 +2169,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2190,9 +2213,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2203,9 +2226,9 @@ "optional": true }, "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", "dev": true, "requires": { "minimist": "^1.2.5", @@ -2298,6 +2321,12 @@ } } }, + "highlight.js": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.0.tgz", + "integrity": "sha512-EfrUGcQ63oLJbj0J0RI9ebX6TAITbsDBLbsjr881L/X5fMO9+oadKzEF21C7R3ULKG6Gv3uoab2HiqVJa/4+oA==", + "dev": true + }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", @@ -2352,9 +2381,9 @@ } }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2420,12 +2449,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2450,32 +2490,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2486,13 +2545,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2540,9 +2596,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2568,9 +2624,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2658,6 +2714,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2669,27 +2748,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -3020,28 +3121,10 @@ "semver": "^7.3.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } @@ -3115,9 +3198,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3162,6 +3245,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -3195,9 +3291,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3265,9 +3361,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3285,12 +3381,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3300,8 +3439,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3325,6 +3463,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3368,29 +3512,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "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" - } - }, "lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -3445,9 +3569,9 @@ } }, "marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.4.tgz", + "integrity": "sha512-6x5TFGCTKSQBLTZtOburGxCxFEBJEGYVLwCMTBCxzvyuisGcC20UNzDSJhCr/cJ/Kmh6ulfJm10g6WWEAJ3kvg==", "dev": true }, "merge-stream": { @@ -3467,18 +3591,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3510,13 +3634,27 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "ms": { "version": "2.1.2", @@ -3586,9 +3724,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3600,30 +3738,17 @@ "which": "^2.0.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", "dev": true, "optional": true } @@ -3648,12 +3773,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -3688,43 +3821,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3772,15 +3868,6 @@ "mimic-fn": "^2.1.0" } }, - "onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } - }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -3850,9 +3937,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3933,6 +4020,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -3955,9 +4048,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -3979,16 +4072,17 @@ "dev": true }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -4073,14 +4167,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "rechoir": { @@ -4121,48 +4207,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4191,24 +4243,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4229,18 +4263,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4318,12 +4340,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4343,6 +4374,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4366,6 +4409,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4376,14 +4425,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4399,20 +4440,12 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "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==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-regex": { @@ -4486,34 +4519,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4537,21 +4542,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4572,12 +4562,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4608,36 +4592,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4647,15 +4601,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4706,12 +4651,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4748,16 +4687,6 @@ "dev": true, "optional": true }, - "shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", - "dev": true, - "requires": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" - } - }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -4830,69 +4759,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4904,19 +4770,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -4939,6 +4792,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -4969,13 +4851,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -4989,9 +4874,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -5021,9 +4906,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5099,63 +4984,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5342,12 +5170,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5362,9 +5189,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5373,47 +5200,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5421,9 +5241,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -5494,15 +5314,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5511,12 +5322,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5533,34 +5338,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5572,14 +5375,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5613,9 +5408,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5628,34 +5423,34 @@ } }, "typedoc": { - "version": "0.20.32", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.32.tgz", - "integrity": "sha512-GSopd/tiqoKE3fEdvhoaEpR9yrEPsR9tknAjkoeSPL6p1Rq5aVsKxBhhF6cwoDJ7oWjpvnm8vs0rQN0BxEHuWQ==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.19.2.tgz", + "integrity": "sha512-oDEg1BLEzi1qvgdQXc658EYgJ5qJLVSeZ0hQ57Eq4JXy6Vj2VX4RVo18qYxRWz75ifAaYuYNBUCnbhjd37TfOg==", "dev": true, "requires": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", + "fs-extra": "^9.0.1", + "handlebars": "^4.7.6", + "highlight.js": "^10.2.0", + "lodash": "^4.17.20", "lunr": "^2.3.9", - "marked": "^2.0.1", + "marked": "^1.1.1", "minimatch": "^3.0.0", "progress": "^2.0.3", + "semver": "^7.3.2", "shelljs": "^0.8.4", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.9" + "typedoc-default-themes": "^0.11.4" }, "dependencies": { "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "universalify": "^1.0.0" } }, "jsonfile": { @@ -5666,38 +5461,46 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } }, "typedoc-default-themes": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.9.tgz", - "integrity": "sha512-Jd5fYTiqzinZdoIY382W7tQXTwAzWRdg8KbHfaxmb78m1/3jL9riXtk23oBOKwhi8GFVykCOdPzEJKY87/D0LQ==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.11.4.tgz", + "integrity": "sha512-Y4Lf+qIb9NTydrexlazAM46SSLrmrQRqWiD52593g53SsmUFioAsMWt8m834J6qsp+7wHRjxCXSZeiiW5cMUdw==", "dev": true }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-EWhx3fHy3M9JbaeTnO+rEqzCe1wtyQClv6q3YWq0voOj4E+bMZBErVS1GAHPDiRGONYq34M1/d8KuQMgvi6Gjw==", + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.6.tgz", + "integrity": "sha512-oASI1FOJ7BBFkSCNDZ446EgkSuHkOZBuqRFrwXIKWCoXw8ZXQETooTQjkAcBS03Acab7ubCKsXnwuV2svy061g==", "dev": true, "optional": true }, @@ -5711,14 +5514,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5764,19 +5559,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -5808,15 +5597,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5829,16 +5609,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -5875,12 +5654,6 @@ "extsprintf": "^1.2.0" } }, - "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -5956,9 +5729,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -5966,6 +5739,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -5980,6 +5754,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -5996,9 +5776,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -6025,9 +5805,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -6043,15 +5823,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -6077,25 +5851,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-michelson-encoder/package.json b/packages/taquito-michelson-encoder/package.json index 07e4ff9929..cc06b44459 100644 --- a/packages/taquito-michelson-encoder/package.json +++ b/packages/taquito-michelson-encoder/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/michelson-encoder", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "converts michelson data and types into convenient JS/TS objects", "keywords": [ "tezos", @@ -34,9 +34,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -68,20 +67,20 @@ ] }, "dependencies": { - "@taquito/rpc": "^9.0.0", - "@taquito/utils": "^9.0.0", + "@taquito/rpc": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1", "fast-json-stable-stringify": "^2.1.0" }, "devDependencies": { - "@taquito/rpc": "^7.1.0-beta.0", - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", + "@taquito/rpc": "^6.4.0-ledger.0", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -93,13 +92,13 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.32", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-michelson-encoder/signature.json b/packages/taquito-michelson-encoder/signature.json index 68bc017ad8..543f4291d5 100644 --- a/packages/taquito-michelson-encoder/signature.json +++ b/packages/taquito-michelson-encoder/signature.json @@ -30,11 +30,11 @@ }, { "path": "dist/lib/tokens/createToken.js", - "sha512": "9e337398d6a806c26235b406a91464964a433a2c3ddf0bcad2428c31d70d201ee022a09493bf3d47bd4853dc67b204273e0c72c47c6809d351a6640e1c2e5520" + "sha512": "f5e6485b623567cdd4f1740605ea455b2e84885efbdeee5cce2bcb67802b424f177628aa0efb5f98c4af311af39886944706b08c43e80404617fd09c2957c798" }, { "path": "dist/lib/errors.js", - "sha512": "93d701bcf3bfd6cb9d03ff0820e851449c60da69727a9c4a22eb3c4f29a893e2aad5a5d511fad5abe79761cf2f0a91dc312e29e7b892e4c05e138713c9950604" + "sha512": "0d923aba1f8141c7c345f257b9ce37af2f9e2f2f8338aae214b29f7c6e34d1f68a1c35c1ff7847ca8d70bd84494a12e9367cfb33144a06be5b27c1f30385491e" }, { "path": "dist/lib/tokens/comparable/int.js", @@ -90,7 +90,7 @@ }, { "path": "dist/lib/tokens/pair.js", - "sha512": "73c7908c97ddf36d16b8a979fa048b8032731fcc717557035600af061b8f46e348e5460b1fd50e3af29f2387987340af79dbe2fa767604490e6175fffa64658c" + "sha512": "c6d05b39e7a3aad02d215dc3276ae80389631194ec0761ef0968c27812d42962a60422b37ee794ae4beaf2a166372f0d9e0a9743d548dad25fa14c5fea8541fa" }, { "path": "dist/lib/schema/parameter.js", @@ -106,7 +106,7 @@ }, { "path": "dist/lib/schema/storage.js", - "sha512": "f45ceaa68ccd86843b15aae107c69b5302b59b00490388a581137b9d0b1313065e238f7a9c826fd1483da96b92ae67849f10cd0299d7956773b06f46954176d8" + "sha512": "69c35a030fcaa0f1d9dba5f40b68d122cee15051daa13543c8849e47f224878bca9797458837b6d6a0f214c75a5b17c5d4ccca8edc653706929d849b6486e843" }, { "path": "dist/lib/tokens/comparable/string.js", @@ -114,19 +114,15 @@ }, { "path": "dist/taquito-michelson-encoder.es5.js", - "sha512": "bdc9fff9701133a40094ec8195f38a19001f1881ab509c2e92224c9a984d2975efcb59665a833ce7848b0d3f8e2e01f59bd35d51c3aafe974bf0ba3e3e109768" + "sha512": "d9be43e3224a8c55aed6fdbb5e2379589a3eae1c51f3f16fd27ae1918dc0da63dee85d769af4d41a0adb5ee9cf40a42d00ec864bedfb375151c1950db055297f" }, { "path": "dist/lib/taquito-michelson-encoder.js", - "sha512": "c74e7a5cf8b8827b0415b4602acfcab21a958fa6a04d8de7ff70800547ff051031fc6586402c9f9f0ca08a837f91966a937e99958a6cbc41ae068a608e8110a7" + "sha512": "d54217084d5744dc34ea3ec016e652e30ef4288bfb08db15056e9597db8e71f67dc639dc85c4c882a37ca6ca2d5079691d3ec5382f30be3f88e996797327cd04" }, { "path": "dist/taquito-michelson-encoder.umd.js", - "sha512": "cb86b091175a3cf766bf4164f103906f2a77d8a44751221ac28a0c4357e9d65d849057707901ada403ed645b13f9b0a54cd7de6bd06211bff97fdf9c7562f5dd" - }, - { - "path": "dist/lib/tokens/ticket.js", - "sha512": "c5c0433084036ef06d5f64a3c3b9eec215e7cedc05836e538938386fe1bc2742c1523d177fb7c53b497a0d7cd94350fd9eb3a7fac7ad9ac6b4d7a27faf9f3b8d" + "sha512": "50020172019046ea5b49869e29e72e7c41f708b81c18f72353a2f51cb13fa6ade4d6b0d16a7c7713528c7a0b179dd6e2f529c8dc5a2e27fd0e797de7894cbfa2" }, { "path": "dist/lib/tokens/comparable/timestamp.js", @@ -138,7 +134,7 @@ }, { "path": "dist/lib/tokens/tokens.js", - "sha512": "bcff98fb75212e620278fde35bdd1520bd674fea79d4a0c3a8ca067bc6fe64cb8d0cb8a106f058d5a49d7595d9cafb5500bb6c941592a222a8920d46191359df" + "sha512": "48368b7a899fdc320d038d534a6d6bf0272500c71743d1d9bf3e29758d2db7f8bce32f794bc4694c57175400fc76c6856c023429f574827101f2f4ef67775e4b" }, { "path": "dist/lib/schema/types.js", @@ -174,11 +170,11 @@ }, { "path": "dist/lib/tokens/createToken.js.map", - "sha512": "b796a48f7d3f7c9bd0428492f93992dfedf107352bcf5ee36e971dd70d0bcd0cd204830ae7f7418c7941581ef7bfd5cc66a783aca89e5d42f065696555a391de" + "sha512": "5b2e899771f27852bb3b78400d121b5b13f3ad11782b34e65a690c6a72cf69e759ba3682fff34c3b76b8421937fef08cdec22a42eff260aa2fb35a6d5f961717" }, { "path": "dist/lib/errors.js.map", - "sha512": "76f71ddf223cb66b56dbd7b6b9fb4e1b940574b7d10a634091dc5b3091dd2da79e7ff5cf3e83f328d141f8374ba0b0b21af96f9b27003e5a5ac208a1f8917fef" + "sha512": "333db8e9683e9d0a1d9ab34d0d2d90ce81d9a6ab1a892d1d26163a4f6b92c969ba56a03ada2d998dafdf27c7422da02f3948126e1a17cd0275b8cea4f81ae323" }, { "path": "dist/lib/tokens/comparable/int.js.map", @@ -234,7 +230,7 @@ }, { "path": "dist/lib/tokens/pair.js.map", - "sha512": "c99502e2ee6b7ca8fd54a47693bb9178ef1a51805464f6e531203c1caf745bf4db63954a927fb33ec97baf93250b30b266fddcc0cf653d10c9327357fc870846" + "sha512": "f7c4cbf4510eae7448501f60fb41c91981416c01faacfdaa47cbd056491cf759616fa3f33cc1a0beda18b5db2e8f7d3fd7893c2a70bfbc1f0e6e9a62e70de173" }, { "path": "dist/lib/schema/parameter.js.map", @@ -250,7 +246,7 @@ }, { "path": "dist/lib/schema/storage.js.map", - "sha512": "134dab96ed60230693e036a2b657a174330f5e9c700009827d2a513728e8aefeab9e45be0628edc7fc88d62287793a72b3705a599081e302ee4b07befa73d2a4" + "sha512": "05276bfb929f2baecda3b9a6b4f50693ac97b216c298b15bebc7be85d89f8d37842f1e197f15ba70e4dfbf39e5465e5197a7eba849a6430f3412024cb66052c8" }, { "path": "dist/lib/tokens/comparable/string.js.map", @@ -258,19 +254,15 @@ }, { "path": "dist/taquito-michelson-encoder.es5.js.map", - "sha512": "da3df8fd96008c7541e99b269a6bf15b8711d5d693a9f6f70376bc6c9eee6653928c7f88911fa421ebd27e584ad06abb993956963505f8c7d9c77c4cfed9aef1" + "sha512": "725a083077a4ccd555df49be9c8a2c3f8ce64dff8d9ead691b95e1326e63bfda70b17154f0a13c26f6b5f5a618728e82c54b4ef1e81d0d2c3c9b4bd9a4b8752f" }, { "path": "dist/lib/taquito-michelson-encoder.js.map", - "sha512": "109738f22305cb323547a1f82f6cd1f3d63c4cf3bcbdbd0fad29df1606c64b6971707c6bc798162f4aae5d2f03a0ab6c1ada9e8f43c3f82dfbee81bc4251af13" + "sha512": "d907be7ca555cf33f18bcf148ba32e6df6d16d8d0b7997e3205a19c293613c378a396f76e424eaa6371e49d04bc61bb27e93d66d58b2da40f30563525f1bde74" }, { "path": "dist/taquito-michelson-encoder.umd.js.map", - "sha512": "983e67420003a377d4c9e27cbabca10b7e0950e2fc343aaa2cecdbc3483699c575a8468164181c0310259bda1654c51863e92dbc8eb8410d204d7844f2d3c0e1" - }, - { - "path": "dist/lib/tokens/ticket.js.map", - "sha512": "e69d45596f397caa01236304118d94b14083cebfa14015d2fa11c413d3f07abcc0f31fe50c2f0ed0f8c15b0296c739f688999c23b3de719e4816898d13d18dde" + "sha512": "eb352a6261fd9c1db40f1980812dbbda53b60397879ec15dd4a257911f338779478608120fa999827080d269df20594f48dc0727e20a475043518b79382c1313" }, { "path": "dist/lib/tokens/comparable/timestamp.js.map", @@ -278,11 +270,11 @@ }, { "path": "dist/lib/tokens/token.js.map", - "sha512": "d17e5884b46c5743acb8f238b353c97889bbd0e79956b05f298e526c765fb051709938ff8b9a4110d4597c7b49d758f22c4eb4fc07599b15e10f38fe4315c538" + "sha512": "cf4c1343698f0fe60b5d363cc6213a34f436fc1ff263b674787330e19a86b5dd921aadbe4078495edd26aee7e2a18d901d8118b4f1f365f560c1e59c89abf07c" }, { "path": "dist/lib/tokens/tokens.js.map", - "sha512": "25d9e398f145c4345156dbe31d44342c07d37cd17fbd67d4afaf202b41fa6043bee7d030b031af367fa9600b653a4d7ea4de016045a85080157f268d03836b2a" + "sha512": "1a40297000fe3fe40cd489889217898f3b0c77288cdfbe37e57614557c34c1853139a4a4d2ff7bd91f36a63d41e309e686a3282824db3b0d5e5d0a48aaf8ef22" }, { "path": "dist/lib/schema/types.js.map", @@ -326,7 +318,7 @@ }, { "path": "dist/types/errors.d.ts", - "sha512": "4497673e64de3e5512ed17f5731088d7a75ad5c7bfdd0cd027abe126df3825cf8a1ff482726ec42cff2c39adaebc173c0f9dc8a289ca6479141703b6de283cfd" + "sha512": "2f110a57eccfcb8ddfb71bb58b92036fc5cc8f3683c20cbf5eebe506afad63eea947be615e55821558a25f9c7cc1357a36c7244c3053388b3bcac3d14b6e44a4" }, { "path": "dist/types/tokens/comparable/int.d.ts", @@ -382,7 +374,7 @@ }, { "path": "dist/types/tokens/pair.d.ts", - "sha512": "12425b1bc3af53283e221c91be1eb55ee6c2dd05fde8252537c9902854134f49a4cf26d12e3aaf72e00295333d7c793f28468e5bf9d19a58ebe2520dc3569be0" + "sha512": "63d06f0aab4562ae54bf77003388287618b725526a1e3016cee241e980f28711a32430bfd17ae4373a056a05163709aee949a78b938758c17ee8304ca143810e" }, { "path": "dist/types/schema/parameter.d.ts", @@ -398,7 +390,7 @@ }, { "path": "dist/types/schema/storage.d.ts", - "sha512": "33c1f9c61a947b0be45cef7c5e619c940de064d39f51abd8a1aff5ae5bb06780e4fbf58fd5e54d2cf363e5370a992ec13a1769b2e35c0db3f40099ca42373cd5" + "sha512": "d05cf743fa2af12650cae5924d0b14eb600f53690c312f532990025bce8d3bc2a821336c509a446e6662058ea2bf3547884e8139940f9ef6cdd8ac67a8e831c6" }, { "path": "dist/types/tokens/comparable/string.d.ts", @@ -406,11 +398,7 @@ }, { "path": "dist/types/taquito-michelson-encoder.d.ts", - "sha512": "4518f81af8f5b1b8c9b6af28122f59fd5573e7a1cd852c49e08b370798f0fbcecc7926e189e43742de900a4e10bbf78e01af7f9914a3fbc436835914f7e44b12" - }, - { - "path": "dist/types/tokens/ticket.d.ts", - "sha512": "794ec0f2f80cd3c5019f7c37e26dabae468ffa94d9401b24fe6fd539f87c1a9442a386f50dbe976174ef302dfdf15c10344a06688eed1a6ae251ac592e86a509" + "sha512": "af7ecece379fae7b5cd280898f988dc8f40f732db5093717d81d6c15009747069d3d24388c2ac67ab4a79cb052e4c43c66d820845ac808b380f699a442935b38" }, { "path": "dist/types/tokens/comparable/timestamp.d.ts", @@ -418,11 +406,11 @@ }, { "path": "dist/types/tokens/token.d.ts", - "sha512": "d57021005268e30c6e4d284196551e7c98037df19755300ad9cd7381c315adb0be4d73ae4fd7b294b847bded9cd557ec3f1b1ec52ff26a75a57032db0a71cfda" + "sha512": "cadeb6b6e672b637125214160326eb9e346bcc0e47cfefe20c810f08717d82bba3866c1486d42bbafe5bf92567a280c8143e78e8d5f9e5209896c454ccd940cd" }, { "path": "dist/types/tokens/tokens.d.ts", - "sha512": "d6c2b9de0806af4180c3f900a22185b7bbb0c5919a99fbf7af84449182d746b6b3d9c409a7b7bd4fc37d12d5c8e41eadb4e9eda15401cef21bf18a73f83f6119" + "sha512": "1af0e95bec78dd9d58f796aa2602a77976249b2ca3dc63113f3201b0343193f7d7398b2edf7ee7110c4018a8247e30d93e2fc27414fd0aac7826e80bf16109f6" }, { "path": "dist/types/schema/types.d.ts", @@ -467,7 +455,7 @@ "typings", "version" ], - "sha512": "87ffad5be5b64528c5e614e238ef4ab23b0b7c1809a88506b10bb0337ee6596698f238956f6b7afb47fa6cd7e35bb3ca4d2f2bd3553f2a9eb4e8cfe3b62a98b4" + "sha512": "72023aefe2682a3ed99ed6b0fc071df9459d559c74edf34613f93cd8516ed3b58fc9436b2f54987e2fccb7c62232e1883a1643a3e630d5dc88d0f81373b312e4" } }, { @@ -475,7 +463,7 @@ "value": { "packageJson": { "name": "@taquito/michelson-encoder", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "converts michelson data and types into convenient JS/TS objects", "keywords": [ "tezos", @@ -542,20 +530,20 @@ ] }, "dependencies": { - "@taquito/rpc": "^8.0.4-beta.0", - "@taquito/utils": "^8.0.4-beta.0", + "@taquito/rpc": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1", "fast-json-stable-stringify": "^2.1.0" }, "devDependencies": { - "@taquito/rpc": "^7.1.0-beta.0", - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", + "@taquito/rpc": "^6.4.0-ledger.0", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -567,18 +555,18 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.23", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UDCRAD9Qy5GYHsngAAGsUQAHGWv1f7JxIC7GAeaXrlBwwy\nFpFewlmG7EFySZtQ7bgS1zL936uD7XOMcJfWi6R7kDSX6uViaRWBhO983IyU73oX\nS+zR377riIBuVw/FM+HS+9nD9CkN6Z8Ztd43k8NsbSIlruP2Uztip8VmXHgXwqEK\nidKD7voEpQ7lfHIibgHlyNKJMTrsHKWmXVLTecDbSLQmSzjMfMpaVlThOfihKe3P\nAofrFdW1lblip2KOamk1ayRFVIg7ZOFaKEDzyJnbEL1tX3uBHieD6B+GIjtvoucH\nrb6fg3ugGuVtDKZlqTpRjU8mwyVOTgQCmHSFp5uw2U3Nayih57q7/00x9WGsCqzg\ndtADEP+Lj4GIJgsnx+9k2TVrxd9c7heHOY7AJEfALRAdXAR0+Nr0SmjKkS20Syet\nJe3ZrznKt4k1m+HB4ATZvQ/wLKpIFoJIVOd0lfWyrsrX4sEmFS2L7lGeI2TmLuw9\nH5KlcHLMNiKh21ldBpsE68eZehXrf1vBdCZPza5YgthfFvxWZ0/zGLY9x/XdG0f7\nq1ofSqCa+Pwdp+JMtHueeXu83IG2eD1GK7/HqsYq3O4lbpEodeDppJr+W0/yFbnH\nMU9gch6kNTgZWzM42FFMSj6Fr3IZDzknKF3q+RP3BP5ZTqtoWbnbcMusW2seYNG4\nw3Xr/KEsCw+V1rGkOQ4a\n=P1Np\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSqCRAD9Qy5GYHsngAA0fkQAJg/V2pYZzntl8X3z+Xc+I0E\nnfpF98NKfW6UJpodvjzh/0A91M6Axf2taOX3VXQ8BOiBA8cfS5VHK86IRsbt97Sv\nh5nRM+dhzxsvGphAiFbN+exLg6dZn/XtyTl40wMVVKKKuqcV6vROXaqoa0d22qlu\nQp7mRTdWo7U9XgtxHTun0Xntp4P6CslIOvH8nm4L1i9TpmH6xl+p5qdOAqff+eOY\nmd2C4SUxTzbAMCPjILT3LOfs6JxVajGybTmF7UZasoQO8PN3zxDqndW55ZT0o1OW\nIStPPmpou+kvyhynf/r7IIjUpAC1DOOBX1N9xFRaTsp7N1KVJrviTD+w5PqdJfQC\nfKJvgP1/bV2UzusaeswCc5kXoJCifAVBW39DZ+DM0Nq5NHl9pWl/TCiWwhh2TKBy\nqTgBoisN+V4x7MPLnLjshBQivPrGGhGQqcGLejUXvzAoTSkVr047afxFgFuLPbRh\nZ5aKWdMH22in1njciFMuq5VwBK2i9o2Hbv+HqEmFpfvZlbcMFu668JIiPoJUrN84\nRdpWqY2PW7GSnbi1zEqdRITdEMNZO+V9gX4SDLO6Kas9BkP6xz/3fjGObBlmZCa4\nYj7z8DqMTgnEusqOFP1IlE8vNCXgwwfzyBA8L6jNphpM6P6PWNZMr3Lo59WgF/IA\nvF9kdDU1tUdAzqKrr+l+\n=qrJq\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-michelson-encoder/src/errors.ts b/packages/taquito-michelson-encoder/src/errors.ts index 996be98f49..907a09c58b 100644 --- a/packages/taquito-michelson-encoder/src/errors.ts +++ b/packages/taquito-michelson-encoder/src/errors.ts @@ -14,5 +14,3 @@ export { IntValidationError } from './tokens/comparable/int'; export { KeyHashValidationError } from './tokens/comparable/key_hash'; export { MutezValidationError } from './tokens/comparable/mutez'; export { NatValidationError } from './tokens/comparable/nat'; - -export { EncodeTicketError } from './tokens/ticket'; \ No newline at end of file diff --git a/packages/taquito-michelson-encoder/src/schema/storage.ts b/packages/taquito-michelson-encoder/src/schema/storage.ts index b0967c5f36..c5b5682495 100644 --- a/packages/taquito-michelson-encoder/src/schema/storage.ts +++ b/packages/taquito-michelson-encoder/src/schema/storage.ts @@ -3,46 +3,12 @@ import { BigMapToken } from '../tokens/bigmap'; import { createToken } from '../tokens/createToken'; import { OrToken } from '../tokens/or'; import { PairToken } from '../tokens/pair'; -import { BigMapKeyType, Semantic, Token, TokenValidationError } from '../tokens/token'; +import { Semantic, Token, TokenValidationError } from '../tokens/token'; import { RpcTransaction } from './model'; import { Falsy } from './types'; const schemaTypeSymbol = Symbol.for('taquito-schema-type-symbol'); -// collapse comb pair -function collapse(val: Token['val'] | any[], prim: string = PairToken.prim): Token['val'] { - if (Array.isArray(val)) { - return collapse({ - prim: prim, - args: val, - }, prim); - } - if (val.prim === prim && val.args?.length! > 2) { - return { - ...val, - args: [val.args![0], { - prim: prim, - args: val.args?.slice(1), - }], - }; - } - return val; -} - -function deepEqual(a: Token['val'] | any[], b: Token['val'] | any[]): boolean { - const ac = collapse(a); - const bc = collapse(b); - return ac.prim === bc.prim && - (ac.args === undefined && bc.args === undefined || - ac.args !== undefined && bc.args !== undefined && - ac.args.length === bc.args.length && - ac.args.every((v, i) => deepEqual(v, bc.args?.[i]))) && - (ac.annots === undefined && bc.annots === undefined || - ac.annots !== undefined && bc.annots !== undefined && - ac.annots.length === bc.annots.length && - ac.annots.every((v, i) => v === bc.annots?.[i])); -} - /** * @warn Our current smart contract abstraction feature is currently in preview. It's API is not final, and it may not cover every use case (yet). We will greatly appreciate any feedback on this feature. */ @@ -139,7 +105,7 @@ export class Schema { return this.bigMap.ValueSchema.Execute(key, semantics); } - EncodeBigMapKey(key: BigMapKeyType) { + EncodeBigMapKey(key: string) { if (!this.bigMap) { throw new Error('No big map schema'); } @@ -187,32 +153,4 @@ export class Schema { [this.bigMap.annot()]: bigMap, }; } - - /** - * @description Look up in top-level pairs of the storage to find a value matching the specified type - * - * @returns The first value found that match the type or `undefined` if no value is found - * - * @param storage storage to parse to find the value - * @param valueType type of value to look for - * - */ - FindFirstInTopLevelPair<T extends MichelsonV1Expression>(storage: any, valueType: any) { - return this.findValue(this.root['val'], storage, valueType) as T | undefined; - } - - private findValue(schema: Token['val'] | any[], storage: any, valueToFind: any): any { - if (deepEqual(valueToFind, schema)) { - return storage; - } - if (Array.isArray(schema) || schema['prim'] === 'pair') { - const sch = collapse(schema); - const str = collapse(storage, 'Pair'); - if (sch.args === undefined || str.args === undefined) { - throw new Error('Tokens have no arguments'); // unlikely - } - return this.findValue(sch.args[0], str.args[0], valueToFind) || - this.findValue(sch.args[1], str.args[1], valueToFind); - } - } } diff --git a/packages/taquito-michelson-encoder/src/taquito-michelson-encoder.ts b/packages/taquito-michelson-encoder/src/taquito-michelson-encoder.ts index ec24631830..cca8e6b11c 100644 --- a/packages/taquito-michelson-encoder/src/taquito-michelson-encoder.ts +++ b/packages/taquito-michelson-encoder/src/taquito-michelson-encoder.ts @@ -1,13 +1,7 @@ -/** - * @packageDocumentation - * @module @taquito/michelson-encoder - */ - export * from './schema/storage'; export * from './schema/parameter'; -export { Semantic, BigMapKeyType } from './tokens/token'; +export { Semantic } from './tokens/token'; export * from './errors'; export const UnitValue = Symbol(); export * from './michelson-map'; -export { VERSION } from './version'; diff --git a/packages/taquito-michelson-encoder/src/tokens/comparable/int.ts b/packages/taquito-michelson-encoder/src/tokens/comparable/int.ts index 96e29e64b1..f1f3cb96f7 100644 --- a/packages/taquito-michelson-encoder/src/tokens/comparable/int.ts +++ b/packages/taquito-michelson-encoder/src/tokens/comparable/int.ts @@ -44,7 +44,7 @@ export class IntToken extends ComparableToken { throw err; } - return { int: new BigNumber(val).toFixed() }; + return { int: String(val).toString() }; } public EncodeObject(val: any): any { @@ -53,12 +53,12 @@ export class IntToken extends ComparableToken { throw err; } - return { int: new BigNumber(val).toFixed() }; + return { int: String(val).toString() }; } - public ToBigMapKey(val: string | number) { + public ToBigMapKey(val: string) { return { - key: { int: String(val) }, + key: { int: val }, type: { prim: IntToken.prim }, }; } @@ -66,14 +66,4 @@ export class IntToken extends ComparableToken { public ToKey({ int }: any) { return int; } - - compare(int1: string | number, int2: string | number) { - const o1 = Number(int1); - const o2 = Number(int2); - if (o1 === o2) { - return 0; - } - - return o1 < o2 ? -1 : 1; - } } diff --git a/packages/taquito-michelson-encoder/src/tokens/comparable/mutez.ts b/packages/taquito-michelson-encoder/src/tokens/comparable/mutez.ts index ad14ac4bfc..7383450b90 100644 --- a/packages/taquito-michelson-encoder/src/tokens/comparable/mutez.ts +++ b/packages/taquito-michelson-encoder/src/tokens/comparable/mutez.ts @@ -56,9 +56,9 @@ export class MutezToken extends ComparableToken { return { int: String(val).toString() }; } - public ToBigMapKey(val: string | number) { + public ToBigMapKey(val: string) { return { - key: { int: String(val) }, + key: { int: val }, type: { prim: MutezToken.prim }, }; } @@ -66,14 +66,4 @@ export class MutezToken extends ComparableToken { public ToKey({ int }: any) { return int; } - - compare(mutez1: string | number, mutez2: string | number) { - const o1 = Number(mutez1); - const o2 = Number(mutez2); - if (o1 === o2) { - return 0; - } - - return o1 < o2 ? -1 : 1; - } } diff --git a/packages/taquito-michelson-encoder/src/tokens/comparable/nat.ts b/packages/taquito-michelson-encoder/src/tokens/comparable/nat.ts index 6d2808bd8e..2a656ee0e7 100644 --- a/packages/taquito-michelson-encoder/src/tokens/comparable/nat.ts +++ b/packages/taquito-michelson-encoder/src/tokens/comparable/nat.ts @@ -31,7 +31,7 @@ export class NatToken extends ComparableToken { throw err; } - return { int: new BigNumber(val).toFixed() }; + return { int: String(val).toString() }; } private isValid(val: any): NatValidationError | null { @@ -51,16 +51,16 @@ export class NatToken extends ComparableToken { throw err; } - return { int: new BigNumber(val).toFixed() }; + return { int: String(val).toString() }; } public ExtractSchema() { return NatToken.prim; } - public ToBigMapKey(val: string | number) { + public ToBigMapKey(val: string) { return { - key: { int: String(val) }, + key: { int: val }, type: { prim: NatToken.prim }, }; } @@ -68,14 +68,4 @@ export class NatToken extends ComparableToken { public ToKey({ int }: any) { return int; } - - compare(nat1: string | number, nat2: string | number) { - const o1 = Number(nat1); - const o2 = Number(nat2); - if (o1 === o2) { - return 0; - } - - return o1 < o2 ? -1 : 1; - } } diff --git a/packages/taquito-michelson-encoder/src/tokens/createToken.ts b/packages/taquito-michelson-encoder/src/tokens/createToken.ts index bda7eba76c..d211655e5f 100644 --- a/packages/taquito-michelson-encoder/src/tokens/createToken.ts +++ b/packages/taquito-michelson-encoder/src/tokens/createToken.ts @@ -1,17 +1,12 @@ import { tokens } from './tokens'; import { Token } from './token'; -import { PairToken } from './pair'; export class InvalidTokenError implements Error { name: string = 'Invalid token error'; - constructor(public message: string, public data: any) { } + constructor(public message: string, public data: any) {} } export function createToken(val: any, idx: number): Token { - if (Array.isArray(val)) { - return new PairToken(val, idx, createToken); - } - const t = tokens.find(x => x.prim === val.prim); if (!t) { throw new InvalidTokenError('Malformed data expected a value with a valid prim property', val); diff --git a/packages/taquito-michelson-encoder/src/tokens/lambda.ts b/packages/taquito-michelson-encoder/src/tokens/lambda.ts index 37eb56066a..5bdf53cfb5 100644 --- a/packages/taquito-michelson-encoder/src/tokens/lambda.ts +++ b/packages/taquito-michelson-encoder/src/tokens/lambda.ts @@ -11,12 +11,8 @@ export class LambdaToken extends Token { super(val, idx, fac); } - public Execute(val: any) { - if (val.string) { - return val.string; - } else { - return val; - } + public Execute(val: any): { [key: string]: any } { + return val.string; } public Encode(args: any[]): any { diff --git a/packages/taquito-michelson-encoder/src/tokens/never.ts b/packages/taquito-michelson-encoder/src/tokens/never.ts deleted file mode 100644 index 513da6128f..0000000000 --- a/packages/taquito-michelson-encoder/src/tokens/never.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Token, TokenFactory, TokenValidationError } from './token'; - -export class NeverTokenError extends TokenValidationError { - name: string = 'NeverTokenError'; - constructor(public value: any, public token: NeverToken, message: string) { - super(value, token, message); - } - } - -export class NeverToken extends Token { - static prim = 'never'; - constructor( - protected val: { prim: string; args: any[]; annots: any[] }, - protected idx: number, - protected fac: TokenFactory - ) { - super(val, idx, fac); - } - public Encode(args: any[]): any { - const val = args.pop(); - throw new NeverTokenError(val, this, 'Assigning a value to the type never is forbidden.'); - } - public EncodeObject(val: any): any { - throw new NeverTokenError(val, this, 'Assigning a value to the type never is forbidden.'); - } - public Execute(val: any) { - throw new NeverTokenError(val, this, 'There is no literal value for the type never.'); - } - public ExtractSchema() { - return NeverToken.prim; - } -} \ No newline at end of file diff --git a/packages/taquito-michelson-encoder/src/tokens/pair.ts b/packages/taquito-michelson-encoder/src/tokens/pair.ts index e76e83e2b3..3b2fac7af0 100644 --- a/packages/taquito-michelson-encoder/src/tokens/pair.ts +++ b/packages/taquito-michelson-encoder/src/tokens/pair.ts @@ -1,73 +1,40 @@ import { Token, TokenFactory, Semantic, ComparableToken } from './token'; import { OrToken } from './or'; -// collapse comb pair -function collapse(val: Token['val'] | any[], prim: string = PairToken.prim): [any, any] { - if (Array.isArray(val)) { - return collapse({ - prim: prim, - args: val, - }, prim); - } - if (val.args === undefined) { - throw new Error('Token has no arguments'); - } - if (val.args.length > 2) { - return [val.args[0], { - prim: prim, - args: val.args.slice(1), - }]; - } - return [val.args[0], val.args[1]]; -} export class PairToken extends ComparableToken { static prim = 'pair'; constructor( - val: { prim: string; args: any[]; annots: any[] } | any[], - idx: number, - fac: TokenFactory + protected val: { prim: string; args: any[]; annots: any[] }, + protected idx: number, + protected fac: TokenFactory ) { - super(Array.isArray(val) ? { - prim: PairToken.prim, - args: val, - } : val, idx, fac); + super(val, idx, fac); } - private args(): [any, any] { - // collapse comb pair - return collapse(this.val); - } + public Encode(args: any[]): any { + const leftToken = this.createToken(this.val.args[0], this.idx); + let keyCount = 1; + if (leftToken instanceof PairToken) { + keyCount = Object.keys(leftToken.ExtractSchema()).length; + } - private tokens(): [Token, Token] { - let cnt = 0; - return this.args().map(a => { - const tok = this.createToken(a, this.idx + cnt); - if (tok instanceof PairToken) { - cnt += Object.keys(tok.ExtractSchema()).length; - } else { - cnt++; - } - return tok; - }) as [Token, Token]; - } + const rightToken = this.createToken(this.val.args[1], this.idx + keyCount); - public Encode(args: any[]): any { return { prim: 'Pair', - args: this.tokens().map(t => t.Encode(args)), + args: [leftToken.Encode(args), rightToken.Encode(args)], }; } public ExtractSignature(): any { - const args = this.args(); - const leftToken = this.createToken(args[0], this.idx); + const leftToken = this.createToken(this.val.args[0], this.idx); let keyCount = 1; if (leftToken instanceof OrToken) { keyCount = Object.keys(leftToken.ExtractSchema()).length; } - const rightToken = this.createToken(args[1], this.idx + keyCount); + const rightToken = this.createToken(this.val.args[1], this.idx + keyCount); const newSig = []; @@ -92,7 +59,13 @@ export class PairToken extends ComparableToken { } public EncodeObject(args: any): any { - const [leftToken, rightToken] = this.tokens(); + const leftToken = this.createToken(this.val.args[0], this.idx); + let keyCount = 1; + if (leftToken instanceof PairToken) { + keyCount = Object.keys(leftToken.ExtractSchema()).length; + } + + const rightToken = this.createToken(this.val.args[1], this.idx + keyCount); let leftValue; if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) { @@ -115,9 +88,7 @@ export class PairToken extends ComparableToken { } private traversal(getLeftValue: (token: Token) => any, getRightValue: (token: Token) => any) { - const args = this.args(); - - const leftToken = this.createToken(args[0], this.idx); + const leftToken = this.createToken(this.val.args[0], this.idx); let keyCount = 1; let leftValue; if (leftToken instanceof PairToken && !leftToken.hasAnnotations()) { @@ -127,7 +98,7 @@ export class PairToken extends ComparableToken { leftValue = { [leftToken.annot()]: getLeftValue(leftToken) }; } - const rightToken = this.createToken(args[1], this.idx + keyCount); + const rightToken = this.createToken(this.val.args[1], this.idx + keyCount); let rightValue; if (rightToken instanceof PairToken && !rightToken.hasAnnotations()) { rightValue = getRightValue(rightToken); @@ -144,10 +115,9 @@ export class PairToken extends ComparableToken { } public Execute(val: any, semantics?: Semantic): { [key: string]: any } { - const args = collapse(val, 'Pair'); return this.traversal( - leftToken => leftToken.Execute(args[0], semantics), - rightToken => rightToken.Execute(args[1], semantics) + leftToken => leftToken.Execute(val.args[0], semantics), + rightToken => rightToken.Execute(val.args[1], semantics) ); } @@ -159,7 +129,13 @@ export class PairToken extends ComparableToken { } public compare(val1: any, val2: any) { - const [leftToken, rightToken] = this.tokens(); + const leftToken = this.createToken(this.val.args[0], this.idx); + let keyCount = 1; + if (leftToken instanceof PairToken) { + keyCount = Object.keys(leftToken.ExtractSchema()).length; + } + + const rightToken = this.createToken(this.val.args[1], this.idx + keyCount); const getValue = (token: Token, args: any) => { if (token instanceof PairToken && !token.hasAnnotations()) { diff --git a/packages/taquito-michelson-encoder/src/tokens/ticket.ts b/packages/taquito-michelson-encoder/src/tokens/ticket.ts deleted file mode 100644 index efef8c4683..0000000000 --- a/packages/taquito-michelson-encoder/src/tokens/ticket.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { IntToken } from './comparable/int'; -import { ContractToken } from './contract'; -import { Token, TokenFactory, Semantic } from './token'; - -export class EncodeTicketError implements Error { - name = 'TicketEncodeError'; - message = 'Tickets cannot be sent to the blockchain; they are created on-chain'; -} - -const ticketerType = { "prim": "contract" }; -const amountType = { "prim": "int" }; - -export class TicketToken extends Token { - static prim = 'ticket'; - - constructor( - protected val: { prim: string; args: any[]; annots: any[] }, - protected idx: number, - protected fac: TokenFactory - ) { - super(val, idx, fac); - } - - public Encode(_args: any[]): any { - throw new EncodeTicketError() - } - - public EncodeObject(_args: any): any { - throw new EncodeTicketError() - } - - public Execute(val: any, semantics?: Semantic) { - if (semantics && semantics[TicketToken.prim]) { - return semantics[TicketToken.prim](val, this.val); - } - const ticketer = this.createToken(ticketerType, this.idx); - const value = this.createToken(this.val.args[0], this.idx); - const amount = this.createToken(amountType, this.idx); - return { - ticketer: ticketer.Execute(val.args[0], semantics), - value: value.Execute(val.args[1], semantics), - amount: amount.Execute(val.args[2], semantics) - } - } - - public ExtractSchema() { - const valueSchema = this.createToken(this.val.args[0], this.idx); - return { - ticketer: ContractToken.prim, - value: valueSchema.ExtractSchema(), - amount: IntToken.prim - } - } -} diff --git a/packages/taquito-michelson-encoder/src/tokens/token.ts b/packages/taquito-michelson-encoder/src/tokens/token.ts index 96b814ceb1..9e059e7d8d 100644 --- a/packages/taquito-michelson-encoder/src/tokens/token.ts +++ b/packages/taquito-michelson-encoder/src/tokens/token.ts @@ -1,4 +1,5 @@ import { MichelsonV1Expression } from '@taquito/rpc'; +import { MichelsonMapKey } from '../michelson-map'; export abstract class TokenValidationError implements Error { name: string = 'ValidationError'; @@ -19,13 +20,17 @@ export interface Semantic { export abstract class Token { constructor( - protected val: { prim: string; args?: any[]; annots?: any[] }, + protected val: { prim: string; args: any[]; annots?: any[] }, protected idx: number, protected fac: TokenFactory - ) { } + ) {} protected typeWithoutAnnotations() { - const removeArgsRec = (val: Token['val']): { prim: string; args?: any[] } => { + const removeArgsRec = (val: { + prim: string; + args: any[]; + annots?: any[]; + }): { prim: string; args?: any[] } => { if (val.args) { return { prim: val.prim, @@ -67,14 +72,12 @@ export abstract class Token { } } -export type BigMapKeyType = string | number | object; - export abstract class ComparableToken extends Token { abstract ToBigMapKey( - val: BigMapKeyType + val: string ): { - key: { [key: string]: string | object[] }; - type: { prim: string, args?: object[] }; + key: { [key: string]: string }; + type: { prim: string }; }; abstract ToKey(val: string): any; diff --git a/packages/taquito-michelson-encoder/src/tokens/tokens.ts b/packages/taquito-michelson-encoder/src/tokens/tokens.ts index 558621d52f..7fc215e68c 100644 --- a/packages/taquito-michelson-encoder/src/tokens/tokens.ts +++ b/packages/taquito-michelson-encoder/src/tokens/tokens.ts @@ -30,8 +30,6 @@ import { LambdaToken } from './lambda'; import { OperationToken } from './operation'; import { SetToken } from './set'; import { ChainIDToken } from './chain-id'; -import { TicketToken } from './ticket'; -import { NeverToken } from './never'; export const tokens = [ PairToken, @@ -57,6 +55,4 @@ export const tokens = [ OperationToken, SetToken, ChainIDToken, - TicketToken, - NeverToken ]; diff --git a/packages/taquito-michelson-encoder/src/version.ts b/packages/taquito-michelson-encoder/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-michelson-encoder/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-michelson-encoder/test/sample1.spec.ts b/packages/taquito-michelson-encoder/test/sample1.spec.ts index 2b9f20e6fe..0db9720579 100644 --- a/packages/taquito-michelson-encoder/test/sample1.spec.ts +++ b/packages/taquito-michelson-encoder/test/sample1.spec.ts @@ -197,12 +197,4 @@ describe('Schema test', () => { }, }); }); - - it(`Should find the value that corresponds to the type ({ prim: 'string', annots: ['%name'] }) in top-level pairs of the storage`, () => { - const typeOfValueToFind = { prim: 'string', annots: ['%name'] }; - const storageSchema = new Schema(storage); - const valueFound = storageSchema.FindFirstInTopLevelPair(rpcContractResponse.script.storage, typeOfValueToFind); - expect(valueFound).toEqual({ string: 'Token B' }); - }); - }); diff --git a/packages/taquito-michelson-encoder/test/sample17.spec.ts b/packages/taquito-michelson-encoder/test/sample17.spec.ts deleted file mode 100644 index 3729d52fff..0000000000 --- a/packages/taquito-michelson-encoder/test/sample17.spec.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { script17, storage17 } from '../data/sample17'; -import { Schema } from '../src/schema/storage'; - -describe('Schema.FindFirstInTopLevelPair test', () => { - it(`Should find the first occurrence of a specified type in top-level pairs of the storage`, () => { - const typeOfValueToFind = { - prim: 'map', - args: [ - { prim: 'nat' }, - { - prim: 'pair', - args: [{ prim: 'nat', annots: ['%current_stock'] }, { prim: 'mutez', annots: ['%max_price'] }] - } - ], - annots: ['%taco_shop_storage'] - }; - const storageSchema = new Schema(storage17); - const valueFound = storageSchema.FindFirstInTopLevelPair(script17.script.storage, typeOfValueToFind); - expect(valueFound).toEqual([ - { - prim: 'Elt', - args: [ - { - int: '1' - }, - { - prim: 'Pair', - args: [ - { - int: '10000' - }, - { - int: '50' - } - ] - } - ] - } - ]); - }); - - it(`Should find the first occurrence of a specified type in top-level pairs of the storage`, () => { - const typeOfValueToFind = { - prim: 'big_map', - args: [{ prim: 'string' }, { prim: 'bytes' }], - annots: ['%metadata'] - }; - const storageSchema = new Schema(storage17); - const valueFound = storageSchema.FindFirstInTopLevelPair(script17.script.storage, typeOfValueToFind); - expect(valueFound).toEqual({ - int: '20350' - }); - }); - - it(`Should return undefined when no value matches the specified type in top-level pairs of the storage`, () => { - const typeOfValueToFind = { - prim: 'big_map', - args: [{ prim: 'string' }, { prim: 'bytes' }], - annots: ['%invalidTest'] - }; - const storageSchema = new Schema(storage17); - const valueFound = storageSchema.FindFirstInTopLevelPair(script17.script.storage, typeOfValueToFind); - expect(valueFound).toBeUndefined(); - }); -}); diff --git a/packages/taquito-michelson-encoder/test/sample18_nat_ticket.spec.ts b/packages/taquito-michelson-encoder/test/sample18_nat_ticket.spec.ts deleted file mode 100644 index 4d4a055c51..0000000000 --- a/packages/taquito-michelson-encoder/test/sample18_nat_ticket.spec.ts +++ /dev/null @@ -1,56 +0,0 @@ -import BigNumber from 'bignumber.js'; -import { bigMapValue, rpcContractResponse, storage } from '../data/sample18_ticket'; -import { Schema } from '../src/schema/storage'; - -describe('Schema with a ticket of type nat inside a big map %tickets in storage', () => { - // key of the big map is nat and value is ticket of type nat - it('Should decode storage properly', () => { - const schema = new Schema(storage); - expect(schema.Execute(rpcContractResponse.script.storage)).toEqual({ - admin: 'tz1bwfmSYqrhUTAoybGdhWBBefsbuhNdcC2Y', - current_id: new BigNumber(2), - tickets: '142', - token_metadata: '143' - }); - }); - - it('Should extract schema properly', () => { - const schema = new Schema(storage); - expect(schema.ExtractSchema()).toEqual({ - admin: 'address', - current_id: 'nat', - tickets: { - nat: { - amount: 'int', - ticketer: 'contract', - value: 'nat' - } - }, - token_metadata: { - nat: { - '0': 'nat', - '1': { - map: { - key: 'string', - value: 'bytes' - } - } - } - } - }); - }); - - it('Should parse big map value properly', () => { - const schema = new Schema({ - prim: 'big_map', - args: [{ prim: 'nat' }, { prim: 'ticket', args: [{ prim: 'nat' }] }], - annots: ['%tickets'] - }); - const value = schema.ExecuteOnBigMapValue(bigMapValue); - expect(value).toEqual({ - ticketer: 'KT1EAMUQC1yJ2sRPNPpLHVMGCzroYGe1C1ea', - value: new BigNumber('0'), - amount: new BigNumber('1') - }); - }); -}); diff --git a/packages/taquito-michelson-encoder/test/sample19_timestamp_ticket.spec.ts b/packages/taquito-michelson-encoder/test/sample19_timestamp_ticket.spec.ts deleted file mode 100644 index a5dd77f8bc..0000000000 --- a/packages/taquito-michelson-encoder/test/sample19_timestamp_ticket.spec.ts +++ /dev/null @@ -1,84 +0,0 @@ -import BigNumber from 'bignumber.js'; -import { bigMapValue, rpcContractResponse, storage } from '../data/sample19_timestamp_ticket'; -import { Schema } from '../src/schema/storage'; -import { expectMichelsonMap } from './utils'; - -describe('Schema with a ticket of type timestamp inside a big map %tickets in storage', () => { - // key of the big map is address and value is ticket of type timestamp - it('Should decode storage properly', () => { - const schema = new Schema(storage); - expect(schema.Execute(rpcContractResponse.script.storage)).toEqual({ - data: { - winners: '24059', - bets: expectMichelsonMap(), - current_pot: new BigNumber('0'), - opened_at: '2019-09-09T12:09:37.000Z', - settings: { - pool_type: 'XTZ-USD', - entrance_fee: new BigNumber('2'), - minimum_bet: new BigNumber('2'), - open_period: new BigNumber('86400'), - validation_delay: new BigNumber('86400'), - ticket_validity: new BigNumber('2592000'), - max_capacity: new BigNumber(9) - }, - validator: null, - pending_validation: false, - oracle: 'tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb', - admin: 'tz1VSUr8wwNhLAzempoch5d6hLRiTh8Cjcjb' - }, - tickets: '24060' - }); - }); - - it('Should extract schema properly', () => { - const schema = new Schema(storage); - expect(schema.ExtractSchema()).toEqual({ - data: { - winners: { address: 'mutez' }, - bets: { - map: { - key: 'address', - value: 'nat' - } - }, - current_pot: 'mutez', - opened_at: 'timestamp', - settings: { - pool_type: 'string', - entrance_fee: 'mutez', - minimum_bet: 'mutez', - open_period: 'int', - validation_delay: 'int', - ticket_validity: 'int', - max_capacity: 'nat' - }, - validator: 'address', - pending_validation: 'bool', - oracle: 'address', - admin: 'address' - }, - tickets: { - address: { - amount: 'int', - ticketer: 'contract', - value: 'timestamp' - } - } - }); - }); - - it('Should parse big map value properly', () => { - const schema = new Schema({ - prim: 'big_map', - args: [{ prim: 'address' }, { prim: 'ticket', args: [{ prim: 'timestamp' }] }], - annots: ['%tickets'] - }); - const value = schema.ExecuteOnBigMapValue(bigMapValue); - expect(value).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: '2021-03-09T16:32:15.000Z', - amount: new BigNumber('2') - }); - }); -}); diff --git a/packages/taquito-michelson-encoder/test/tokens/int.spec.ts b/packages/taquito-michelson-encoder/test/tokens/int.spec.ts index 02999eae6a..d087324c41 100644 --- a/packages/taquito-michelson-encoder/test/tokens/int.spec.ts +++ b/packages/taquito-michelson-encoder/test/tokens/int.spec.ts @@ -10,7 +10,6 @@ describe('Int token', () => { it('Should encode number to string', () => { expect(token.EncodeObject(0)).toEqual({ int: '0' }); expect(token.EncodeObject(1000)).toEqual({ int: '1000' }); - expect(token.EncodeObject(2000000000000000000000000000000000000000000000000000000)).toEqual({ int: '2000000000000000000000000000000000000000000000000000000' }); }); it('Should throw a validation error when value is not a number', () => { @@ -24,7 +23,6 @@ describe('Int token', () => { it('Should encode number to string', () => { expect(token.Encode([0])).toEqual({ int: '0' }); expect(token.Encode([1000])).toEqual({ int: '1000' }); - expect(token.Encode([2000000000000000000000000000000000000000000000000000000])).toEqual({ int: '2000000000000000000000000000000000000000000000000000000' }); }); it('Should throw a validation error when value is not a number', () => { @@ -33,19 +31,4 @@ describe('Int token', () => { expect(() => token.Encode([{}])).toThrowError(IntValidationError); }); }); - - describe('ToBigMapKey', () => { - it('accepts a number as parameter', () => { - expect(token.ToBigMapKey(0)).toEqual({ - key: { int: '0' }, - type: { prim: IntToken.prim }, - }); - }); - it('accepts a string as parameter', () => { - expect(token.ToBigMapKey('0')).toEqual({ - key: { int: '0' }, - type: { prim: IntToken.prim }, - }); - }); - }); }); diff --git a/packages/taquito-michelson-encoder/test/tokens/lambda.spec.ts b/packages/taquito-michelson-encoder/test/tokens/lambda.spec.ts deleted file mode 100644 index afa923abf4..0000000000 --- a/packages/taquito-michelson-encoder/test/tokens/lambda.spec.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { ParameterSchema } from '../../src/taquito-michelson-encoder'; -import { createToken } from '../../src/tokens/createToken'; -import { LambdaToken } from '../../src/tokens/lambda'; - -describe('Lambda token', () => { - let token1: LambdaToken; - beforeEach(() => { - token1 = createToken( - { - prim: 'lambda', - args: [{ prim: 'unit' }, { prim: 'list', args: [{ prim: 'operation' }] }], - annots: ['%proposalLambda'] - }, - 0 - ) as LambdaToken; - }); - - it('Should extract schema properly', () => { - const schema = new ParameterSchema({ - prim: 'lambda', - args: [{ prim: 'unit' }, { prim: 'list', args: [{ prim: 'operation' }] }], - annots: ['%proposalLambda'] - }); - const result = schema.ExtractSchema(); - expect(result).toEqual({ - lambda: { - parameters: 'unit', - returns: 'list' - } - }); - }); - - it('Should directly return the code of the lambda', () => { - expect( - token1.Execute([ - [ - [ - { prim: 'DROP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { - prim: 'PUSH', - args: [{ prim: 'address' }, { string: 'KT1UBWj49tdRWBncMkDE82jzQ7hVnj4aPycG' }] - }, - { prim: 'CONTRACT', args: [{ prim: 'nat' }], annots: ['%foo'] }, - [{ prim: 'IF_NONE', args: [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }], []] }], - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '3' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' } - ] - ] - ]) - ).toEqual([ - [ - [ - { prim: 'DROP' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { - prim: 'PUSH', - args: [{ prim: 'address' }, { string: 'KT1UBWj49tdRWBncMkDE82jzQ7hVnj4aPycG' }] - }, - { prim: 'CONTRACT', args: [{ prim: 'nat' }], annots: ['%foo'] }, - [{ prim: 'IF_NONE', args: [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }], []] }], - { prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '0' }] }, - { prim: 'PUSH', args: [{ prim: 'nat' }, { int: '3' }] }, - { prim: 'TRANSFER_TOKENS' }, - { prim: 'CONS' } - ] - ] - ]); - }); -}); diff --git a/packages/taquito-michelson-encoder/test/tokens/map.spec.ts b/packages/taquito-michelson-encoder/test/tokens/map.spec.ts index 4ff6aff07c..3b0ca11e05 100644 --- a/packages/taquito-michelson-encoder/test/tokens/map.spec.ts +++ b/packages/taquito-michelson-encoder/test/tokens/map.spec.ts @@ -25,103 +25,6 @@ describe('Map token', () => { const result = token.Encode([map]); expect(result).toEqual([{ prim: 'Elt', args: [{ string: 'test' }, { int: '1' }] }]); }); - - it('Encode properly a map with keys of type string using fromLiteral', () => { - const map = MichelsonMap.fromLiteral({ - "8": 8, - "9": 9, - "10": 10, - "11": 11, - "12": 12 - }) - const result = token.Encode([map]); - expect(result).toEqual([ - { prim: 'Elt', args: [{ string: '10' }, { int: '10' }] }, - { prim: 'Elt', args: [{ string: '11' }, { int: '11' }] }, - { prim: 'Elt', args: [{ string: '12' }, { int: '12' }] }, - { prim: 'Elt', args: [{ string: '8' }, { int: '8' }] }, - { prim: 'Elt', args: [{ string: '9' }, { int: '9' }] } - ]); - }); - - it('Encode properly a map with keys of type int using fromLiteral', () => { - token = createToken( - { prim: 'map', args: [{ prim: 'int' }, { prim: 'int' }], annots: [] }, - 0 - ) as MapToken; - const map = MichelsonMap.fromLiteral({ - "8": 8, - "9": 9, - "10": 10, - "11": 11, - "12": 12 - }) - const result = token.Encode([map]); - expect(result).toEqual([ - { prim: 'Elt', args: [{ int: '8' }, { int: '8' }] }, - { prim: 'Elt', args: [{ int: '9' }, { int: '9' }] }, - { prim: 'Elt', args: [{ int: '10' }, { int: '10' }] }, - { prim: 'Elt', args: [{ int: '11' }, { int: '11' }] }, - { prim: 'Elt', args: [{ int: '12' }, { int: '12' }] } - ]); - }); - - it('Encode properly a map with keys of type nat using fromLiteral', () => { - token = createToken( - { prim: 'map', args: [{ prim: 'nat' }, { prim: 'int' }], annots: [] }, - 0 - ) as MapToken; - const map = MichelsonMap.fromLiteral({ - 8: 3, - 9: 16, - 12: 1 - }) - const result = token.Encode([map]); - expect(result).toEqual([ - { prim: 'Elt', args: [{ int: '8' }, { int: '3' }] }, - { prim: 'Elt', args: [{ int: '9' }, { int: '16' }] }, - { prim: 'Elt', args: [{ int: '12' }, { int: '1' }] }, - ]); - }); - - it('Encode properly a map with keys of type nat', () => { - token = createToken( - { prim: 'map', args: [{ prim: 'nat' }, { prim: 'int' }], annots: [] }, - 0 - ) as MapToken; - const map = new MichelsonMap(); - map.set(8, 3); - map.set(12, 1); - map.set(9, 16); - const result = token.Encode([map]); - expect(result).toEqual([ - { prim: 'Elt', args: [{ int: '8' }, { int: '3' }] }, - { prim: 'Elt', args: [{ int: '9' }, { int: '16' }] }, - { prim: 'Elt', args: [{ int: '12' }, { int: '1' }] }, - ]); - }); - - it('Encode properly a map with keys of type mutez', () => { - token = createToken( - { prim: 'map', args: [{ prim: 'mutez' }, { prim: 'int' }], annots: [] }, - 0 - ) as MapToken; - const map = MichelsonMap.fromLiteral({ - 8: 5, - 22: 2, - 9: 4, - 10: 1, - 12: 15 - }) - const result = token.Encode([map]); - expect(result).toEqual([ - { prim: 'Elt', args: [{ int: '8' }, { int: '5' }] }, - { prim: 'Elt', args: [{ int: '9' }, { int: '4' }] }, - { prim: 'Elt', args: [{ int: '10' }, { int: '1' }] }, - { prim: 'Elt', args: [{ int: '12' }, { int: '15' }] }, - { prim: 'Elt', args: [{ int: '22' }, { int: '2' }] } - ]); - }); }); }); diff --git a/packages/taquito-michelson-encoder/test/tokens/mutez.spec.ts b/packages/taquito-michelson-encoder/test/tokens/mutez.spec.ts index 13ac88c901..06e717ac79 100644 --- a/packages/taquito-michelson-encoder/test/tokens/mutez.spec.ts +++ b/packages/taquito-michelson-encoder/test/tokens/mutez.spec.ts @@ -32,19 +32,4 @@ describe('Mutez token', () => { expect(() => token.Encode([{}])).toThrowError(MutezValidationError); }); }); - - describe('ToBigMapKey', () => { - it('accepts a number as parameter', () => { - expect(token.ToBigMapKey(10000000)).toEqual({ - key: { int: '10000000' }, - type: { prim: MutezToken.prim }, - }); - }); - it('accepts a string as parameter', () => { - expect(token.ToBigMapKey('10000000')).toEqual({ - key: { int: '10000000' }, - type: { prim: MutezToken.prim }, - }); - }); - }); }); diff --git a/packages/taquito-michelson-encoder/test/tokens/nat.spec.ts b/packages/taquito-michelson-encoder/test/tokens/nat.spec.ts index 32c7b8139b..7edf8d0673 100644 --- a/packages/taquito-michelson-encoder/test/tokens/nat.spec.ts +++ b/packages/taquito-michelson-encoder/test/tokens/nat.spec.ts @@ -10,7 +10,6 @@ describe('Nat token', () => { it('Should encode number to string', () => { expect(token.EncodeObject(0)).toEqual({ int: '0' }); expect(token.EncodeObject(1000)).toEqual({ int: '1000' }); - expect(token.EncodeObject(2000000000000001000000000000000000000000000000000000000)).toEqual({ int: '2000000000000001000000000000000000000000000000000000000' }); }); it('Should throw a validation error when value is less than 0', () => { @@ -28,7 +27,6 @@ describe('Nat token', () => { it('Should encode number to string', () => { expect(token.Encode([0])).toEqual({ int: '0' }); expect(token.Encode([1000])).toEqual({ int: '1000' }); - expect(token.Encode([2000000000000000000000000000000000000000000000000000000])).toEqual({ int: '2000000000000000000000000000000000000000000000000000000' }); }); it('Should throw a validation error when value is less than 0', () => { @@ -41,19 +39,4 @@ describe('Nat token', () => { expect(() => token.Encode([{}])).toThrowError(NatValidationError); }); }); - - describe('ToBigMapKey', () => { - it('accepts a number as parameter', () => { - expect(token.ToBigMapKey(10)).toEqual({ - key: { int: '10' }, - type: { prim: NatToken.prim }, - }); - }); - it('accepts a string as parameter', () => { - expect(token.ToBigMapKey('10')).toEqual({ - key: { int: '10' }, - type: { prim: NatToken.prim }, - }); - }); - }); }); diff --git a/packages/taquito-michelson-encoder/test/tokens/never.spec.ts b/packages/taquito-michelson-encoder/test/tokens/never.spec.ts deleted file mode 100644 index ea083974c7..0000000000 --- a/packages/taquito-michelson-encoder/test/tokens/never.spec.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { createToken } from '../../src/tokens/createToken'; -import { PairToken } from '../../src/tokens/pair'; -import { NeverToken, NeverTokenError } from '../../src/tokens/never' -import { OptionToken } from '../../src/tokens/option'; -import { ParameterSchema } from '../../src/taquito-michelson-encoder'; - -describe('Never token', () => { - - let tokenNever: NeverToken - let tokenNeverOption: OptionToken; - let tokenNeverPair: PairToken; - - - beforeEach(() => { - tokenNever = createToken({ "prim": "never" }, 0) as NeverToken; - tokenNeverOption = createToken({ "prim": "option", "args": [{ "prim": "never" }], "annots": ["%setApprover"] }, 0) as OptionToken; - tokenNeverPair = createToken({ "prim": "pair", "args": [{ "prim": "nat" }, { "prim": "never" }] }, 0) as PairToken; - }); - - describe('EncodeObject', () => { - it('Should throw an error on EncodeObject as there are no literal values of this type.', () => { - expect(() => tokenNever.EncodeObject('test')).toThrowError(NeverTokenError); - expect(() => tokenNeverPair.EncodeObject({ 0: 4, 1: 'test' })).toThrowError(NeverTokenError); - expect(() => tokenNeverOption.EncodeObject('test')).toThrowError(NeverTokenError); - expect(tokenNeverOption.EncodeObject(null)).toEqual({ prim: 'None' }); - }); - }); - - describe('Encode', () => { - it('Should throw an error on Encode as there are no literal values of this type.', () => { - expect(() => tokenNever.Encode(['test'])).toThrowError(NeverTokenError); - expect(() => tokenNeverPair.Encode([4, 1])).toThrowError(NeverTokenError); - expect(() => tokenNeverOption.Encode(['test'])).toThrowError(NeverTokenError); - expect(tokenNeverOption.Encode([null])).toEqual({ prim: 'None' }); - }); - }); - - describe('Execute', () => { - it('Should throw an error on Execute as there are no literal values of this type', () => { - expect(() => tokenNever.Execute('')).toThrowError(NeverTokenError); - }); - }); - - describe('Never parameter encoding', () => { - it('Never parameter are encoded properly', () => { - const schema = new ParameterSchema({ prim: 'never' }); - const result = schema.ExtractSchema(); - expect(result).toEqual('never'); - }); - - it('Never parameter are encoded properly', () => { - const schema = new ParameterSchema({ "prim": "pair", "args": [{ "prim": "nat" }, { "prim": "never" }] }); - const result = schema.ExtractSchema(); - expect(result).toEqual({0: 'nat', 1: 'never'}); - }); - }); - -}); diff --git a/packages/taquito-michelson-encoder/test/tokens/ticket.spec.ts b/packages/taquito-michelson-encoder/test/tokens/ticket.spec.ts deleted file mode 100644 index 17678bee73..0000000000 --- a/packages/taquito-michelson-encoder/test/tokens/ticket.spec.ts +++ /dev/null @@ -1,252 +0,0 @@ -import { BigNumber } from 'bignumber.js'; -import { ParameterSchema, UnitValue } from '../../src/taquito-michelson-encoder'; -import { createToken } from '../../src/tokens/createToken'; -import { TicketToken, EncodeTicketError } from '../../src/tokens/ticket'; - -describe('Ticket token', () => { - // A ticket used to authenticate information of type comparable (cty) - let tokenTicketNat: TicketToken; - let tokenTicketTimestamp: TicketToken; - let tokenTicketAddress: TicketToken; - let tokenTicketBool: TicketToken; - let tokenTicketBytes: TicketToken; - let tokenTicketChainId: TicketToken; - let tokenTicketInt: TicketToken; - let tokenTicketKey: TicketToken; - let tokenTicketKeyHash: TicketToken; - let tokenTicketMutez: TicketToken; - // let tokenTicketNever: TicketToken; - let tokenTicketOption: TicketToken; - let tokenTicketOr: TicketToken; - let tokenTicketPair: TicketToken; - let tokenTicketSignature: TicketToken; - let tokenTicketString: TicketToken; - let tokenTicketUnit: TicketToken; - - beforeEach(() => { - tokenTicketNat = createToken({"prim":"ticket","args":[{"prim":"nat"}],"annots":["%receive"]}, 0) as TicketToken; - tokenTicketTimestamp = createToken({"prim":"ticket","args":[{"prim":"timestamp"}],"annots":["%test"]}, 0) as TicketToken; - tokenTicketAddress = createToken({"prim":"ticket","args":[{"prim":"address"}]}, 0) as TicketToken; - tokenTicketBool = createToken({"prim":"ticket","args":[{"prim":"bool"}],"annots":["%test"]}, 0) as TicketToken; - tokenTicketBytes = createToken({"prim":"ticket","args":[{"prim":"bytes"}]}, 0) as TicketToken; - tokenTicketChainId = createToken({"prim":"ticket","args":[{"prim":"chain_id"}],"annots":["%test"]}, 0) as TicketToken; - tokenTicketInt = createToken({"prim":"ticket","args":[{"prim":"int"}]}, 0) as TicketToken; - tokenTicketKey = createToken({"prim":"ticket","args":[{"prim":"key"}],"annots":["%test"]}, 0) as TicketToken; - tokenTicketKeyHash = createToken({"prim":"ticket","args":[{"prim":"key_hash"}]}, 0) as TicketToken; - tokenTicketMutez = createToken({"prim":"ticket","args":[{"prim":"mutez"}],"annots":["%test"]}, 0) as TicketToken; - tokenTicketOption = createToken({"prim":"ticket","args":[{"prim":"option","args":[{"prim":"address"}],"annots":["%setApprover"]}]}, 0) as TicketToken; - tokenTicketOr = createToken({"prim":"ticket","args":[{"prim":"or","args":[{"prim":"nat"},{"prim":"string"}]}],"annots":["%test"]}, 0) as TicketToken; - tokenTicketPair = createToken({"prim":"ticket","args":[{"prim":"pair","args":[{"prim":"nat"},{"prim":"string"}]}]}, 0) as TicketToken; - tokenTicketSignature = createToken({"prim":"ticket","args":[{"prim":"signature"}],"annots":["%test"]}, 0) as TicketToken; - tokenTicketString = createToken({"prim":"ticket","args":[{"prim":"string"}]}, 0) as TicketToken; - tokenTicketUnit = createToken({"prim":"ticket","args":[{"prim":"unit"}],"annots":["%test"]}, 0) as TicketToken; - }); - - describe('EncodeObject', () => { - it('Should always throw an encode error', () => { - expect(() => tokenTicketNat.EncodeObject('test')).toThrowError(EncodeTicketError); - expect(() => tokenTicketNat.EncodeObject(2)).toThrowError(EncodeTicketError); - expect(() => tokenTicketNat.EncodeObject({})).toThrowError(EncodeTicketError); - expect(() => tokenTicketNat.EncodeObject('11')).toThrowError(EncodeTicketError); - expect(() => tokenTicketTimestamp.EncodeObject(new Date())).toThrowError(EncodeTicketError); - expect(() => tokenTicketAddress.EncodeObject('tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu')).toThrowError(EncodeTicketError); - expect(() => tokenTicketBool.EncodeObject(true)).toThrowError(EncodeTicketError); - expect(() => tokenTicketBytes.EncodeObject('CAFE')).toThrowError(EncodeTicketError); - expect(() => tokenTicketChainId.EncodeObject('NetXSgo1ZT2DRUG')).toThrowError(EncodeTicketError); - expect(() => tokenTicketInt.EncodeObject(5)).toThrowError(EncodeTicketError); - expect(() => tokenTicketKey.EncodeObject('edpkuRkcStobJ569XFxmE6edyRQQzMmtf4ZnmPkTPfSQnt6P3Nym2V')).toThrowError(EncodeTicketError); - expect(() => tokenTicketKeyHash.EncodeObject('tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu')).toThrowError(EncodeTicketError); - expect(() => tokenTicketMutez.EncodeObject(1000000)).toThrowError(EncodeTicketError); - expect(() => tokenTicketOption.EncodeObject('tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu')).toThrowError(EncodeTicketError); - expect(() => tokenTicketOption.EncodeObject(null)).toThrowError(EncodeTicketError); - expect(() => tokenTicketOr.EncodeObject('string')).toThrowError(EncodeTicketError); - expect(() => tokenTicketPair.EncodeObject({0: 0, 1: 'string'})).toThrowError(EncodeTicketError); - expect(() => tokenTicketSignature.EncodeObject('edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg')).toThrowError(EncodeTicketError); - expect(() => tokenTicketString.EncodeObject('hello')).toThrowError(EncodeTicketError); - expect(() => tokenTicketUnit.EncodeObject('Unit')).toThrowError(EncodeTicketError); - }); - }); - - describe('Encode', () => { - it('Should always throw an encode error', () => { - expect(() => tokenTicketNat.Encode(['test'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketNat.Encode(['2'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketNat.Encode([11])).toThrowError(EncodeTicketError); - expect(() => tokenTicketNat.Encode([])).toThrowError(EncodeTicketError); - expect(() => tokenTicketNat.Encode([{}])).toThrowError(EncodeTicketError); - expect(() => tokenTicketTimestamp.Encode([new Date()])).toThrowError(EncodeTicketError); - expect(() => tokenTicketAddress.Encode(['tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketBool.Encode([true])).toThrowError(EncodeTicketError); - expect(() => tokenTicketBytes.Encode(['CAFE'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketChainId.Encode(['NetXSgo1ZT2DRUG'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketInt.Encode([5])).toThrowError(EncodeTicketError); - expect(() => tokenTicketKey.Encode(['edpkuRkcStobJ569XFxmE6edyRQQzMmtf4ZnmPkTPfSQnt6P3Nym2V'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketKeyHash.Encode(['tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketMutez.Encode([1000000])).toThrowError(EncodeTicketError); - expect(() => tokenTicketOption.Encode(['tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketOption.Encode([null])).toThrowError(EncodeTicketError); - expect(() => tokenTicketOr.Encode(['string'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketPair.Encode([0, 'string'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketSignature.Encode(['edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketString.Encode(['hello'])).toThrowError(EncodeTicketError); - expect(() => tokenTicketUnit.Encode(['Unit'])).toThrowError(EncodeTicketError); - }); - }); - - describe('Execute', () => { - it('Should execute on readTicketType with ticket of type nat', () => { - expect(tokenTicketNat.Execute({"prim":"Pair","args":[{"string":"KT1EAMUQC1yJ2sRPNPpLHVMGCzroYGe1C1ea"},{"int":"0"},{"int":"1"}]})).toEqual({ - ticketer: 'KT1EAMUQC1yJ2sRPNPpLHVMGCzroYGe1C1ea', - value: new BigNumber('0'), - amount: new BigNumber('1') - }); - }); - - it('Should execute on readTicketType with ticket of type timestamp', () => { - expect(tokenTicketTimestamp.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"string":"2021-03-09T16:32:15Z"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: "2021-03-09T16:32:15.000Z", - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type address', () => { - expect(tokenTicketAddress.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"string":"tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: "tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu", - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type bool', () => { - expect(tokenTicketBool.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"prim":"True"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: true, - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type bytes', () => { - expect(tokenTicketBytes.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"bytes":"CAFE"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: 'CAFE', - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type chainId', () => { - expect(tokenTicketChainId.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"string":"NetXSgo1ZT2DRUG"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: 'NetXSgo1ZT2DRUG', - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type int', () => { - expect(tokenTicketInt.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"int":"25"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: new BigNumber(25), - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type key', () => { - expect(tokenTicketKey.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"string":"edpkuRkcStobJ569XFxmE6edyRQQzMmtf4ZnmPkTPfSQnt6P3Nym2V"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: 'edpkuRkcStobJ569XFxmE6edyRQQzMmtf4ZnmPkTPfSQnt6P3Nym2V', - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type keyHash', () => { - expect(tokenTicketKeyHash.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"string":"tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type mutez', () => { - expect(tokenTicketMutez.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"int":"1000000"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: new BigNumber('1000000'), - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type option', () => { - expect(tokenTicketOption.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"prim":'Some',"args":[{"string":"tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu"}]},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: 'tz1ZfrERcALBwmAqwonRXYVQBDT9BjNjBHJu', - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type option when value is null', () => { - expect(tokenTicketOption.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"prim":"None"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: null, - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type or with right value', () => { - expect(tokenTicketOr.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"prim":"Right","args":[{"string":"Hello"}]},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: 'Hello', - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type pair', () => { - expect(tokenTicketPair.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"prim":"Pair","args":[{"int":"7"},{"string":"hello"}]},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: {0: new BigNumber('7') , 1: 'hello'}, - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type signature', () => { - expect(tokenTicketSignature.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"string":"edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: 'edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg', - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type string', () => { - expect(tokenTicketString.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"string":"test"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: 'test', - amount: new BigNumber('2') - }); - }); - - it('Should execute on readTicketType with ticket of type unit', () => { - expect(tokenTicketUnit.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"prim":"Unit"},{"int":"2"}]})).toEqual({ - ticketer: 'KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw', - value: UnitValue, - amount: new BigNumber('2') - }); - }); - }); - - describe('Ticket with custom semantic', () => { - it('Should use custom semantic when provided', () => { - const result = tokenTicketString.Execute({"prim":"Pair","args":[{"string":"KT1PVuv7af4VkPsZVZ8oZz9GSSdGnGBCbFWw"},{"string":"test"},{"int":"2"}]}, { ticket: () => 'working' }); - expect(result).toBe('working'); - }); - }); - - describe('Ticket parameter encoding', () => { - it('Ticket parameter are encoded properly', () => { - const schema = new ParameterSchema({ prim: 'ticket', args: [{ prim: 'string' }], annots: ['%receive'] }); - const result = schema.ExtractSchema(); - expect(result).toEqual({ - ticketer: 'contract', - value: 'string', - amount: 'int' - }); - }); - }); -}); diff --git a/packages/taquito-remote-signer/package-lock.json b/packages/taquito-remote-signer/package-lock.json index 62eaeaa931..c5318a307b 100644 --- a/packages/taquito-remote-signer/package-lock.json +++ b/packages/taquito-remote-signer/package-lock.json @@ -1,37 +1,38 @@ { "name": "@taquito/remote-signer", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -64,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -244,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -268,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -349,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -631,12 +632,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -684,18 +693,18 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" } }, "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "dev": true, "requires": { "@types/node": "*" @@ -747,24 +756,24 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "requires": { "jest-diff": "^26.0.0", "pretty-format": "^26.0.0" } }, "@types/libsodium-wrappers": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", - "integrity": "sha512-LisgKLlYQk19baQwjkBZZXdJL0KbeTpdEnrAfz5hQACbklCY0gVFnsKUyjfNWF1UQsCSjw93Sj5jSbiO8RPfdw==", + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", + "integrity": "sha512-vkDSj6enD3K0+Ep83wnoGUk+f7sqsO4alsqxxEZ8BcTJhFmcY4UehYH3rTf4M3JGHXNhdpGFDdMbWFMgyvw/fA==", "dev": true }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==" + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -779,9 +788,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -800,17 +809,17 @@ } }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" }, "abab": { "version": "2.0.5", @@ -875,6 +884,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1038,9 +1055,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1096,6 +1113,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1264,63 +1310,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1358,19 +1347,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1424,9 +1400,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1454,6 +1430,14 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==", + "dev": true + } } }, "copy-descriptor": { @@ -1494,16 +1478,10 @@ "request": "^2.88.2" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1570,9 +1548,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1628,6 +1606,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1668,6 +1677,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1699,17 +1714,17 @@ } }, "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", + "bn.js": "^4.4.0", + "brorand": "^1.0.1", "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" + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "emittery": { @@ -1751,12 +1766,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1789,9 +1798,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1807,20 +1816,63 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "exit": { @@ -1871,69 +1923,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1970,6 +1959,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -2006,21 +2006,44 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", @@ -2142,9 +2165,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2179,9 +2202,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2223,9 +2246,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2390,9 +2413,9 @@ } }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2457,12 +2480,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2487,32 +2521,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2523,13 +2576,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2577,9 +2627,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2604,9 +2654,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2694,6 +2744,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2705,27 +2778,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -3055,13 +3150,10 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true } } }, @@ -3134,9 +3226,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3181,6 +3273,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -3214,9 +3319,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3278,16 +3383,16 @@ } }, "libsodium": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.9.tgz", - "integrity": "sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A==" + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz", + "integrity": "sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ==" }, "libsodium-wrappers": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", - "integrity": "sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==", + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", + "integrity": "sha512-PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg==", "requires": { - "libsodium": "^0.7.0" + "libsodium": "0.7.8" } }, "lines-and-columns": { @@ -3297,9 +3402,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3317,12 +3422,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3332,8 +3480,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3357,6 +3504,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3400,29 +3553,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -3487,18 +3620,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3540,13 +3673,27 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "ms": { "version": "2.1.2", @@ -3610,9 +3757,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3625,14 +3772,18 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true, + "optional": true } } }, @@ -3655,12 +3806,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -3695,43 +3854,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3848,9 +3970,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3931,6 +4053,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -3953,9 +4081,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -3970,16 +4098,17 @@ } }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -4063,14 +4192,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "rechoir": { @@ -4111,48 +4232,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4181,24 +4268,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4219,18 +4288,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4308,12 +4365,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4333,6 +4399,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4356,6 +4434,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4366,14 +4450,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4389,20 +4465,12 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "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==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-regex": { @@ -4476,34 +4544,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4527,21 +4567,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4562,12 +4587,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4598,36 +4617,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4637,15 +4626,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4696,12 +4676,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4810,69 +4784,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4884,19 +4795,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -4919,6 +4817,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -4949,13 +4876,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -4969,9 +4899,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -5001,9 +4931,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5079,63 +5009,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5321,12 +5194,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5341,9 +5213,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5352,32 +5224,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5385,9 +5265,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -5458,15 +5338,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5475,12 +5346,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5497,34 +5362,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5536,14 +5399,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5577,9 +5432,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5591,9 +5446,9 @@ } }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "union-value": { @@ -5606,14 +5461,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5659,19 +5506,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -5703,15 +5544,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5724,16 +5556,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -5845,9 +5676,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -5855,6 +5686,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -5869,6 +5701,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -5879,9 +5717,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -5908,9 +5746,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -5926,15 +5764,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -5960,25 +5792,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-remote-signer/package.json b/packages/taquito-remote-signer/package.json index 777ab50438..19ed734d85 100644 --- a/packages/taquito-remote-signer/package.json +++ b/packages/taquito-remote-signer/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/remote-signer", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "Remote signer provider", "keywords": [ "tezos", @@ -29,9 +29,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -60,25 +59,25 @@ ] }, "dependencies": { - "@taquito/http-utils": "^9.0.0", - "@taquito/taquito": "^9.0.0", - "@taquito/utils": "^9.0.0", - "@types/jest": "^26.0.16", - "elliptic": "^6.5.4", + "@taquito/http-utils": "^7.1.0-preview.1", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", + "@types/jest": "^26.0.14", + "elliptic": "^6.5.3", "libsodium-wrappers": "^0.7.8", "typedarray-to-buffer": "^3.1.5" }, "devDependencies": { "@types/elliptic": "^6.4.12", - "@types/jest": "^26.0.16", + "@types/jest": "^26.0.14", "@types/libsodium-wrappers": "^0.7.8", - "@types/node": "^14.14.10", - "@types/ws": "^7.4.0", + "@types/node": "^14.11.5", + "@types/ws": "^7.2.7", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -90,12 +89,12 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-remote-signer/signature.json b/packages/taquito-remote-signer/signature.json index ed013f5ce8..a7ab86a90d 100644 --- a/packages/taquito-remote-signer/signature.json +++ b/packages/taquito-remote-signer/signature.json @@ -14,7 +14,7 @@ }, { "path": "dist/lib/taquito-remote-signer.js", - "sha512": "6f2d924669e9cbed4cf815550d6ab411b8faa636a78e95891b0429e4f121b5d17bb9d9b9d3dd065814f41a29732c6a06043641178ad23576d0eaaaa281367a54" + "sha512": "c4983718ded5a359e04b7a89b9d64e0945fe55aa9d22bd6ea181e2e1a80ee83caf47e8b7090358fba362075448161075d9b5634fd9962a2d7a12856c1f9fdf13" }, { "path": "dist/taquito-remote-signer.umd.js", @@ -26,15 +26,15 @@ }, { "path": "dist/taquito-remote-signer.es5.js.map", - "sha512": "5f48d816b03c82d02da9e232ea07ca50a625a047e3dc6c7146b237c814cbd485c28752b639de3f43aefa7848e3b407f3a4e6bf36781867268d9baf5a8fcc2015" + "sha512": "21a77be5776e46ec790e4db676297197417fbd7131a4858d396bd923b4a102db173252d4f4eff0d26fd169754f1165f7a356837aac9ec23acba9ec5bdb8a5378" }, { "path": "dist/lib/taquito-remote-signer.js.map", - "sha512": "470ca92a0611ee7bf1e09e43b6810a178445d6d3c9da32c6bc4c939483307997b553afc32fee221b30344acd2eab3f9bec068a307eb99da3d1aaefaeb344b494" + "sha512": "1552acfde7a357d6f5b9c250640d599296ff6f818f7affd56cf3ca01a190f753895a9cff909fdcef7cd31a78dacad7f4ef633c67b9ba0dda6fabff20840ca6ee" }, { "path": "dist/taquito-remote-signer.umd.js.map", - "sha512": "d16e2f89ce4e526257dcd53e1b605fd5a178d8904cdac7fdc171af9b110aab162e1140334603096b31677805a6b06b82ba20819cfc4c0e24ab31e433d3cbcdbd" + "sha512": "c3feba3fb62c7ffd9353fdaf7366f0c13bf7ef24f7365df22a6f4aaf1cf9725f36119fb3186fd8cedcd0cb3ed735da7286ec699fcb63ff551ef192d7bc330d8b" }, { "path": "dist/types/errors.d.ts", @@ -42,7 +42,7 @@ }, { "path": "dist/types/taquito-remote-signer.d.ts", - "sha512": "0186df01e2d35b966e39fa1475350d4ed16cde95db4d2c7736e6e8d8f30fde75b28dcd5d570a4268023db4ebf0e2873e7871b3803d1b80c4341d9910313859b5" + "sha512": "c0fae93b49ec88c27c19de6ac039bb85b388ca6c4a388a4d23748422c8356e2aaf26056670070ca8656fe8e672ce941d8f4060c16e527eb3bc2942057e49cb1c" } ] } @@ -79,7 +79,7 @@ "typings", "version" ], - "sha512": "f761b288f4d6aac698abf4026af62136d8db6d232c81e11001d44a6da407487f7bd22a7af460c28836f8e562b340e93cbd431bb21b57cb88056daf14a7c2075c" + "sha512": "580cd655fa28afde450d1b60f75ecf597558fc061e63619ae3f2c0e1ba921a5bee6f83bdb91b17cdd76beb4b0c9aae3150ba8cfd5ae1ca8176d654fe61257c28" } }, { @@ -87,7 +87,7 @@ "value": { "packageJson": { "name": "@taquito/remote-signer", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "Remote signer provider", "keywords": [ "tezos", @@ -146,25 +146,25 @@ ] }, "dependencies": { - "@taquito/http-utils": "^8.0.4-beta.0", - "@taquito/taquito": "^8.0.4-beta.0", - "@taquito/utils": "^8.0.4-beta.0", - "@types/jest": "^26.0.16", + "@taquito/http-utils": "^7.1.0-preview.1", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", + "@types/jest": "^26.0.14", "elliptic": "^6.5.3", "libsodium-wrappers": "^0.7.8", "typedarray-to-buffer": "^3.1.5" }, "devDependencies": { "@types/elliptic": "^6.4.12", - "@types/jest": "^26.0.16", + "@types/jest": "^26.0.14", "@types/libsodium-wrappers": "^0.7.8", - "@types/node": "^14.14.10", - "@types/ws": "^7.4.0", + "@types/node": "^14.11.5", + "@types/ws": "^7.2.7", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -176,17 +176,17 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UECRAD9Qy5GYHsngAA0MUQAHrpfEOkmUQL9Sol6gVfBd27\nwpAEMOzrSIRwpPFUZqvUFth/vx6la8+GH90POkxOZDrnHaRx93/IefG1EntFSGUv\n7r+TQ5DrsGq1F1WBASVYKRF4SlZatRpRfuO9L0KyNOHubtP6tSBS8Z7le8Dsk2NI\ns6ogLKg5ZitjTFVq05zkXyQQQdxgvMwiOqS+u5nVuXA7uUJgQ957Gmm7anYElgpG\n+GK3EIGAsck8rJW3uGG08BCGTKSmvLYuRJ6NjUrdMKeJ8RXA4L64UD26rlN9ZyzG\n1neFUHmSQGDe8zo8n2cBMGRx0VMmi13K7HN1/AFoRmpMdRBpvuT6BLwno4rDIQz1\niu6yiscP2Xz4pHaR2xZXeZQbL57kV6hpzNNnpJCUxdVWu4cBcFD61ANkm+uxuGnK\nnuGStvkvVnvUJ2XpRtRSiqItmVRaH2HN/K7vHLVLlTN2X7ZHkuT17rMklLODKlxh\nPExslji1dSLLXgea1HpFEm65eKIjG9ZMA4rYPmpcxxIGgo8yEDv3aQCW5NsC4V2T\nkVJICueqUkJLNfyCYMaXqsNCvekHh65udflLtsDvq4vESj3Tez747xkUomLRhBRD\n3NsPbY1JpBS5U6n+I2eIKgtDidYW/PmZF6U4846OS+hgnHqjSPCi+tk+cljlPmmt\nz5IylVx6faGv1rug/WiG\n=RTfe\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSrCRAD9Qy5GYHsngAA9z8QABU1TgoVh3ouYN3XU0PqYsE+\nHYhFXH5L7LW5oT/9pzxOjttthzxtzQDtj9NbLpdbnvmQ5e7dK+5OMAIS3JiptshA\nT88VIy2cFes5b3N+mDJUpxlJgMdL3erX8Dx+dw+fDVGrYPV5TLfRQoO5iVhbDz5C\ndHaG+8FeQ5nnaem4PfolDj1jr3RHZLXNUNWIsSVvdXGQAosgwm3d5iXF6eKMMwdv\nqIzQv8oWdxAB20JvMiIwzZE/5D34qsFKY+5VsrhoNVAX0YPEnN+HHWd8cKIJbuTm\nqzF1cYZ2cnRwrq6ia0zbnGqCXzxUeINZKw8SNof9KH30v5Rh7h/L/uG+uZ25etc7\ncgctHx9ktVO64wYECtMXGauh4tOqB4m5yGcQ7uiYmvHkxl8rD2NbzKSexDNV55nE\nAocdbl6BMncJuxAxJYGruadYHXPLmuYcsxQWdzSQHXqPKUjRvBNHCM5kL1kWIYyl\ngG1tGQx41P/HKom90/Hz7MDQ0p/C7aMU+VPTwq+WSodC02liHOjZ4oFHhCYI9N65\n0DUJjN0Al1nr6mLF2FDyb3zhxu5SEkStyn+bsjRV8LHNdkULrHjnZNqxE7T7B53L\nAmoMBwDaVo9ZKv5ebfWzlzZUYWOvBl9/DnyANbdmdngxzDZv9vsthoS6bWeor800\numjOqDh+L+lxIQi7JIN1\n=g0zu\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-remote-signer/src/taquito-remote-signer.ts b/packages/taquito-remote-signer/src/taquito-remote-signer.ts index 4e85841c90..ef1a45ee73 100644 --- a/packages/taquito-remote-signer/src/taquito-remote-signer.ts +++ b/packages/taquito-remote-signer/src/taquito-remote-signer.ts @@ -1,7 +1,3 @@ -/** - * @packageDocumentation - * @module @taquito/remote-signer - */ import { HttpBackend, HttpResponseError, STATUS_CODE } from '@taquito/http-utils'; import { b58cdecode, @@ -31,8 +27,6 @@ export interface RemoteSignerOptions { headers?: { [key: string]: string }; } -export { VERSION } from './version'; - const pref = { ed: { pk: prefix['edpk'], diff --git a/packages/taquito-remote-signer/src/version.ts b/packages/taquito-remote-signer/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-remote-signer/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-rpc/package-lock.json b/packages/taquito-rpc/package-lock.json index 9f912f5ceb..8c14e5982e 100644 --- a/packages/taquito-rpc/package-lock.json +++ b/packages/taquito-rpc/package-lock.json @@ -1,37 +1,38 @@ { "name": "@taquito/rpc", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -64,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -244,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -268,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -349,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -632,12 +633,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -685,9 +694,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -733,9 +742,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -743,15 +752,15 @@ } }, "@types/lodash": { - "version": "4.14.168", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", - "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", + "version": "4.14.165", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", + "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", "dev": true }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", "dev": true }, "@types/normalize-package-data": { @@ -767,9 +776,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -779,18 +788,18 @@ "dev": true }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, "abab": { @@ -856,6 +865,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1021,9 +1038,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1079,6 +1096,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1243,63 +1289,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1337,19 +1326,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1405,9 +1381,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1435,6 +1411,14 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==", + "dev": true + } } }, "copy-descriptor": { @@ -1475,16 +1459,10 @@ "request": "^2.88.2" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1551,9 +1529,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1609,6 +1587,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1650,6 +1659,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1719,12 +1734,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1757,9 +1766,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1775,20 +1784,63 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "exit": { @@ -1839,69 +1891,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1938,6 +1927,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -1974,24 +1974,47 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, "fast-deep-equal": { @@ -2110,9 +2133,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2147,9 +2170,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2191,9 +2214,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2340,9 +2363,9 @@ } }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2408,12 +2431,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2438,32 +2472,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2474,13 +2527,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2528,9 +2578,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2556,9 +2606,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2646,6 +2696,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2657,27 +2730,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -3009,13 +3104,10 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true } } }, @@ -3088,9 +3180,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3135,6 +3227,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -3168,9 +3273,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3238,9 +3343,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3258,12 +3363,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3273,8 +3421,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3297,6 +3444,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3340,29 +3493,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -3427,18 +3560,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3470,13 +3603,27 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "ms": { "version": "2.1.2", @@ -3540,9 +3687,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3555,14 +3702,18 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true, + "optional": true } } }, @@ -3585,12 +3736,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -3625,43 +3784,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3778,9 +3900,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3861,6 +3983,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -3883,9 +4011,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -3901,16 +4029,17 @@ } }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -3995,14 +4124,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "rechoir": { @@ -4043,48 +4164,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4113,24 +4200,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4151,18 +4220,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4240,12 +4297,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4265,6 +4331,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4288,6 +4366,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4298,14 +4382,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4321,20 +4397,12 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "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==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-regex": { @@ -4408,34 +4476,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4459,21 +4499,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4494,12 +4519,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4530,36 +4549,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4569,15 +4558,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4628,12 +4608,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4742,69 +4716,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4816,19 +4727,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -4851,6 +4749,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -4881,13 +4808,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -4901,9 +4831,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -4933,9 +4863,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5011,63 +4941,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5254,12 +5127,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5274,9 +5146,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5285,32 +5157,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5318,9 +5198,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -5391,15 +5271,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5408,12 +5279,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5430,34 +5295,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5469,14 +5332,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5510,9 +5365,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5525,9 +5380,9 @@ } }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "union-value": { @@ -5540,14 +5395,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5593,19 +5440,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -5637,15 +5478,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5658,16 +5490,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -5779,9 +5610,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -5789,6 +5620,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -5803,6 +5635,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -5813,9 +5651,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -5842,9 +5680,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -5860,15 +5698,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -5894,25 +5726,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-rpc/package.json b/packages/taquito-rpc/package.json index 69250bcd26..0e6aef6f78 100644 --- a/packages/taquito-rpc/package.json +++ b/packages/taquito-rpc/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/rpc", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "Provides low level methods, and types to invoke RPC calls from a Nomadic Tezos RPC node", "keywords": [ "tezos", @@ -33,9 +33,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -67,19 +66,19 @@ ] }, "dependencies": { - "@taquito/http-utils": "^9.0.0", + "@taquito/http-utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1", "lodash": "^4.17.20" }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/lodash": "^4.14.165", - "@types/node": "^14.14.10", + "@types/jest": "^26.0.14", + "@types/lodash": "^4.14.161", + "@types/node": "^14.11.5", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -91,12 +90,12 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-rpc/signature.json b/packages/taquito-rpc/signature.json index d3980724ff..a862e91734 100644 --- a/packages/taquito-rpc/signature.json +++ b/packages/taquito-rpc/signature.json @@ -10,15 +10,15 @@ }, { "path": "dist/taquito-rpc.es5.js", - "sha512": "788082fb28a66b77bf242ae03a1ce12ef396885279aec22794e4cd9ba21f0fc932f6abbf0f0f148ba381cd9df42b6524352cbe430e510176aa054743e8983236" + "sha512": "55d36f0896658ca4f1d954b099e1a113dcd99b8e433f54eeb26a8c23a5001b5c984a5de3d79f466560d8cdf49643fcfb0698daeb6ba7af9b5c1d3750089ece88" }, { "path": "dist/lib/taquito-rpc.js", - "sha512": "539a668372f3c2b9279a3e66822d6ba62f4727d120c10c43cab2979ca5474c031982bec60027e9eb3b27523789e72e97fdfb80fef21da07d726afbdd3f6f2627" + "sha512": "38f704593ba187e88b1a4480d725f2da1a768ba2486bc2cbeda243512674adb9c1a20f9eaa398cb5fcd422b358b9e27e1518c77454ac8eb345caa7a5c6d3426e" }, { "path": "dist/taquito-rpc.umd.js", - "sha512": "a93ffe6e57854717ab4a115532c0432936289a8edada56f9f876e3dae52c5b15036e6e60daae4fc9561b63548076dfa61d8de2e46004d61754e2e9c6e75195f7" + "sha512": "cf1e2ef0810db3de5e562c9c54f57fb56618b3d3fb268e834ce1e3577f3a0f95eae3683a973c1de1babfd06f9a098fae74cdc7459913afb3d20b4ec0deabdd2f" }, { "path": "dist/lib/types.js", @@ -34,15 +34,15 @@ }, { "path": "dist/taquito-rpc.es5.js.map", - "sha512": "9819b574b325a5e9c31d1caefbaf7fc1d3aafaf438bd66cf0c7d3cca26ed7278c5de0adddd08b619b8ae25503442dacb2b9faa998f24fb733536f8b1613a36f3" + "sha512": "24791832bc8fa589eecadab1699d0b6026c4f4ad56ef005dd9982a35dc5294ec108d07a7d0ee906aa9793d87cce167dc71cc4557457d9b2fb7ed308d5ec1f562" }, { "path": "dist/lib/taquito-rpc.js.map", - "sha512": "bf12d5a4ae75c7767f1dcc34ae7f4b3c7ec116a06390c2a4611a8be2ed4f1411050f0a61c65efb152070efac7bae1fac65c3c74c11e02867c789611fbc974d56" + "sha512": "ce5d8ee48b4fb74d9e7967473a5b61009cebf1dc3777de8bfa7ae7a46b9641d255e9b526f1205ebc5ddf04738406f4c0dbe2f81d1319fd62f4ec66dea774fe97" }, { "path": "dist/taquito-rpc.umd.js.map", - "sha512": "884b5fecbac5744551abc7cf48d10e1ae126476568368a1eafe4bb43a79955ad96019df7f32de6e832a9d2fe86f5a5619fc629784597d78ea75cf08c85226093" + "sha512": "d384ae5a605b8960c11d0e35e677de859140a1d8850587e25f836b58b22fb4e3a3a601f1239ab48a9a6f7cedbfc0468c48a9803063b9cd2faf1b98c44da65a6f" }, { "path": "dist/lib/types.js.map", @@ -62,11 +62,11 @@ }, { "path": "dist/types/taquito-rpc.d.ts", - "sha512": "34cafdca77482b39989bfe32c75dee83791021c45af7efa2c4bee5695e9ec21959451c1834de6c756a45dbb313e038f17ee3703df97f55391476fae0f2bc95a9" + "sha512": "7c9a4384dc609f969da7bfe1ecb49fa2dcc321ceb5dffaf6e11920425779c4555945c3500d4a7f02416030d5931b4f6448a1f39060e15bba46ebfd6995fe8510" }, { "path": "dist/types/types.d.ts", - "sha512": "22f689a72332c8718a1ed5bf1dd59962a713a38da5ad73d08238766cf1ce3ed8a0cef30ddb3a7f997ee2516d3228a75d3f4f09e4116278f3451540d129bf3293" + "sha512": "9de37087a5d3e0f08a75a8c1a2b70364fe465aa61c6aac2b507b41bb6af89e7ed1dc8bbf572edc6b8d3d4fa61828b722fef06f517723b728ca7f5b998234c39c" }, { "path": "dist/types/utils/utils.d.ts", @@ -107,7 +107,7 @@ "typings", "version" ], - "sha512": "2317247803f1176714b7fab235762e5fdcff1b064773b9debb3d42aa34a1f27ec83e5eb77e75228f9348be5430faf6fd2ccae6c67cacf1460bafd242c45a4514" + "sha512": "2a92b373fa18757b4e98bdc1ec9de5fb6455146bb8be255a799416afbc3e8e67d70561a52e3ca1060ba7ed9775f3bcb3095c91a65979ebac025603d9e4f7d945" } }, { @@ -115,7 +115,7 @@ "value": { "packageJson": { "name": "@taquito/rpc", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "Provides low level methods, and types to invoke RPC calls from a Nomadic Tezos RPC node", "keywords": [ "tezos", @@ -181,19 +181,19 @@ ] }, "dependencies": { - "@taquito/http-utils": "^8.0.4-beta.0", + "@taquito/http-utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1", "lodash": "^4.17.20" }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/lodash": "^4.14.165", - "@types/node": "^14.14.10", + "@types/jest": "^26.0.14", + "@types/lodash": "^4.14.161", + "@types/node": "^14.11.5", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -205,17 +205,17 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UFCRAD9Qy5GYHsngAA4OMQABBJUQMVjjoSYtm9JL/He9c9\ngjqPUgJ3emzVtAagfOB1eNHr2nD0U+r2NSBj20NE+wF3eLBmlnRvIJFsvjakMj5E\nbRMUV+vcB3SWBGZLG8MhC6OShcrWk8Zy08qRkMkOEMhb9v6CQfHJ+y6vyc1iDOhF\njkrPpEviqwLrbiG2m1Bh20DLzG+W8L1q/ndaY1XlhObps1d9th2YbCb+gBExQEbg\nCKb/mGuj1XfU8rG4t3R2EDKlnVpwiEtSolzboznt3vnJN2S73K7Td/i8PzrxWSNX\nDkA5GBqaDa+RQ8k7IqVOAeAQzdcCSzD++LXR0IzbTUfYUneGtwhsr3at65wkYuMS\nT4Dv57S8rcS50xijuOhPWKuSH+mVnkJmd/tpHsVYt9vwjudRtFe3JeJ/xXFymJVs\ntOWhlBNMs+zRMfRtnHM/Nn1nbgXWpyIyLIKh6pFuQTPvQhCGcS7BVs1oNZP6dPcX\n0KCI+O2NcVPSALc5ZmEdZsZ7AWkvuqDFLkLo+M7oPrJOrWxwIq4Zjr+sOLpaesN5\nCX0l8e+QC/kV0tnoILBhitHNQ9d3j0fxrl4h3q9k5XvnbwyfnqPy1uszqHRsExJo\nMQmeyRhNeO5UrtqtVv8dudq9XaD0tSV8PsJdg/Ao/LKi3Wut9PsV6NypMYl1N1k5\nQOXEoWtq2i9XVePw9TNk\n=mjPP\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSsCRAD9Qy5GYHsngAAfp4QAJcGOm6Ij2TdzoKPQP1q7VWB\n2QFAgeXO8PC4BuRpb+8PRShIGYeWCbRyj/OoMhMfeLdzjh21aqB7xT4L6arOru6P\nQy3xMcJZIa38oEUXI3scIcqT8i2DGIxYV1MNLtgyjGGXxoVoqzUdGYBtNP8xnpYX\nxIrEBFkvU3PwPJ4zOyXKSY5Y67PPcxMChiTPU3dGgiKlJKva4hCAVwppZxGOoFWU\nZmCRCcb3MkbRWc7U3+YxASRgQGERs8SwhFfVIMq8PkHkp7PMjdhJZJ8Mia0Y2h3X\nlCe/QdWP8LlOZpToQ6ZnslaTPDdgpPeucail4mYnW1UWB9S3GgqhZ5eIg9ICTfaw\nvBZjnAqAbg6eS88SE4GLH9rq+dm6O28WjZGnb/4Ym0cmfmsDSS7Mlwv71nAWtGyi\nrHsfhLcTkr/6VvnymKfK7/467epJa4ObIomf5zCAuQlvlRIqvZ/YmwPaR9qaVlKM\nuf/vvLRrDCAYDhAbNQ6lR4lZj7u0oQ7Vi0Bn4j5nn9N32Bn5mjnKPGWjnxD8vL05\n9h/bzgdwdNvCKtdpMrqwltmq1sIfNC6gEnFMw5B2n3iU5G6GuJYX0FiPR/QwbBGE\nErowHX+zEKr9sNyDdA/z0IsCMs3IJTPlxTHPLXAnQKKXjrmFgc82ZOdQ5o3Ipi56\nSpfKKovladAUCA0ti/YX\n=Y8dp\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-rpc/src/taquito-rpc.ts b/packages/taquito-rpc/src/taquito-rpc.ts index d450c185fd..395f5e597b 100644 --- a/packages/taquito-rpc/src/taquito-rpc.ts +++ b/packages/taquito-rpc/src/taquito-rpc.ts @@ -1,8 +1,4 @@ -/** - * @packageDocumentation - * @module @taquito/rpc - */ -import { HttpBackend, HttpResponseError, STATUS_CODE } from '@taquito/http-utils'; +import { HttpBackend } from '@taquito/http-utils'; import BigNumber from 'bignumber.js'; import { BakingRightsQueryArguments, @@ -35,13 +31,10 @@ import { PreapplyResponse, ProposalsResponse, RawBlockHeaderResponse, - RPCRunCodeParam, RPCRunOperationParam, - RunCodeResult, ScriptResponse, StorageResponse, VotesListingsResponse, - VotingPeriodBlockResult, } from './types'; import { castToBigNumber } from './utils/utils'; @@ -49,8 +42,6 @@ export * from './types'; export { OpKind } from './opkind'; -export { VERSION } from './version'; - const defaultChain = 'main'; interface RPCOptions { @@ -236,23 +227,13 @@ export class RpcClient { address: string, { block }: { block: string } = defaultRPCOptions ): Promise<DelegateResponse> { - let delegate: DelegateResponse; - try { - delegate = await this.httpBackend.createRequest<DelegateResponse>({ - url: this.createURL( - `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/delegate` - ), - method: 'GET', - }); - } catch(ex) { - if (ex instanceof HttpResponseError && ex.status === STATUS_CODE.NOT_FOUND) { - delegate = null; - } else { - throw ex; - } + return this.httpBackend.createRequest<DelegateResponse>({ + url: this.createURL( + `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/delegate` + ), + method: 'GET', + }); } - return delegate -} /** * @@ -263,7 +244,7 @@ export class RpcClient { * * @deprecated Deprecated in favor of getBigMapKeyByID * - * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-context-contracts-contract-id-big-map-get + * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-script */ async getBigMapKey( address: string, @@ -513,8 +494,6 @@ export class RpcClient { * @param options contains generic configuration for rpc calls * * @description Current period kind. - * - * @deprecated Deprecated in favor of getCurrentPeriod * * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-period-kind */ @@ -716,29 +695,6 @@ export class RpcClient { return response; } - /** - * @param code Code to run - * @param options contains generic configuration for rpc calls - * - * @description Run a piece of code in the current context - * - * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-run-code - */ - async runCode( - code: RPCRunCodeParam, - { block }: RPCOptions = defaultRPCOptions - ): Promise<RunCodeResult> { - const response = await this.httpBackend.createRequest<any>( - { - url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/scripts/run_code`), - method: 'POST', - }, - code - ); - - return response; - } - async getChainId() { return this.httpBackend.createRequest<string>({ url: this.createURL(`/chains/${this.chain}/chain_id`), @@ -784,45 +740,4 @@ export class RpcClient { return this.url } - /** - * - * @param options contains generic configuration for rpc calls - * - * @description Voting period of current block. - * - * @example getCurrentPeriod() will default to current voting period for /main/chains/block/head. - * - * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-period - */ - async getCurrentPeriod({ block }: RPCOptions = defaultRPCOptions): Promise< - VotingPeriodBlockResult - > { - const response = await this.httpBackend.createRequest<VotingPeriodBlockResult>({ - url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/current_period`), - method: 'GET', - }); - - return response; - } - - /** - * - * @param options contains generic configuration for rpc calls - * - * @description Voting period of next block. - * - * @example getSuccessorPeriod() will default to successor voting period for /main/chains/block/head. - * - * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-successor-period - */ - async getSuccessorPeriod({ block }: RPCOptions = defaultRPCOptions): Promise< - VotingPeriodBlockResult - > { - const response = await this.httpBackend.createRequest<VotingPeriodBlockResult>({ - url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/successor_period`), - method: 'GET', - }); - - return response; - } } diff --git a/packages/taquito-rpc/src/types.ts b/packages/taquito-rpc/src/types.ts index 6f7130d357..161825b1bf 100644 --- a/packages/taquito-rpc/src/types.ts +++ b/packages/taquito-rpc/src/types.ts @@ -29,7 +29,7 @@ interface Frozenbalancebycycle { rewards: BigNumber; } -export type BigMapKey = { key: { [key: string]: string | object[] }; type: { prim: string, args?: object[] } }; +export type BigMapKey = { key: { [key: string]: string }; type: { prim: string } }; export interface BlockFullHeader { level: number; @@ -450,7 +450,7 @@ export interface MichelsonV1ExpressionExtended { annots?: string[]; } -export type MichelsonV1Expression = MichelsonV1ExpressionBase | MichelsonV1ExpressionExtended | MichelsonV1Expression[]; +export type MichelsonV1Expression = MichelsonV1ExpressionBase | MichelsonV1ExpressionExtended; export interface ScriptedContracts { code: MichelsonV1Expression[]; @@ -578,14 +578,14 @@ export interface OperationContentsAndResultMetadataOrigination { internal_operation_results?: InternalOperationResult[]; } -export type ConstantsResponse = - ConstantsResponseCommon & - ConstantsResponseProto007 & - ConstantsResponseProto006 & - ConstantsResponseProto005 & - ConstantsResponseProto004 & - ConstantsResponseProto003 & - ConstantsResponseProto001And002; +export type ConstantsResponse = +ConstantsResponseCommon & +ConstantsResponseProto007 & +ConstantsResponseProto006 & +ConstantsResponseProto005 & +ConstantsResponseProto004 & +ConstantsResponseProto003 & +ConstantsResponseProto001And002; export interface ConstantsResponseCommon { proof_of_work_nonce_size: number; @@ -667,14 +667,6 @@ export interface Level { expected_commitment: boolean; } -export interface LevelInfo { - level: number; - level_position: number; - cycle: number; - cycle_position: number; - expected_commitment: boolean; -} - export interface BlockMetadata { protocol: string; next_protocol: string; @@ -684,10 +676,8 @@ export interface BlockMetadata { max_block_header_length: number; max_operation_list_length: MaxOperationListLength[]; baker: string; - level?: Level; - level_info?: LevelInfo; - voting_period_kind?: string; - voting_period_info?: VotingPeriodBlockResult; + level: Level; + voting_period_kind: string; nonce_hash?: any; consumed_gas: string; deactivated: any[]; @@ -699,25 +689,6 @@ export type RPCRunOperationParam = { chain_id: string; }; -export type RPCRunCodeParam = { - script: MichelsonV1ExpressionExtended[]; - storage: MichelsonV1Expression; - input: MichelsonV1Expression; - amount: string; - chain_id: string; - source?: string; - payer?: string; - gas?: BigNumber; - entrypoint?: string; - balance?: string; -}; - -export type RunCodeResult = { - storage: MichelsonV1Expression; - operations: InternalOperationResult[]; - big_map_diff?: ContractBigMapDiff; -} - export type EntrypointsResponse = { entrypoints: { [key: string]: Object }; unreachable?: { path: ('Left' | 'Right')[] }; @@ -735,15 +706,3 @@ export interface OperationContentsAndResultOrigination { script?: ScriptedContracts; metadata: OperationContentsAndResultMetadataOrigination; } - -export interface VotingPeriodResult { - index: number; - kind: string; - start_position: number; -} - -export interface VotingPeriodBlockResult { - voting_period: VotingPeriodResult; - position: number; - remaining: number; -} diff --git a/packages/taquito-rpc/src/version.ts b/packages/taquito-rpc/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-rpc/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-rpc/test/taquito-rpc.spec.ts b/packages/taquito-rpc/test/taquito-rpc.spec.ts index 56cb0383fe..4dacfc193e 100644 --- a/packages/taquito-rpc/test/taquito-rpc.spec.ts +++ b/packages/taquito-rpc/test/taquito-rpc.spec.ts @@ -1,7 +1,6 @@ import { RpcClient } from '../src/taquito-rpc'; import BigNumber from 'bignumber.js'; import { OperationContentsAndResultEndorsement } from '../src/types'; -import { OperationContentsAndResultTransaction } from '../src/types'; /** * RpcClient test @@ -20,7 +19,7 @@ describe('RpcClient test', () => { }); it('RpcClient is instantiable', () => { - const rpcUrl: string = 'test'; + const rpcUrl: string = "test"; expect(new RpcClient(rpcUrl)).toBeInstanceOf(RpcClient); }); @@ -36,7 +35,7 @@ describe('RpcClient test', () => { done(); }); - it('Should prevent double slashes given one trailing slash', async done => { + it('Should prevent double slashes given one trailing slashe', async done => { const client = new RpcClient('root.com/test/', 'test', httpBackend as any); httpBackend.createRequest.mockReturnValue(Promise.resolve('10000')); await client.getBalance('address'); @@ -60,7 +59,7 @@ describe('RpcClient test', () => { }); describe('getBalance', () => { - it('query the right url and return a string', async done => { + it('query the right url and returns a string', async done => { httpBackend.createRequest.mockReturnValue(Promise.resolve('10000')); const balance = await client.getBalance('address'); @@ -653,7 +652,7 @@ describe('RpcClient test', () => { }); describe('getBlock', () => { - it('query the right url and property for endorsement', async done => { + it('query the right url and property', async done => { httpBackend.createRequest.mockReturnValue( Promise.resolve({ protocol: 'Pt24m4xiPbLDhVgVfABUjirbmda3yohdN82Sp9FeuAXJ4eV9otd', @@ -793,257 +792,6 @@ describe('RpcClient test', () => { }); }); - describe('getBlock', () => { - it('query the right url and property for operation', async done => { - httpBackend.createRequest.mockReturnValue( - Promise.resolve({ - protocol: 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA', - chain_id: 'NetXSgo1ZT2DRUG', - hash: 'BKjqpGqKggVrYbkBmBUYjLx8QdCUxBLaVGr1GWKho4ziBo1KQFX', - header: { - level: 90973, - proto: 1, - predecessor: 'BMF7j462upRKLRWEdmFYTCMK3kuEfbQdR2Apo7noc1ZwzPZi2ji', - timestamp: '2021-03-16T17:49:35Z', - validation_pass: 4, - operations_hash: 'LLoZv71M2tWPD8mMjDhf7QcE5ZaHrtYCu4wFRhmPkBWvwCEMxacei', - fitness: [ - '01', - '000000000001635c' - ], - context: 'CoV8F9ro52txU4rGRGNXfQZgbE3pZVMygNV4UGjf6foKhBMb8MJC', - priority: 0, - proof_of_work_nonce: '6102c8089c360500', - signature: 'sigkj5nVVW6Zq7F9dEstPs5o2s1vTnUfwhsWi3UnmwrjYVwN9gfmXUBArzSLeXEUNQBM4KUYSg385i1ajR9TugSkM2swFzQp' - }, - metadata: { - protocol: 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA', - next_protocol: 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA', - test_chain_status: { - status: 'not_running' - }, - max_operations_ttl: 60, - max_operation_data_length: 16384, - max_block_header_length: 238, - max_operation_list_length: [ - { - max_size: 32768, - max_op: 32 - }, - { - max_size: 32768 - }, - { - max_size: 135168, - max_op: 132 - }, - { - max_size: 524288 - } - ], - baker: 'tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9', - level: { - level: 90973, - level_position: 90972, - cycle: 44, - cycle_position: 860, - voting_period: 22, - voting_period_position: 860, - expected_commitment: false - }, - level_info: { - level: 90973, - level_position: 90972, - cycle: 44, - cycle_position: 860, - expected_commitment: false - }, - voting_period_kind: 'proposal', - voting_period_info: { - voting_period: { - index: 22, - kind: 'proposal', - start_position: 90112, - }, - position: 860, - remaining: 3235 - }, - nonce_hash: null, - consumed_gas: '73225095', - deactivated: [ - - ], - balance_updates: [ - { - kind: 'contract', - contract: 'tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9', - change: '-512000000' - }, - { - kind: 'freezer', - category: 'deposits', - delegate: 'tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9', - cycle: 44, - change: '512000000' - }, - { - kind: 'freezer', - category: 'rewards', - delegate: 'tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9', - cycle: 44, - change: '38750000' - } - ] - }, - operations: [ - [ - { - protocol: 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA', - chain_id: 'NetXSgo1ZT2DRUG', - hash: 'onefqcSYA5FNfNW68ghLqQajxnM9cZ3vvdNaTDR1Mhv34LBAhaG', - branch: 'BMF7j462upRKLRWEdmFYTCMK3kuEfbQdR2Apo7noc1ZwzPZi2ji', - contents: [ - { - kind: 'transaction', - source: 'tz3beCZmQhd5Q1KNMZbiLCarXVo9aqpPHYe8', - fee: '2820', - counter: '184578', - gas_limit: '24760', - storage_limit: '1', - amount: '0', - destination: 'KT1LSuT4NgCQyZK1CWpss7FcJTTw68NDgPyR', - parameters: { - entrypoint: 'mint', - value: { - prim: 'Pair', - args: [ - { - string: 'tz3beCZmQhd5Q1KNMZbiLCarXVo9aqpPHYe8' - }, - { - int: '100' - } - ] - } - }, - metadata: { - balance_updates: [ - { - kind: 'contract', - contract: 'tz3beCZmQhd5Q1KNMZbiLCarXVo9aqpPHYe8', - change: '-2820' - }, - { - kind: 'freezer', - category: 'fees', - delegate: 'tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9', - cycle: 44, - change: '2820' - } - ], - operation_result: { - status: 'applied', - storage: [ - { - int: '33681' - }, - { - bytes: '0002a7f8d8600737ff279e4b9a4b1518157b653a314d' - }, - { - prim: 'False' - }, - { - int: '300' - } - ], - big_map_diff: [ - { - action: 'update', - big_map: '33681', - key_hash: 'expruAQuDQJ9ojnpqipCAbR23gBSSff7AxaMT9UBRjpZpiDHfJ6b6L', - key: { - bytes: '0002a7f8d8600737ff279e4b9a4b1518157b653a314d' - }, - value: { - prim: 'Pair', - args: [ - { - int: '102' - }, - [ - - ] - ] - } - } - ], - balance_updates: [ - { - kind: 'contract', - contract: 'tz3beCZmQhd5Q1KNMZbiLCarXVo9aqpPHYe8', - change: '-250' - } - ], - consumed_gas: '24660', - consumed_milligas: '24659284', - storage_size: '5335', - paid_storage_size_diff: '1', - lazy_storage_diff: [ - { - kind: 'big_map', - id: '33681', - diff: { - action: 'update', - updates: [ - { - key_hash: 'expruAQuDQJ9ojnpqipCAbR23gBSSff7AxaMT9UBRjpZpiDHfJ6b6L', - key: { - bytes: '0002a7f8d8600737ff279e4b9a4b1518157b653a314d' - }, - value: { - prim: 'Pair', - args: [ - { - int: '102' - }, - [ - - ] - ] - } - } - ] - } - } - ] - } - } - } - ], - signature: 'sigmCS2nZquXi3vXX8p7iwc6TVYC87FsGYkxSgEMiQESbM5dnnP4SGe4YHLRFXuRwcs1VaNLsiFWzVQVnpbNDfAhYhPgRnCG', - }, - ], - ], - }) - ); - - const response = await client.getBlock(); - - expect(httpBackend.createRequest.mock.calls[0][0]).toEqual({ - method: 'GET', - url: 'root/chains/test/blocks/head', - }); - const transaction = response.operations[0][0] - .contents[0] as OperationContentsAndResultTransaction; - expect(transaction.metadata.balance_updates[0].kind).toEqual('contract'); - expect(transaction.metadata.balance_updates[0].change).toEqual('-2820'); - expect(transaction.metadata.operation_result.status).toEqual('applied'); - expect(transaction.metadata.operation_result.consumed_gas).toEqual('24660'); - done(); - }); - }); - describe('getBakingRights', () => { it('query the right url and data', async done => { httpBackend.createRequest.mockResolvedValue([ @@ -1398,53 +1146,4 @@ describe('RpcClient test', () => { expect(rpcUrlCarthagenet).toEqual('https://api.tez.ie/rpc/carthagenet'); }); }); - - describe('getCurrentPeriod', () => { - it('query the right url and data', async done => { - const mockedResponse = { - "voting_period": { - "index": 87, - "kind": "proposal", - "start_position": 89088 - }, - "position": 902, - "remaining": 121 - }; - - httpBackend.createRequest.mockReturnValue(Promise.resolve(mockedResponse)); - const response = await client.getCurrentPeriod(); - expect(httpBackend.createRequest.mock.calls[0][0]).toEqual({ - method: 'GET', - url: 'root/chains/test/blocks/head/votes/current_period', - }); - expect(response).toEqual(mockedResponse); - - done(); - }); - }); - - - describe('getSuccessorPeriod', () => { - it('query the right url and data', async done => { - const mockedResponse = { - "voting_period": { - "index": 87, - "kind": "proposal", - "start_position": 89088 - }, - "position": 902, - "remaining": 121 - }; - - httpBackend.createRequest.mockReturnValue(Promise.resolve(mockedResponse)); - const response = await client.getSuccessorPeriod(); - expect(httpBackend.createRequest.mock.calls[0][0]).toEqual({ - method: 'GET', - url: 'root/chains/test/blocks/head/votes/successor_period', - }); - expect(response).toEqual(mockedResponse); - - done(); - }); - }); }); diff --git a/packages/taquito-signer/package-lock.json b/packages/taquito-signer/package-lock.json index 4f47355ff8..4c7374c93f 100644 --- a/packages/taquito-signer/package-lock.json +++ b/packages/taquito-signer/package-lock.json @@ -1,37 +1,38 @@ { "name": "@taquito/signer", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -64,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -244,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -268,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -349,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -632,12 +633,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -685,18 +694,18 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" } }, "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", "dev": true, "requires": { "@types/node": "*" @@ -751,9 +760,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -761,15 +770,15 @@ } }, "@types/libsodium-wrappers": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", - "integrity": "sha512-LisgKLlYQk19baQwjkBZZXdJL0KbeTpdEnrAfz5hQACbklCY0gVFnsKUyjfNWF1UQsCSjw93Sj5jSbiO8RPfdw==", + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", + "integrity": "sha512-vkDSj6enD3K0+Ep83wnoGUk+f7sqsO4alsqxxEZ8BcTJhFmcY4UehYH3rTf4M3JGHXNhdpGFDdMbWFMgyvw/fA==", "dev": true }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", "dev": true }, "@types/normalize-package-data": { @@ -794,9 +803,9 @@ } }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -806,18 +815,18 @@ "dev": true }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, "abab": { @@ -883,6 +892,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1054,9 +1071,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1112,6 +1129,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1313,63 +1359,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1407,19 +1396,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1475,9 +1451,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1578,16 +1554,10 @@ "sha.js": "^2.4.8" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1654,9 +1624,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1712,6 +1682,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1753,6 +1754,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1784,17 +1791,17 @@ } }, "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", + "bn.js": "^4.4.0", + "brorand": "^1.0.1", "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" + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "emittery": { @@ -1836,12 +1843,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1874,9 +1875,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1892,20 +1893,63 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "exit": { @@ -1956,69 +2000,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -2055,6 +2036,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -2091,23 +2083,46 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, @@ -2227,9 +2242,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2264,9 +2279,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2308,9 +2323,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2321,9 +2336,9 @@ "optional": true }, "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", "dev": true, "requires": { "minimist": "^1.2.5", @@ -2435,6 +2450,12 @@ "minimalistic-assert": "^1.0.1" } }, + "highlight.js": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.0.tgz", + "integrity": "sha512-EfrUGcQ63oLJbj0J0RI9ebX6TAITbsDBLbsjr881L/X5fMO9+oadKzEF21C7R3ULKG6Gv3uoab2HiqVJa/4+oA==", + "dev": true + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -2499,9 +2520,9 @@ } }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2566,12 +2587,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2596,32 +2628,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2632,13 +2683,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2686,9 +2734,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2713,9 +2761,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2803,6 +2851,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2814,27 +2885,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -3165,28 +3258,10 @@ "semver": "^7.3.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } @@ -3260,9 +3335,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3307,6 +3382,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -3340,9 +3428,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3404,16 +3492,16 @@ } }, "libsodium": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.9.tgz", - "integrity": "sha512-gfeADtR4D/CM0oRUviKBViMGXZDgnFdMKMzHsvBdqLBHd9ySi6EtYnmuhHVDDYgYpAO8eU8hEY+F8vIUAPh08A==" + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz", + "integrity": "sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ==" }, "libsodium-wrappers": { - "version": "0.7.9", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.9.tgz", - "integrity": "sha512-9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==", + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz", + "integrity": "sha512-PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg==", "requires": { - "libsodium": "^0.7.0" + "libsodium": "0.7.8" } }, "lines-and-columns": { @@ -3423,9 +3511,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3443,12 +3531,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3458,8 +3589,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3483,6 +3613,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3526,29 +3662,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "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" - } - }, "lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -3603,9 +3719,9 @@ } }, "marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.4.tgz", + "integrity": "sha512-6x5TFGCTKSQBLTZtOburGxCxFEBJEGYVLwCMTBCxzvyuisGcC20UNzDSJhCr/cJ/Kmh6ulfJm10g6WWEAJ3kvg==", "dev": true }, "md5.js": { @@ -3635,18 +3751,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3688,13 +3804,27 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "ms": { "version": "2.1.2", @@ -3764,9 +3894,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3778,30 +3908,17 @@ "which": "^2.0.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", "dev": true, "optional": true } @@ -3826,12 +3943,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -3866,43 +3991,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3950,15 +4038,6 @@ "mimic-fn": "^2.1.0" } }, - "onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } - }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -4028,9 +4107,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -4123,6 +4202,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -4145,9 +4230,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -4169,16 +4254,17 @@ "dev": true }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -4271,14 +4357,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "readable-stream": { @@ -4329,48 +4407,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4399,24 +4443,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4437,18 +4463,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4535,12 +4549,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4560,6 +4583,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4583,6 +4618,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4593,14 +4634,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4616,14 +4649,6 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "safe-buffer": { @@ -4702,34 +4727,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4753,21 +4750,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4788,12 +4770,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4824,36 +4800,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4863,15 +4809,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4922,12 +4859,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4973,16 +4904,6 @@ "dev": true, "optional": true }, - "shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", - "dev": true, - "requires": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" - } - }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -5055,69 +4976,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5129,19 +4987,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -5164,6 +5009,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -5194,13 +5068,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -5214,9 +5091,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -5246,9 +5123,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5324,63 +5201,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5575,12 +5395,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5595,9 +5414,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5606,47 +5425,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5654,9 +5466,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -5727,15 +5539,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5744,12 +5547,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5766,34 +5563,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5805,14 +5600,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5846,9 +5633,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5860,34 +5647,34 @@ } }, "typedoc": { - "version": "0.20.32", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.32.tgz", - "integrity": "sha512-GSopd/tiqoKE3fEdvhoaEpR9yrEPsR9tknAjkoeSPL6p1Rq5aVsKxBhhF6cwoDJ7oWjpvnm8vs0rQN0BxEHuWQ==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.19.2.tgz", + "integrity": "sha512-oDEg1BLEzi1qvgdQXc658EYgJ5qJLVSeZ0hQ57Eq4JXy6Vj2VX4RVo18qYxRWz75ifAaYuYNBUCnbhjd37TfOg==", "dev": true, "requires": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", + "fs-extra": "^9.0.1", + "handlebars": "^4.7.6", + "highlight.js": "^10.2.0", + "lodash": "^4.17.20", "lunr": "^2.3.9", - "marked": "^2.0.1", + "marked": "^1.1.1", "minimatch": "^3.0.0", "progress": "^2.0.3", + "semver": "^7.3.2", "shelljs": "^0.8.4", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.9" + "typedoc-default-themes": "^0.11.4" }, "dependencies": { "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "universalify": "^1.0.0" } }, "jsonfile": { @@ -5898,38 +5685,46 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } }, "typedoc-default-themes": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.9.tgz", - "integrity": "sha512-Jd5fYTiqzinZdoIY382W7tQXTwAzWRdg8KbHfaxmb78m1/3jL9riXtk23oBOKwhi8GFVykCOdPzEJKY87/D0LQ==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.11.4.tgz", + "integrity": "sha512-Y4Lf+qIb9NTydrexlazAM46SSLrmrQRqWiD52593g53SsmUFioAsMWt8m834J6qsp+7wHRjxCXSZeiiW5cMUdw==", "dev": true }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-EWhx3fHy3M9JbaeTnO+rEqzCe1wtyQClv6q3YWq0voOj4E+bMZBErVS1GAHPDiRGONYq34M1/d8KuQMgvi6Gjw==", + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.6.tgz", + "integrity": "sha512-oASI1FOJ7BBFkSCNDZ446EgkSuHkOZBuqRFrwXIKWCoXw8ZXQETooTQjkAcBS03Acab7ubCKsXnwuV2svy061g==", "dev": true, "optional": true }, @@ -5943,14 +5738,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5996,19 +5783,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -6045,15 +5826,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -6066,16 +5838,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -6112,12 +5883,6 @@ "extsprintf": "^1.2.0" } }, - "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -6193,9 +5958,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -6203,6 +5968,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -6217,6 +5983,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -6233,9 +6005,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -6262,9 +6034,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -6280,15 +6052,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -6314,25 +6080,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-signer/package.json b/packages/taquito-signer/package.json index 379ea13ca7..a21bd825b9 100644 --- a/packages/taquito-signer/package.json +++ b/packages/taquito-signer/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/signer", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "Provide signing functionality to be with taquito", "keywords": [ "tezos", @@ -33,9 +33,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -67,26 +66,26 @@ ] }, "dependencies": { - "@taquito/taquito": "^9.0.0", - "@taquito/utils": "^9.0.0", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1", "bip39": "^3.0.2", - "elliptic": "^6.5.4", + "elliptic": "^6.5.3", "libsodium-wrappers": "^0.7.8", "pbkdf2": "^3.1.1", "typedarray-to-buffer": "^3.1.5" }, "devDependencies": { "@types/elliptic": "^6.4.12", - "@types/jest": "^26.0.16", + "@types/jest": "^26.0.14", "@types/libsodium-wrappers": "^0.7.8", - "@types/node": "^14.14.10", + "@types/node": "^14.11.5", "@types/pbkdf2": "^3.1.0", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -98,13 +97,13 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.32", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-signer/signature.json b/packages/taquito-signer/signature.json index f0e185e372..2a1c60d523 100644 --- a/packages/taquito-signer/signature.json +++ b/packages/taquito-signer/signature.json @@ -22,7 +22,7 @@ }, { "path": "dist/lib/taquito-signer.js", - "sha512": "71777e543602dbb3ef170f337513fdf9ffe9624b452979a72e0dc0896ea40d6a5953cbe876617df576de78902aa8d3f583346ab0ab78b0651c92206a16a51651" + "sha512": "8393ae84654047172e7425c38a657ea1947e6ef7fdc61cd03cf2dbdce23a47f3cae7db277b067c2acaab1036be53a3729f2949daea5f289b7cd500e1113ae2ad" }, { "path": "dist/taquito-signer.umd.js", @@ -42,15 +42,15 @@ }, { "path": "dist/taquito-signer.es5.js.map", - "sha512": "caafc5f73db0325b8ccc403c5ddb6d258b1ef5b399d9e6c44107e12400ef5f328bc6e6c10c2a1cb0612e5e768ec222ef471f3c59561ab25744fe8587b1b017fb" + "sha512": "1e2ce95b12e7c826b4ab76b923ea68be2529d481e3e2f7a66166e2ef5d18f69295d042de108e504059b010a0e3bff1e70b49722971850cd6f20c74479c87a295" }, { "path": "dist/lib/taquito-signer.js.map", - "sha512": "fcb802926ae055cab052b1111a28398ccf3986fd04654c18cc48490a2a0ff057e5cc09aa324f63b78caf4cdae43bb4c81b1408d1704ed0ff389c9e94487aa3db" + "sha512": "e0f29f97ad5aa7793affff2ac045017324989c68c5b91d0f9e92c31b00fe0bd0df96e1d06f6f59c17225a92c314d5868f2a8669da89d8a89e0c845bc1745c513" }, { "path": "dist/taquito-signer.umd.js.map", - "sha512": "8cadd1bb56f1401f294ceca9f46e08a225a857e2de4c97aa8f67ea94e8d3231424e91be4aa14f1929ca309ff32dafcb62c932350a85ba1b28cb0dfa241a8c159" + "sha512": "79d0e8ec713032eb50322836f1703d62ebd23824de3eec47a794bbd0d50d36a8ba552d3685cd0b87f74d006f2bf8d7bfaf67cebd5ca19ee60945c172be3f37f5" }, { "path": "dist/types/ec-key.d.ts", @@ -103,7 +103,7 @@ "typings", "version" ], - "sha512": "c065e36b6e31129bdd690ad2a8d591c6f6b70326f925e29b350072221ea842842196a6774b804929f0df314c7323a37d8dbcf1356b91d8a00037d1139bf03fa4" + "sha512": "b533bad3d7c3c104d0465c40ee21aad97a44ed0d9436b1042041d42821a5659507149912d8de930025eda77a646a343a6b2f7bf0509281ba26e3e1747f18c9c9" } }, { @@ -111,7 +111,7 @@ "value": { "packageJson": { "name": "@taquito/signer", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "Provide signing functionality to be with taquito", "keywords": [ "tezos", @@ -177,8 +177,8 @@ ] }, "dependencies": { - "@taquito/taquito": "^8.0.4-beta.0", - "@taquito/utils": "^8.0.4-beta.0", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1", "bip39": "^3.0.2", "elliptic": "^6.5.3", @@ -188,15 +188,15 @@ }, "devDependencies": { "@types/elliptic": "^6.4.12", - "@types/jest": "^26.0.16", + "@types/jest": "^26.0.14", "@types/libsodium-wrappers": "^0.7.8", - "@types/node": "^14.14.10", + "@types/node": "^14.11.5", "@types/pbkdf2": "^3.1.0", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -208,18 +208,18 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.23", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UGCRAD9Qy5GYHsngAANIAQAJzDpq2JbtqK/6Dmu+KlJu3B\n8oIpUJf5nY429f6l8uMEJrh4Ajm806O9czXzL6Wy24M1wfUhCnXXTHAY0h/TWeRg\nwDO5E3dxKpiqZw3bmG+bQnhswxYrzJbOfeRwt+D/edW3R63T3p0pqxlIxjlwrMIs\nEtflcp/wFWDeKIhtOPomKO8e7JKAu7REu7E7o6XmREs0X2LkOe9n7cDbqcevqDvn\nbh+L+m5XFulP3u51t7zfU5PI0bUNhrJBXTFYR7897CQYXAgW0o6IqLDp9E7C4LMA\nv0yKmQNeBi/lyymTNPDdA+AR9BDJkEMrzEs2qd/ADKe5H0c28Q8hWOkQ5HXjO1qb\nOay4TJKr+RpFtWmrXHWUjPNMBBkkSpcpsq1vkKDdMrnjy5RIp9t3u3uH4dBpnYcy\nWlEZsThv60Gy5cLK9D9bBjsg42YQj473nvCo6mOsMuSDkJ/TXVvGdbgO1CqVyEb2\n7nps0QxxO8rQqfBSiW5H5yF3IO+CK6icZORQuyYoMbT4Hnurk36QCYg8a55QLicx\nWKKomTacuVsLDqB8JhWhN0ubnp6tXklPGewOQpCaIN4aGjWo8lPhxqsW/7nMYvv8\njo7149vrfl37+I5nWpWcKHBSrjQEaDXAsBoZEtoOOpZERcocfo1V338T4hjt4ptq\ndURtpCRMfphoodkFb3p1\n=pHMQ\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcStCRAD9Qy5GYHsngAAlWUQAG82O6RkDSgkUMOzy1iqjm08\nppURvgf3kU5XZB26Q9mZKoK871821/ZAXxId3PnVqMzqgljwVM0XG4JYDFkKKorQ\nsFfoHGe8Se9vcL3AxLVSp78qmCPYyqoO3Eu/+ZeDJX36pCYdzUCN/HiU2WmYUteN\nyBsMUMRb2wST3dMVq6uDJhK0G1UY18s3LQQyv0b1x/Q11g2upyZPls460B8C9Z/T\n7idDb2hTJeTkSTVm1XHtK4WowXULEcXpHKm0N+Qsbc/3Y/HpzJo+I8Qeb6MfS6QW\nYuyqGbWGxUocX+W2IqMAHgpTn7WnovgrN3DV25gj2DpAnK4UxtfftLjNOMajXQfs\nRTog7SHr5T+uaNiq0dBzccX4E6vvw1loQblilZW7Ezacrl37/JzhLjxnRDUb5PZ7\nWyYaSEsgwhZgtIbGXOuU/YRqLExFgW/G0DweFGJlfWhLnGFRugf564OJbWVh54Yg\n87M/DRnjeU+mk2TzJLt45u0QuXr205XsZWry1Jges62UAJlfKw4+NL3F/y9uRFbc\nCI70dvNL1DXt+SoHNOTkPPhIsduOqYPDhKcMAUIckiKSXFoWBEkOhoT4OpfRjYAu\nvCc9tfpjLvLHeWl0UjoxdfgrecqapqasSon3Uvbbmms+UZA5/n8s/fl12TZGjdoj\nqj+UkBCXlGZlRMtrr4qH\n=SjRt\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-signer/src/taquito-signer.ts b/packages/taquito-signer/src/taquito-signer.ts index e789069913..0aa22e1018 100644 --- a/packages/taquito-signer/src/taquito-signer.ts +++ b/packages/taquito-signer/src/taquito-signer.ts @@ -1,7 +1,3 @@ -/** - * @packageDocumentation - * @module @taquito/signer - */ import sodium from 'libsodium-wrappers'; import { hex2buf, mergebuf, b58cencode, prefix } from '@taquito/utils'; import toBuffer from 'typedarray-to-buffer'; @@ -11,7 +7,6 @@ import pbkdf2 from 'pbkdf2'; import { mnemonicToSeedSync } from 'bip39'; export * from './import-key'; -export { VERSION } from './version'; /** * @description A local implementation of the signer. Will represent a Tezos account and be able to produce signature in its behalf diff --git a/packages/taquito-signer/src/version.ts b/packages/taquito-signer/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-signer/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-tezbridge-signer/package-lock.json b/packages/taquito-tezbridge-signer/package-lock.json index a190df19e2..85e6c5eb37 100644 --- a/packages/taquito-tezbridge-signer/package-lock.json +++ b/packages/taquito-tezbridge-signer/package-lock.json @@ -1,37 +1,38 @@ { "name": "@taquito/tezbridge-signer", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -64,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -244,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -268,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -349,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -632,12 +633,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -685,9 +694,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -733,9 +742,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -743,9 +752,9 @@ } }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", "dev": true }, "@types/normalize-package-data": { @@ -761,9 +770,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -782,18 +791,18 @@ } }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, "abab": { @@ -859,6 +868,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1024,9 +1041,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1082,6 +1099,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1241,63 +1287,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1335,19 +1324,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1403,9 +1379,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1433,6 +1409,14 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==", + "dev": true + } } }, "copy-descriptor": { @@ -1473,16 +1457,10 @@ "request": "^2.88.2" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1549,9 +1527,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1607,6 +1585,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1648,6 +1657,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1717,12 +1732,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1755,9 +1764,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1773,20 +1782,63 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "exit": { @@ -1837,69 +1889,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1936,6 +1925,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -1972,24 +1972,47 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, "fast-deep-equal": { @@ -2108,9 +2131,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2145,9 +2168,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2189,9 +2212,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2338,9 +2361,9 @@ } }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2406,12 +2429,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2436,32 +2470,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2472,13 +2525,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2526,9 +2576,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2553,9 +2603,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2643,6 +2693,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2654,27 +2727,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -3006,13 +3101,10 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true } } }, @@ -3085,9 +3177,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3132,6 +3224,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -3165,9 +3270,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3235,9 +3340,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3255,12 +3360,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3270,8 +3418,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3295,6 +3442,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3338,29 +3491,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -3425,18 +3558,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3468,13 +3601,27 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "ms": { "version": "2.1.2", @@ -3538,9 +3685,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3553,14 +3700,18 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true, + "optional": true } } }, @@ -3583,12 +3734,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -3623,43 +3782,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3776,9 +3898,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3859,6 +3981,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -3881,9 +4009,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -3899,16 +4027,17 @@ } }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -3993,14 +4122,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "rechoir": { @@ -4041,48 +4162,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4111,24 +4198,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4149,18 +4218,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4238,12 +4295,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4263,6 +4329,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4286,6 +4364,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4296,14 +4380,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4319,20 +4395,12 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "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==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-regex": { @@ -4406,34 +4474,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4457,21 +4497,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4492,12 +4517,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4528,36 +4547,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4567,15 +4556,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4626,12 +4606,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4740,69 +4714,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4814,19 +4725,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -4849,6 +4747,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -4879,13 +4806,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -4899,9 +4829,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -4931,9 +4861,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5009,63 +4939,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5252,12 +5125,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5272,9 +5144,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5283,32 +5155,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5316,9 +5196,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -5389,15 +5269,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5406,12 +5277,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5428,34 +5293,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5467,14 +5330,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5508,9 +5363,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5522,9 +5377,9 @@ } }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "union-value": { @@ -5537,14 +5392,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5590,19 +5437,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -5634,15 +5475,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5655,16 +5487,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -5776,9 +5607,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -5786,6 +5617,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -5800,6 +5632,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -5810,9 +5648,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -5839,9 +5677,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -5857,15 +5695,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -5891,25 +5723,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-tezbridge-signer/package.json b/packages/taquito-tezbridge-signer/package.json index 586f105581..2429daed21 100644 --- a/packages/taquito-tezbridge-signer/package.json +++ b/packages/taquito-tezbridge-signer/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/tezbridge-signer", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "Tezbridge signer provider", "keywords": [ "tezos", @@ -30,9 +30,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -61,19 +60,19 @@ ] }, "dependencies": { - "@taquito/utils": "^9.0.0", + "@taquito/utils": "^7.1.0-preview.1", "typedarray-to-buffer": "^3.1.5" }, "devDependencies": { - "@taquito/taquito": "^9.0.0", - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", - "@types/ws": "^7.4.0", + "@taquito/taquito": "^7.1.0-preview.1", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", + "@types/ws": "^7.2.7", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -85,12 +84,12 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-tezbridge-signer/signature.json b/packages/taquito-tezbridge-signer/signature.json index 31640c6870..4243af161b 100644 --- a/packages/taquito-tezbridge-signer/signature.json +++ b/packages/taquito-tezbridge-signer/signature.json @@ -10,7 +10,7 @@ }, { "path": "dist/lib/taquito-tezbridge-signer.js", - "sha512": "f5877eefd0368903912b88a032d07abf2aec092b10778a0568f6a0a756cf4f4647006f12dda7c42437ebe7324afd407311c9004e13b74942f1518ee119e91abf" + "sha512": "51619498bf0f0708904aa7edf787b26086af08393d0d8f3d438f0c8ded42350e7caf26f091d71c7b293b96c0f14e05baec1948708641dad7f589edf5e87a4556" }, { "path": "dist/taquito-tezbridge-signer.umd.js", @@ -18,15 +18,15 @@ }, { "path": "dist/taquito-tezbridge-signer.es5.js.map", - "sha512": "afdd2a60126c6a70cd3511e3208c8a3ba910b945bdb1bedb40f8a012760d82f3a150a00ecba5f56084724e63323a623f005c6e734db32395d1cb3274b3d1c1ca" + "sha512": "84052a722dbb6776f9ba9065e1fcd1b0f79d751a7d98ac07a8827d2d43d4cebb8ae4b07c957e35dbbf37e7fc1a017f3beaa9a7a6d7d11ebde5ea80562b1f866f" }, { "path": "dist/lib/taquito-tezbridge-signer.js.map", - "sha512": "63336cfa57005f7039359b01fa048e60e43d32be6f44b983303aaf71312b7a6ea94d648b709427f7bce56f22f88a9128bda57616e02012e5c0d77f8a150932bd" + "sha512": "18b24ad31e54e3c4b3b7cb7614bc5231a39d2756147506a7ea490362965112cb5c670b5ec9eeade2a17aa12364a188b32d93be15cc46c6c9849f45617ab711d1" }, { "path": "dist/taquito-tezbridge-signer.umd.js.map", - "sha512": "aea9c02fe176231624b492fb766886df6506654508087355dc9ad0e5cf00fe8fb3541f072bdab202b006e1483070328cd10b7edc3c8512befdc13de8444593bd" + "sha512": "131419d4793997e929a4298c3ea283d243f995253f0360896d9700475061813e2c6acde01c856003ffc1ee4d63aca556eb52fb559e3e94e6e76f95fa0cf78bae" }, { "path": "dist/types/taquito-tezbridge-signer.d.ts", @@ -67,7 +67,7 @@ "typings", "version" ], - "sha512": "0289d91fc688f6a803905592cf8e20c8d83d2883ae9feb65ad9bb720c5ed4ee57d92f090616050ec39900d5de6b3e0a230bc57c1455751cd1b5cfc1a110d9e88" + "sha512": "15c6572c10619b0969e54f77643fd5a99cd9bd712ce923a928c7eea395ce56c1e8debd9c5d70a65f72e148aca3483f36a7affe087e555ac484a7f0ae40f4c27a" } }, { @@ -75,7 +75,7 @@ "value": { "packageJson": { "name": "@taquito/tezbridge-signer", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "Tezbridge signer provider", "keywords": [ "tezos", @@ -135,19 +135,19 @@ ] }, "dependencies": { - "@taquito/utils": "^8.0.4-beta.0", + "@taquito/utils": "^7.1.0-preview.1", "typedarray-to-buffer": "^3.1.5" }, "devDependencies": { - "@taquito/taquito": "^8.0.4-beta.0", - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", - "@types/ws": "^7.4.0", + "@taquito/taquito": "^7.1.0-preview.1", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", + "@types/ws": "^7.2.7", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -159,17 +159,17 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UHCRAD9Qy5GYHsngAAjB4QAAM5YnLTliqAOXeLMxF4f7dm\nikFWCecICRwE+RI6jQOIaP3Nvfr31sQk6WMS/BtQFogcTk3oV81CuooP2fggI3Ef\n7r5EDg+1GbtuMsn4hE0Sv/DXfHDoYH30JTrRW11bIyVpL1QggYAl/d5KAh+XEYu9\nFW5as9YixaNzxaDD/LdPLZa09vM8IiayDcMDZh6vEI8DyNFW5zrZg2A2HS9l5PI6\nwFLirK3F5AosunF9usfYpFnjMiGm4LF+zsrYrnCNy/qEGfdMPtVD5Smi/IsCSAgV\n1EAuV3v+SzVj7nzkvJyHmWOcJMJNUQKlEoH48s0XCT5OXFbzp2a+s9g8ULXOiWhb\nhkdljXn7fnrtpHePlF+fanBrxjEsKw+o4eAoxyALWxdtppyGZ7csmR2FdtZLi6Pv\nalhI/KwR8EwhVLGUSBklzwILyv3Z+pwicyukw0Agxz5fiaWI0O4SyovfBXM1YCNN\nA8xE4g96PhC0BrSxOf/olD9fZPzEVvvim9EKDPcJntUDTOOUgqb2XMQhVkWsKpWE\nuy0V9D3UOUNW5wER5tQg6GUxE6y+LVYQ5PJB28DV7BNGO3qQKhP6UNfm74Z8scPx\nIywH4f+fwuBbcoGiQMcgMZmerdGXyc9mWR2/f51Ic26hEhOm8X0cuTU9tF5ta1AK\nXCjk5pC9l95fBqdwczyr\n=Yy31\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSuCRAD9Qy5GYHsngAAx+0QAI3PDJQZ0hVvuXYmmTEdXyP/\nGOLcUjyYRI4emHocQpiGFPUz6B/2aP7uy7Luv2yvROk8BTcNOsXp4ZrQAM2apSFn\ng2HG03VRaHmaOqsFz/XSu3MY1J8HstffuyUhJ0ImMwvwjDA1D3TcpfZXPU3AYpif\nVfXS9FhL+t+Fpb+X1txnTwGdaQhAC3l9HTC2xMR51LjHiOwuU67/JgiPudUGzdxR\n39k+KdChV5ch4QEMl89RHT0L/qzp5LHnF8QhTM1uRZzCZ3PlvpWQD9rxNdECuZS6\nybIAaEAxcV4HMO9oUK52lYjHHcXTSzjO9Bvx7YME4ZtWFeXKofXPaVsNU9A6jSj4\nEj6Y5i8FvhjE2zNOgf1ha63X6qOXMtIQbx4QgN8I3Pa7PiyohAkrKA3o36A/HDN2\nnC/QOXo75hZh2JaaoQZwaYTdO4CUnbSh3QMRWNf5PRzM+OkIXXu/7c6TvXxx9Aah\nYCEYcxZc3DDqZ+S8vDzOEu785Ja/0q48JEATqnTnJ65/i8PuX1Zrxop1pWmvEa3p\nwvxtxIC3C52hzmjTMdBbBDOghc6EXDXKanv6vxuESoSI3o8VjRl9c3GAKKJqi8Au\npp/jdwxHflZ6sTf1onp2D+pRbjWwkyhVl2isnYhh/1rKgebM8WTnZxXaUvW2HbPO\nxR6Y6a7R9VNHb2UAjajz\n=6QAd\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-tezbridge-signer/src/taquito-tezbridge-signer.ts b/packages/taquito-tezbridge-signer/src/taquito-tezbridge-signer.ts index 44b9868c58..bcd7bf2510 100644 --- a/packages/taquito-tezbridge-signer/src/taquito-tezbridge-signer.ts +++ b/packages/taquito-tezbridge-signer/src/taquito-tezbridge-signer.ts @@ -1,13 +1,8 @@ -/** - * @packageDocumentation - * @module @taquito/tezbridge-signer - */ import { b58cdecode, b58cencode, buf2hex, prefix, isValidPrefix } from '@taquito/utils'; import toBuffer from 'typedarray-to-buffer'; declare var tezbridge: any; -export { VERSION } from './version'; export class TezBridgeSigner { constructor() { if (typeof tezbridge === 'undefined') { diff --git a/packages/taquito-tezbridge-signer/src/version.ts b/packages/taquito-tezbridge-signer/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-tezbridge-signer/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-tezbridge-wallet/package-lock.json b/packages/taquito-tezbridge-wallet/package-lock.json index b8d5fb2880..9927c8243c 100644 --- a/packages/taquito-tezbridge-wallet/package-lock.json +++ b/packages/taquito-tezbridge-wallet/package-lock.json @@ -1,37 +1,38 @@ { "name": "@taquito/tezbridge-wallet", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -64,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -244,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -268,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -349,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -632,12 +633,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -685,9 +694,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -733,9 +742,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -743,9 +752,9 @@ } }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", "dev": true }, "@types/normalize-package-data": { @@ -761,9 +770,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -782,18 +791,18 @@ } }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, "abab": { @@ -859,6 +868,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1024,9 +1041,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1082,6 +1099,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1241,63 +1287,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1335,19 +1324,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1403,9 +1379,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1433,6 +1409,14 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==", + "dev": true + } } }, "copy-descriptor": { @@ -1473,16 +1457,10 @@ "request": "^2.88.2" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1549,9 +1527,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1607,6 +1585,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1648,6 +1657,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1717,12 +1732,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1755,9 +1764,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1773,20 +1782,63 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "exit": { @@ -1837,69 +1889,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1936,6 +1925,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -1972,24 +1972,47 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, "fast-deep-equal": { @@ -2108,9 +2131,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2145,9 +2168,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2189,9 +2212,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2338,9 +2361,9 @@ } }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2406,12 +2429,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2436,32 +2470,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2472,13 +2525,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2526,9 +2576,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2554,9 +2604,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2644,6 +2694,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2655,27 +2728,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -3007,13 +3102,10 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true } } }, @@ -3086,9 +3178,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3133,6 +3225,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -3166,9 +3271,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3236,9 +3341,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3256,12 +3361,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3271,8 +3419,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3296,6 +3443,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3339,29 +3492,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -3426,18 +3559,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3469,13 +3602,27 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "ms": { "version": "2.1.2", @@ -3539,9 +3686,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3554,14 +3701,18 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true, + "optional": true } } }, @@ -3584,12 +3735,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -3624,43 +3783,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3777,9 +3899,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -3860,6 +3982,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -3882,9 +4010,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -3900,16 +4028,17 @@ } }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -3994,14 +4123,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "rechoir": { @@ -4042,48 +4163,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4112,24 +4199,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4150,18 +4219,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4239,12 +4296,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4264,6 +4330,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4287,6 +4365,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4297,14 +4381,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4320,20 +4396,12 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "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==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-regex": { @@ -4407,34 +4475,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4458,21 +4498,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4493,12 +4518,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4529,36 +4548,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4568,15 +4557,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4627,12 +4607,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4741,69 +4715,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -4815,19 +4726,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -4850,6 +4748,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -4880,13 +4807,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -4900,9 +4830,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -4932,9 +4862,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5010,63 +4940,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5253,12 +5126,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5273,9 +5145,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5284,32 +5156,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5317,9 +5197,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -5390,15 +5270,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5407,12 +5278,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5429,34 +5294,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5468,14 +5331,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5509,9 +5364,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5524,9 +5379,9 @@ } }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "union-value": { @@ -5539,14 +5394,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5592,19 +5439,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -5636,15 +5477,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5657,16 +5489,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -5778,9 +5609,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -5788,6 +5619,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -5802,6 +5634,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -5812,9 +5650,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -5841,9 +5679,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -5859,15 +5697,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -5893,25 +5725,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-tezbridge-wallet/package.json b/packages/taquito-tezbridge-wallet/package.json index 80fa6185e9..4de95264a4 100644 --- a/packages/taquito-tezbridge-wallet/package.json +++ b/packages/taquito-tezbridge-wallet/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/tezbridge-wallet", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "Tezbridge wallet provider", "keywords": [ "tezos", @@ -30,9 +30,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -61,17 +60,17 @@ ] }, "dependencies": { - "@taquito/taquito": "^9.0.0" + "@taquito/taquito": "^7.1.0-preview.1" }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", - "@types/ws": "^7.4.0", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", + "@types/ws": "^7.2.7", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -83,12 +82,12 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-tezbridge-wallet/signature.json b/packages/taquito-tezbridge-wallet/signature.json index 47f7d08f03..b2beb96a00 100644 --- a/packages/taquito-tezbridge-wallet/signature.json +++ b/packages/taquito-tezbridge-wallet/signature.json @@ -6,31 +6,31 @@ "files": [ { "path": "dist/taquito-tezbridge-wallet.es5.js", - "sha512": "3177a7dd4ffe4c4e6a3b273b9edc311f80d91b9dc636e6dd229f62cfcd0b7dd7100a711eca03a62cae4108119dae5dfe200d934498d3753b9a906f2752730513" + "sha512": "0ba6c0f1f2e43774ee8a3109d452acc38ceaf4bd88ca41849cb5e0ae16ef56924a0a3f1adf6244176ee9868461fb61e7fa1cfe9b3446f3fb6bef192534492c6b" }, { "path": "dist/lib/taquito-tezbridge-wallet.js", - "sha512": "f2d998f1a253f6f0661f46c621d8e66bda8e339620daaf4b7d1e6f225daf2f19fb31eb0ce9c4986c5e3895cb2ee704a931d38fd063735579b3cff3552c2f79a6" + "sha512": "d18d49ee3da6527e785570611a7ec1e7cde2bee54c67ac0bf289e56bb0189df0602c0948c69065201b60324c84ca183dd7de2eb3e9580181c594782d2795f6f8" }, { "path": "dist/taquito-tezbridge-wallet.umd.js", - "sha512": "698db3a02d793755fb7515cb8d36b4f6df071115a2ba36312dfec0a8692ae1822101dbb7c3a43e0940f912d88a2b097b4db7fafbe3f0cf99764292241634de22" + "sha512": "e67cf2bd9e68a129c0c710476d965945dc382d4ea06e0484bd286645e21a65db7c5482a1236f6ac23de3b4866737cfde2d3a067cfb503706243a00d092e3b2d1" }, { "path": "dist/taquito-tezbridge-wallet.es5.js.map", - "sha512": "02b0591280a4098658ec71d09c1dec670d50f084cf7774aa7d2992a2681ec66440d48d1175b4b09b80c9487e7119d3d760ee04477b703edf6b462321797f1885" + "sha512": "dfdc535a27567a312d9957233265ad718c3c254a32dfc171fa054b200b7e30dde86d58646128d458f8587151575933914821aab07347f885768488edf86a96b5" }, { "path": "dist/lib/taquito-tezbridge-wallet.js.map", - "sha512": "18f7ad22bfdbbb4090e8c156da42f2223f2d11eefd8131d4cb58847244f5fb35a4ac8652c69f76dfd542c4be55ff071441c7c86babad8453738087cb154b573e" + "sha512": "ab0f072edc707e99ad2115156791555280e6b6489d00d4aafda3318b6f83f14923cacae6f6baafe828aa099aa46c1bd73b90008c28fa684b1f8faad7eff321d3" }, { "path": "dist/taquito-tezbridge-wallet.umd.js.map", - "sha512": "fa0196e3c4c26840253a2cd15bb6c968bc0fe48cb4087312f64e3b0ca81e5d03d0ebd17f931ebf29a6710c7a42e8605ba6c1636dd80849b9fbe91a6ba509d608" + "sha512": "e1ba4c9b3c006c891fb1c2aee36569fe68b6ed3c0786665398e0458c08b265b24d95afca6ec754efa69d209e704d18869002a7d192f184bbc364d1b6c41ec7a9" }, { "path": "dist/types/taquito-tezbridge-wallet.d.ts", - "sha512": "f04ad4fb5ab87c8856e3a6e97644224e7267fac78590245b639404290401c6b57960dc7d9e7fab5e3b367af1c7c091f6153f9fce8ebeab8d367f6639e711eb0a" + "sha512": "3f7a10fd9e10aed789c5021fc8042c50a8f851ec78808a410ae2f8632d0373dd55cda1def50f8b378a50b4eb4f4809ccf9ab37d6c26e0aa242e0865cdf6d4691" } ] } @@ -67,7 +67,7 @@ "typings", "version" ], - "sha512": "16fe9a12b5a2fc43152e96e79bc6c6a8d54b7d76e9a1c4bab852de3d49cb47084b1a4a3330bad09d4c9bacdfda7bc3f44174b16afc30013b8e40dabe7f1dabe6" + "sha512": "ea1a64dfbabb8f7cba1036a4489e6b2655722244a514c4a8df3c5744b9a96f412bf1155e5820097e72ad8cba1a292073a8c2542d18ed20e75d9ee786acbc3514" } }, { @@ -75,7 +75,7 @@ "value": { "packageJson": { "name": "@taquito/tezbridge-wallet", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "Tezbridge wallet provider", "keywords": [ "tezos", @@ -135,17 +135,17 @@ ] }, "dependencies": { - "@taquito/taquito": "^8.0.4-beta.0" + "@taquito/taquito": "^7.1.0-preview.1" }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", - "@types/ws": "^7.4.0", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", + "@types/ws": "^7.2.7", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -157,17 +157,17 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5" + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UICRAD9Qy5GYHsngAAP1oQAE7ntmkg2OxKav7HYTRzrxH7\njX5Qw4XqJVv3uDIf8hcWmQbgaU/3lAD7bHmnxN74lwYPi/TwkgANc3a/m+RXfDLV\nWdA9/uje/vYVg37v0YqAuIgVtIaAcb0G9cg4ih/B/12lglc88OrsVcAJAAt/W3to\nRiocTK9CG4T0qxfJb1FfcN2styY/WeAvSznUPms6mR5fjtBCli0ud4cNjFnqAL1y\n+wzzb4GGu4BCYpArF5ZEQ5psU6d8Sb+mlBPD4iMKyt/INrmv2zZxpY10LRNOXKb4\nuVWouvTlmvpayfWQimEEhHMeMNXKWNsdDuSalJVIFBBdQI46WJKlqPgAu/NU3fQb\nGGKmm/yDUC/kJcYaNWON2tuxKk48rTWEg9gMuTY6uBYdIWcTQ/6i5y5kCJUymruQ\noINZkfRTEnjkPXPb2RAitQfn+a/D7IUcZvNe4XtEpgc8MXERrk3bXt3KM5iEeu46\n6gKWcIQqRyl44LGx1prh9Erc1/V/T3C5/bPJyNgGjQl77nENBP955gd/ikW3kPRs\nWfoSaO7oj/hIdT0GibaIwdEUt0+jsDh1yFAV+t4/sJ05ouOeFE8eIwPXf3dJ4p6c\n/RS0h5YQD8eE97j4Oaj/OiCWawIbcU7hkDH6KbYvf4/NHciyG9kynUMvnWAtGIwl\nfVbkrewNFRAul0IXgP6S\n=678h\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSvCRAD9Qy5GYHsngAAtRAQAIChdr2uTPWVWTPqioBt1Fun\niQBuRYE1eaCxY2ggoY5DJ9p0qQh9fWdXdkKh5wwdcyWMzud6Q3+MxJIxIkOUDoFO\nkgaO6WQDGMdKifEVkmqxNyRJjDxtSezY6HnCx6Jat/GIeLeppdxDpgJ6naojWhK1\n1+D4hEo3f+Gc8opLdrweiP3SFt5EErxBm0ZejNe1U2nD46ULY4PuR48AN0JI3lKz\nbgLUjim05tz/VjKOnW/pKteErgMSLxIW1e8rV3FrtOl+dpgSAkyvf+YFV89+dWBE\nZ6mC6InUIAVDIJipDYOr/C+VKbUU2OOlffGaYdHzfFAiT1vSnDFHiPBMpFw/nVME\nnYVOezhtSiH04jabJf2yagxc+agF9zUqBAFOXevy2UTUFOb7mW/ZlIP6jgLSA5p4\nUHSKwxu2ZRjV3BZo4RZW8krDEEuc7u+andL2vTqseW9WOcOmYZNY1Nzka3/T+0fx\n6OXQeBtNIB2ROn/v6Fa+qwNYV9osXi6nt6//w9H3kf5ujWXSo92gCk4G0D5DSWwG\nPKuDAqKM9XmVWRbBeNrNyDVpYGjcta0pUnsd0LacPlFy1C6A5LBeMuFW1XOuBWox\nQCPVs0fK7CnAMt7ekj5aoDOXvg7+Pk5MpEhm/qaPiTvGud2klTlcFyfM2LWo0QGx\npHaPXmJ5to3JinvEXHnw\n=ecK6\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-tezbridge-wallet/src/taquito-tezbridge-wallet.ts b/packages/taquito-tezbridge-wallet/src/taquito-tezbridge-wallet.ts index ba09db1b5c..1da96fe480 100644 --- a/packages/taquito-tezbridge-wallet/src/taquito-tezbridge-wallet.ts +++ b/packages/taquito-tezbridge-wallet/src/taquito-tezbridge-wallet.ts @@ -1,7 +1,3 @@ -/** - * @packageDocumentation - * @module @taquito/tezbridge-wallet - */ import { createOriginationOperation, createSetDelegateOperation, @@ -19,8 +15,6 @@ export class TezBridgeNotDetectedError implements Error { message: string = 'tezbridge plugin could not be detected in your browser'; } -export { VERSION } from './version'; - export class TezBridgeWallet implements WalletProvider { constructor() { if (typeof tezbridge === 'undefined') { diff --git a/packages/taquito-tezbridge-wallet/src/version.ts b/packages/taquito-tezbridge-wallet/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-tezbridge-wallet/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-tzip12/package-lock.json b/packages/taquito-tzip12/package-lock.json deleted file mode 100644 index 778747645f..0000000000 --- a/packages/taquito-tzip12/package-lock.json +++ /dev/null @@ -1,6117 +0,0 @@ -{ - "name": "@taquito/tzip12", - "version": "9.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", - "dev": true, - "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "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.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", - "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-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.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "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 - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@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.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true - }, - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - } - }, - "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@types/babel__core": { - "version": "7.1.12", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", - "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/graceful-fs": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz", - "integrity": "sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", - "dev": true, - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", - "dev": true - }, - "@types/ws": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.0.tgz", - "integrity": "sha512-Y29uQ3Uy+58bZrFLhX36hcI3Np37nqWE7ky5tjiDoy1GDZnIwVxS0CgF+s+1bXMzjKBFy+fqaRfb708iNzdinw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", - "dev": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "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 - }, - "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" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "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": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@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": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" - }, - "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.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "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" - } - }, - "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-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "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 - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "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 - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "coveralls": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", - "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", - "dev": true, - "requires": { - "js-yaml": "^3.13.1", - "lcov-parse": "^1.0.0", - "log-driver": "^1.2.7", - "minimist": "^1.2.5", - "request": "^2.88.2" - } - }, - "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 - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decimal.js": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-equal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", - "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "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 - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true - }, - "doctrine": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", - "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", - "dev": true, - "requires": { - "esutils": "^1.1.6", - "isarray": "0.0.1" - }, - "dependencies": { - "esutils": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", - "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", - "dev": true - } - } - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "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==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "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" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "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 - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", - "dev": true - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "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 - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "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" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "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-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "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-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "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 - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "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-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "i": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", - "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "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": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "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==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true, - "optional": true - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "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==", - "dev": true - }, - "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-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", - "dev": true - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - } - }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - } - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - } - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - } - }, - "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "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" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsdom": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", - "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "acorn": "^7.1.1", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.2.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.0", - "domexception": "^2.0.1", - "escodegen": "^1.14.1", - "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", - "nwsapi": "^2.2.0", - "parse5": "5.1.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "saxes": "^5.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", - "ws": "^7.2.3", - "xml-name-validator": "^3.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-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", - "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 - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "commander": "^6.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", - "dedent": "^0.7.0", - "enquirer": "^2.3.6", - "execa": "^4.1.0", - "listr2": "^3.2.2", - "log-symbols": "^4.0.0", - "micromatch": "^4.0.2", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - } - }, - "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "figures": "^3.2.0", - "indent-string": "^4.0.0", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - } - }, - "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": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true - }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - } - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "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" - } - }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", - "dev": true - }, - "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.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "dev": true - }, - "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "dev": true, - "requires": { - "mime-db": "1.45.0" - } - }, - "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 - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "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 - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "ncp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", - "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true - } - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "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" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "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" - } - }, - "onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "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-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" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.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 - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "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" - } - }, - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "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==", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "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" - } - }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", - "dev": true, - "requires": { - "colors": "^1.1.2", - "read": "1.0.x", - "revalidator": "0.1.x", - "utile": "0.3.x", - "winston": "2.x" - } - }, - "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", - "dev": true - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "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-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "revalidator": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", - "dev": true, - "requires": { - "fsevents": "~2.3.1" - } - }, - "rollup-plugin-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz", - "integrity": "sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow==", - "dev": true, - "requires": { - "rollup-pluginutils": "^2.5.0" - } - }, - "rollup-plugin-sourcemaps": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz", - "integrity": "sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.9", - "source-map-resolve": "^0.6.0" - } - }, - "rollup-plugin-typescript2": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.3.tgz", - "integrity": "sha512-gmYPIFmALj9D3Ga1ZbTZAKTXq1JKlTQBtj299DXhqYz9cL3g/AQfUvbb2UhH+Nf++cCq941W2Mv7UcrcgLzJJg==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "8.1.0", - "resolve": "1.17.0", - "tslib": "2.0.1" - }, - "dependencies": { - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "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==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, - "shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", - "dev": true, - "requires": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "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 - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "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-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, - "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "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 - } - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, - "string-length": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", - "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "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-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "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 - }, - "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-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "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" - } - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", - "dev": true, - "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", - "dev": true, - "requires": { - "@types/jest": "26.x", - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "mkdirp": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true - }, - "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "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" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "tslint-config-prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", - "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", - "dev": true - }, - "tslint-config-standard": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/tslint-config-standard/-/tslint-config-standard-9.0.0.tgz", - "integrity": "sha512-CAw9J743RnPMemQV/XQ4YyNreC+A1NItACfkm+cBedrOkz6CQfwlnbKn8anUXBfoa4Zo4tjAhblRbsMNcSLfSw==", - "dev": true, - "requires": { - "tslint-eslint-rules": "^5.3.1" - }, - "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", - "dev": true, - "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - } - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "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.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typedoc": { - "version": "0.20.32", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.32.tgz", - "integrity": "sha512-GSopd/tiqoKE3fEdvhoaEpR9yrEPsR9tknAjkoeSPL6p1Rq5aVsKxBhhF6cwoDJ7oWjpvnm8vs0rQN0BxEHuWQ==", - "dev": true, - "requires": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", - "lunr": "^2.3.9", - "marked": "^2.0.1", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shelljs": "^0.8.4", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.9" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - } - } - }, - "typedoc-default-themes": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.9.tgz", - "integrity": "sha512-Jd5fYTiqzinZdoIY382W7tQXTwAzWRdg8KbHfaxmb78m1/3jL9riXtk23oBOKwhi8GFVykCOdPzEJKY87/D0LQ==", - "dev": true - }, - "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", - "dev": true - }, - "uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-EWhx3fHy3M9JbaeTnO+rEqzCe1wtyQClv6q3YWq0voOj4E+bMZBErVS1GAHPDiRGONYq34M1/d8KuQMgvi6Gjw==", - "dev": true, - "optional": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "utile": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz", - "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=", - "dev": true, - "requires": { - "async": "~0.9.0", - "deep-equal": "~0.2.1", - "i": "0.3.x", - "mkdirp": "0.x.x", - "ncp": "1.0.x", - "rimraf": "2.x.x" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true - }, - "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", - "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^2.0.2", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", - "dev": true, - "requires": { - "async": "~1.0.0", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "stack-trace": "0.0.x" - }, - "dependencies": { - "async": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", - "dev": true - }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "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" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", - "dev": true - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - } - } -} diff --git a/packages/taquito-tzip12/package.json b/packages/taquito-tzip12/package.json deleted file mode 100644 index 8f37a834fe..0000000000 --- a/packages/taquito-tzip12/package.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "name": "@taquito/tzip12", - "version": "9.0.0", - "description": "Tzip12", - "keywords": [ - "tezos", - "blockchain", - "tzip12" - ], - "main": "dist/taquito-tzip12.umd.js", - "module": "dist/taquito-tzip12.es5.js", - "typings": "dist/types/taquito-tzip12.d.ts", - "publishConfig": { - "access": "public" - }, - "author": "Roxane Letourneau <roxane@ecadlabs.com>", - "repository": { - "type": "git", - "url": "" - }, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - }, - "scripts": { - "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", - "precommit": "lint-staged", - "prebuild": "rimraf dist", - "test": "jest --collectCoverage", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" - }, - "lint-staged": { - "{src,test}/**/*.ts": [ - "prettier --write", - "tslint --fix", - "git add" - ] - }, - "jest": { - "transform": { - ".(ts|tsx)": "ts-jest" - }, - "testEnvironment": "node", - "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$", - "moduleFileExtensions": [ - "ts", - "tsx", - "js" - ], - "coveragePathIgnorePatterns": [ - "/node_modules/", - "/test/", - "<rootDir>/src/taquito-tzip12.ts" - ], - "collectCoverageFrom": [ - "src/**/*.{js,ts}" - ] - }, - "dependencies": { - "@taquito/michelson-encoder": "^9.0.0", - "@taquito/taquito": "^9.0.0", - "@taquito/tzip16": "^9.0.0", - "bignumber.js": "^9.0.1" - }, - "devDependencies": { - "@types/jest": "^26.0.14", - "@types/node": "^14.11.5", - "@types/ws": "^7.2.7", - "colors": "^1.4.0", - "coveralls": "^3.1.0", - "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", - "lint-staged": "^10.4.0", - "lodash.camelcase": "^4.3.0", - "prettier": "^2.1.2", - "prompt": "^1.0.0", - "replace-in-file": "^6.1.0", - "rimraf": "^3.0.2", - "rollup": "^2.28.2", - "rollup-plugin-json": "^4.0.0", - "rollup-plugin-sourcemaps": "^0.6.3", - "rollup-plugin-typescript2": "^0.27.3", - "shelljs": "^0.8.4", - "ts-jest": "^26.4.1", - "ts-node": "^9.0.0", - "tslint": "^6.1.2", - "tslint-config-prettier": "^1.18.0", - "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.32", - "typescript": "^4.1.5" - }, - "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" -} diff --git a/packages/taquito-tzip12/rollup.config.ts b/packages/taquito-tzip12/rollup.config.ts deleted file mode 100644 index f221047cf7..0000000000 --- a/packages/taquito-tzip12/rollup.config.ts +++ /dev/null @@ -1,30 +0,0 @@ -import sourceMaps from 'rollup-plugin-sourcemaps'; -import camelCase from 'lodash.camelcase'; -import typescript from 'rollup-plugin-typescript2'; -import json from 'rollup-plugin-json'; - -const pkg = require('./package.json'); - -const libraryName = 'taquito-tzip12'; - -export default { - input: `src/${libraryName}.ts`, - output: [ - { file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true }, - { file: pkg.module, format: 'es', sourcemap: true }, - ], - // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash') - external: [], - watch: { - include: 'src/**', - }, - plugins: [ - // Allow json resolution - json(), - // Compile TypeScript files - typescript({ tsconfig: './tsconfig.prod.json', useTsconfigDeclarationDir: true }), - - // Resolve source maps to the original source - sourceMaps(), - ], -}; diff --git a/packages/taquito-tzip12/signature.json b/packages/taquito-tzip12/signature.json deleted file mode 100644 index cbf67bc5e7..0000000000 --- a/packages/taquito-tzip12/signature.json +++ /dev/null @@ -1,262 +0,0 @@ -{ - "entries": [ - { - "entry": "files/v1alpha2", - "value": { - "files": [ - { - "path": "dist/lib/composer.js", - "sha512": "9c830a8d9198e64f7a8901ef49577b0f7ec348d0824b885ea9990805f76cd78a05dec09f85ad114e89bc816f0db82ce305a8b7b6e359026009802a467deb1b00" - }, - { - "path": "dist/taquito-tzip12.es5.js", - "sha512": "1771aa6ffdd026aebd09a158118cf9199035e9a9afe2b6896dcbd53ef359f2b21cc664fced1238eb92c65f91d2a6ae164f317f57d1ef9099c76b04f55e48a20d" - }, - { - "path": "dist/lib/taquito-tzip12.js", - "sha512": "1929027338bcba33f52d24c105c02c637311234c9d87cc0c4dc9172e04d6b8d9df659a853029f14ed951eec05d545dc7fc847dbfa83b4a36f811f057072f7a5c" - }, - { - "path": "dist/taquito-tzip12.umd.js", - "sha512": "723eaa723f86295f0c759da6400e728228f83e0df825c1bf935365f9a0692895abff8eb6adb82476aef94e3fa16199bf83b30517fca22ae5bf6849cf0d8f00f4" - }, - { - "path": "dist/lib/tzip12-contract-abstraction.js", - "sha512": "a70138afb71ca8d6e4f7a594195a4ac834eda3b47417e83778db22b82e3c64746b72d5f5b89efd7a95b65b79c735e774cd2390375617e1338e066a07d55d451a" - }, - { - "path": "dist/lib/tzip12-errors.js", - "sha512": "3707179388f5af7af5e6de78f4f44ddc0c143bfbfed6e176e8a00ece45ecf84d8a71540fc9239c79c173d05b9121d995162ba698e6d79a26230eb7243d6f9ad1" - }, - { - "path": "dist/lib/tzip12-extension.js", - "sha512": "bbd3376b0bbebeb2df8be5b36b9d4ea3421942ed05c9eec328027a44568e60955aabbb941fed4fbb02993de5418878a01b4a41fd9943e1416a929081437b162b" - }, - { - "path": "tsconfig.json", - "sha512": "dc1726b9bdf8a3aa303d7562b73327dafca5305a1dc4c2a666bd92a74e5e06ba2363d05e25f46111695c5bfe647e4dc90352d1a9c398158b9c598ec55909a594" - }, - { - "path": "tsconfig.prod.json", - "sha512": "6f9928704743d6aadadc25fdf791083fad58262f7837a7e00a9353b264bcf023963e5474aed209b69e3b36ff91fc2497ec47a62a39c7c1cb036ef34ff1b6f7c6" - }, - { - "path": "tslint.json", - "sha512": "0d4498aba99c680e135ef3018412601e98189b1e1673a2c52400b7bac90d286a7161679b656788519578f59f6f521fdc7f908862ff3c7828024108eafb26fcc4" - }, - { - "path": "dist/lib/composer.js.map", - "sha512": "6b195b7752b53e442a688a6955830fb70902d237b47a50a8239a9a2684168de2adf3c025a8909c78467f6ef04564806cc1598cccfd3c8f153bc4a3fac5e00492" - }, - { - "path": "dist/taquito-tzip12.es5.js.map", - "sha512": "e4f3c867d304b5102289d06c304d25135df22151d4bea25dea335b6cae284f9b9e78c1fe7790f4cc7c51dc4ef2c7f56406a632930349f4b8d246de1e79b21ae9" - }, - { - "path": "dist/lib/taquito-tzip12.js.map", - "sha512": "fd100e16ac56d4dba602246c83e91e647afe690641b9905d607d2857cf4e8b8775c6095320d00de220f9661605e660015ac9876e46ece33d9fc6ddf996ba1907" - }, - { - "path": "dist/taquito-tzip12.umd.js.map", - "sha512": "ba459295768877d27faedeb49c675f49a19e27e60d8f57ab232ebcde96efbea9a5894646aeb854be5f8e24d32bf3890489dfbc8fc9de4c2d7945c4f6118ae1ac" - }, - { - "path": "dist/lib/tzip12-contract-abstraction.js.map", - "sha512": "67b604bbf22a34bd4db71cd744fc5db8c0371e427427ff99db3143882248ea33d1940e59e387903a346d6e7b5dfcfdd79a051935425badea0890fd8286cd9692" - }, - { - "path": "dist/lib/tzip12-errors.js.map", - "sha512": "d6167eaf707da671a0aa4aeebba5d4614e836f3010318507f14947ced0b740d95290de6f7e5e36c521d4ee7f6fa941e4d17b9bcf84a233d32a4014eeab7f5c97" - }, - { - "path": "dist/lib/tzip12-extension.js.map", - "sha512": "9fca90b75866c6364bb32d04ada0ac20bd49195baf4133092973f03990ca52f938a14eecbc1192998c9c29669de981ae9fa8c98c88dc5055f8f2f92524355b03" - }, - { - "path": "dist/types/composer.d.ts", - "sha512": "f30b8e442ef05ad417752e454d3cb1a40b756ae4001e5f9f73310095b939002239409f82fcae58623c77c9a94bafaaca79c8703aede7d96d713baf34909ddc13" - }, - { - "path": "src/composer.ts", - "sha512": "06d6c99c18fbca42e53b8b1b8ccdbde84c424e88cf2e263aa6da5583fa6cbf83424aef39ae3328381cc9191ed48ea01c09e2f775a0e1561d58afc851b5991da6" - }, - { - "path": "rollup.config.ts", - "sha512": "cdd096ee8ac367a45c3dc5bc594f89f0bd4114550348c09d0107d6c13b37e2fc7b0a98d37def667224c3041ff917f2784d06296daaaa52ed8549f3d2be2509f8" - }, - { - "path": "dist/types/taquito-tzip12.d.ts", - "sha512": "4a8dee488d191082e0b6d36494ad67efebce80c64e7726adbd721b975e728cac80b55288d2b27c8695160e9ecb6a43f0b7dcd5637006334983b59dfc9bc0a530" - }, - { - "path": "src/taquito-tzip12.ts", - "sha512": "7456a927d16aa5a400bb6df356d6471e5f37031d42fd2c2466304abe472b760dd32777ea970069c2e96b646ec7703f7a2d6f547dd97de000cbf02ae242e46b0e" - }, - { - "path": "dist/types/tzip12-contract-abstraction.d.ts", - "sha512": "b27fe0e0d066a5a8bb3c357fb948f4a37677c5d10672e983bcde8da201de02237ad762f5a9a3641b6bc66d3c03fdfca16064c17fa98948127745e0cf9f39336f" - }, - { - "path": "test/tzip12-contract-abstraction.spec.ts", - "sha512": "5969a2ceee91049f7544fb0d25b02aad329a51efde5970c2ddddc2c062a556db7220749842103c2cffd32ddcae0f33b53ea3f3035b169b9529182fc43c995029" - }, - { - "path": "src/tzip12-contract-abstraction.ts", - "sha512": "d4559809989c7fe4cf7755563f7d147313d5116a14f3642655c44e087b4aaf407c741acc3a614b66637b79311b29255dfd3d32a8e75c4832cbb533801ca4d2ba" - }, - { - "path": "dist/types/tzip12-errors.d.ts", - "sha512": "8e3e46bae687fa12d2e7550f5b5a9eeac9e85a70afbb06964eddd0bc57cc619e275c9b1eed74ede3d1521524e9480ebbdab2927214f89eda96e91dfb4851c404" - }, - { - "path": "src/tzip12-errors.ts", - "sha512": "31fa9c0d15db3b2ff150f5c584e126889456925c110e66e9dd8b7bf7b6aadd8e1c9349f94aa5bf1dc398011ba17a5cec753aa3f3c91947367e6f6f8a602af232" - }, - { - "path": "dist/types/tzip12-extension.d.ts", - "sha512": "9102ae99e8c05a06234b3fc6cffcc81040dc3cdaae8dcbb661b127a5398552c65d50ddf73a5717d0dcac20dff541c9eefc689166b1297307aa2908c25e1980ea" - }, - { - "path": "src/tzip12-extension.ts", - "sha512": "25066c3e4952beffa08303c207dcac425beaf4389a2b0c4231fc3875c8c0d44bce1fcce03051c0b8de75df10f5d3c4143f1f494091a7397aed29c26cbd3b6406" - } - ] - } - }, - { - "entry": "identity/v1alpha2", - "value": { - "identity": { - "keybaseUser": "jevonearth" - } - } - }, - { - "entry": "npmCompatiblePackageJson/v1alpha2", - "value": { - "packageJsonProperties": [ - "author", - "dependencies", - "description", - "devDependencies", - "engines", - "gitHead", - "jest", - "keywords", - "license", - "lint-staged", - "main", - "module", - "name", - "publishConfig", - "repository", - "scripts", - "typings", - "version" - ], - "sha512": "443ada2396444ab721112177d1460fed6710a37a1318775048f8639e2861500e91ddfa880f581e8593fa2ebc0f062eb7e9fab364ab768e1a866c8eb1ec87e626" - } - }, - { - "entry": "packageJson/v1alpha2", - "value": { - "packageJson": { - "name": "@taquito/tzip12", - "version": "8.0.4-beta.0", - "description": "Tzip12", - "keywords": [ - "tezos", - "blockchain", - "tzip12" - ], - "main": "dist/taquito-tzip12.umd.js", - "module": "dist/taquito-tzip12.es5.js", - "typings": "dist/types/taquito-tzip12.d.ts", - "publishConfig": { - "access": "public" - }, - "author": "Roxane Letourneau <roxane@ecadlabs.com>", - "repository": { - "type": "git", - "url": "" - }, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - }, - "scripts": { - "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", - "precommit": "lint-staged", - "prebuild": "rimraf dist", - "test": "jest --collectCoverage", - "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "rollup -c rollup.config.ts -w" - }, - "lint-staged": { - "{src,test}/**/*.ts": [ - "prettier --write", - "tslint --fix", - "git add" - ] - }, - "jest": { - "transform": { - ".(ts|tsx)": "ts-jest" - }, - "testEnvironment": "node", - "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$", - "moduleFileExtensions": [ - "ts", - "tsx", - "js" - ], - "coveragePathIgnorePatterns": [ - "/node_modules/", - "/test/", - "<rootDir>/src/taquito-tzip12.ts" - ], - "collectCoverageFrom": [ - "src/**/*.{js,ts}" - ] - }, - "dependencies": { - "@taquito/michelson-encoder": "^8.0.4-beta.0", - "@taquito/taquito": "^8.0.4-beta.0", - "@taquito/tzip16": "^8.0.4-beta.0", - "bignumber.js": "^9.0.1" - }, - "devDependencies": { - "@types/jest": "^26.0.14", - "@types/node": "^14.11.5", - "@types/ws": "^7.2.7", - "colors": "^1.4.0", - "coveralls": "^3.1.0", - "cross-env": "^7.0.2", - "jest": "^26.5.2", - "jest-config": "^26.5.2", - "lint-staged": "^10.4.0", - "lodash.camelcase": "^4.3.0", - "prettier": "^2.1.2", - "prompt": "^1.0.0", - "replace-in-file": "^6.1.0", - "rimraf": "^3.0.2", - "rollup": "^2.28.2", - "rollup-plugin-json": "^4.0.0", - "rollup-plugin-sourcemaps": "^0.6.3", - "rollup-plugin-typescript2": "^0.27.3", - "shelljs": "^0.8.4", - "ts-jest": "^26.4.1", - "ts-node": "^9.0.0", - "tslint": "^6.1.2", - "tslint-config-prettier": "^1.18.0", - "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.23", - "typescript": "^4.1.5" - }, - "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" - } - } - } - ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UJCRAD9Qy5GYHsngAAG5YQADz9lK/rnrFl59ncciwO6SeO\n6hDavbgXSWmNc3IB9C7Axw4IX+ojxmlkUjPoi5Q+TUfX08MoBNl7s2p1+Xy/nlmI\nrW9H3d/d0BBJSONgMzwFQ+vCgdAX+WQdEs8e7wGBuzFiILz79m3iA4hXPg2wip0T\nr1gWwV0lyPWYQNlpX34P6mirXnXwun9p5fMFW5XWhRCqb5elRM3uLbpXPkUX2K7Z\nuDyZk73RUMzeFW+xZ2V4AA9KN+CPPjQ4i5gJDHMh/Cbhi7fKcY7cEGiqtkni+svx\nochQocYEeLZ8wMEAKYBupRP1kVXH9xx0PYyiyj9xRl0581j3bohVKij+MiWqYwNw\nlMK6iuQrAzIgH/g9A7v6HrjoKeInf+1Ae5KxMu9y7bwiueTtce4dli1XgzXFJZd9\nOAGpTJKj0W7VpWRK1PiOiFcd8JK5ZNNTVDbSl1x/EVpifVNThHDJ0430p0vZOevG\nsRG4KsGnVE+c8lE8xPAfGXJ77gVP08X6kvhPxwW95/LmZXrulZEqlP/5b6+D/6RQ\nPX6N1IQtdf6ltrpCHSOSJDg0vnFTdWt2L5NkKcl0i68vZd4ieAk0sR0GuRR5xHWk\nXaQXAysU3pQ88QnY5QSEVg3CLMvgYPc5lt7unrkajS/6lK+lCnTKyJw4pykok4os\nINu80bS6QLT1kZPipXn0\n=bYl2\n-----END PGP SIGNATURE-----\n" -} \ No newline at end of file diff --git a/packages/taquito-tzip12/src/composer.ts b/packages/taquito-tzip12/src/composer.ts deleted file mode 100644 index 9e978adc8c..0000000000 --- a/packages/taquito-tzip12/src/composer.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Context, ContractAbstraction, ContractProvider, Wallet } from "@taquito/taquito"; -import { Tzip12ContractAbstraction } from './tzip12-contract-abstraction' -import { MetadataContext } from "@taquito/tzip16" - -const ABSTRACTION_KEY = Symbol("Tzip12ContractAbstractionObjectKey"); - -export function tzip12<T extends ContractAbstraction<ContractProvider | Wallet>>(abs: T, context: Context) { - return Object.assign(abs, { - // namespace tzip12 - tzip12 (this: ContractAbstraction<ContractProvider | Wallet> & { [ABSTRACTION_KEY]?: Tzip12ContractAbstraction}) { - if (!this[ABSTRACTION_KEY]) { - this[ABSTRACTION_KEY] = new Tzip12ContractAbstraction(this, context as MetadataContext); - } - - return this[ABSTRACTION_KEY]! - } - }) -} \ No newline at end of file diff --git a/packages/taquito-tzip12/src/taquito-tzip12.ts b/packages/taquito-tzip12/src/taquito-tzip12.ts deleted file mode 100644 index 167c81039c..0000000000 --- a/packages/taquito-tzip12/src/taquito-tzip12.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @packageDocumentation - * @module @taquito/tzip12 - */ -export * from './tzip12-contract-abstraction'; -export * from './composer'; -export * from './tzip12-errors'; -export * from './tzip12-extension'; -export { VERSION } from './version'; diff --git a/packages/taquito-tzip12/src/tzip12-contract-abstraction.ts b/packages/taquito-tzip12/src/tzip12-contract-abstraction.ts deleted file mode 100644 index 0b0e6b34d6..0000000000 --- a/packages/taquito-tzip12/src/tzip12-contract-abstraction.ts +++ /dev/null @@ -1,188 +0,0 @@ -import { MichelsonMap, Schema } from '@taquito/michelson-encoder'; -import { ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito'; -import { Tzip16ContractAbstraction, MetadataContext, View, bytes2Char, MetadataInterface } from '@taquito/tzip16' -import { InvalidTokenMetadata, TokenIdNotFound, TokenMetadataNotFound } from './tzip12-errors'; - -const tokenMetadataBigMapType = { - prim: 'big_map', - args: [ - { prim: 'nat' }, - { prim: 'pair', args: [ - { prim: 'nat' , annots: ['%token_id']}, - { prim: "map", args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%token_info'] }] }], - annots: ['%token_metadata'] -}; - -type BigMapId = { int: string }; - -export interface TokenMetadata { - token_id: number, - decimals: number - name?: string, - symbol?: string, -} - -export class Tzip12ContractAbstraction { - private _tzip16ContractAbstraction: Tzip16ContractAbstraction; - - constructor( - private contractAbstraction: ContractAbstraction<ContractProvider | Wallet>, - private context: MetadataContext - ) { - this._tzip16ContractAbstraction = new Tzip16ContractAbstraction(this.contractAbstraction, this.context) - } - - /** - * @description Fetches the contract metadata (according to the Tzip-016 standard) - * @returns An object containing the metadata, the uri, an optional integrity check result and an optional sha256 hash - * or `Undefined` if the contract has no metadata (non-compliant with Tzip-016) - */ - private async getContractMetadata() { - try { - const contractMetadata = await this._tzip16ContractAbstraction.getMetadata(); - return contractMetadata.metadata; - } catch (err) { - // The contract is not compliant with Tzip-016. There is no contract metadata. - } - } - - /** - * @description The Tzip-016 "interfaces" field MUST be present in the contract metadata. It should contain "TZIP-012[version-info]" - * @returns True if "interfaces" field is present and contains "TZIP-012", false otherwise - */ - async isTzip12Compliant() { - let isCompliant = false; - const metadata = await this.getContractMetadata(); - if (metadata) { - const tzip12Interface = metadata.interfaces?.filter((x) => { - return x.substring(0, 8) === "TZIP-012"; - }); - isCompliant = (tzip12Interface && tzip12Interface.length !== 0) ? true : false; - } - return isCompliant; - } - - /** - * @description Fetches the token metadata for a specified token ID. - * The function first tries to find a `token_metadata` view in the contract metadata and to execute it with the token ID. - * If there is no view, the function tries to find a `token_metadata` bigmap in the top-level pairs of the storage. - * @param tokenId The ID of the token for which we want to retrieve token metadata - * @returns An object of type `TokenMetadata` - */ - async getTokenMetadata(tokenId: number) { - const tokenMetadata = await this.retrieveTokenMetadataFromView(tokenId); - return (!tokenMetadata) ? this.retrieveTokenMetadataFromBigMap(tokenId) : tokenMetadata; - } - - private async retrieveTokenMetadataFromView(tokenId: number) { - if (await this.getContractMetadata()) { - const views = await this._tzip16ContractAbstraction.metadataViews(); - if (views && this.hasTokenMetadataView(views)) { - return this.executeTokenMetadataView(views['token_metadata'](), tokenId); - } - } - } - - private hasTokenMetadataView(views: {}) { - for (let view of Object.keys(views)) { - if (view === 'token_metadata') { - return true; - } - } - return false; - } - - private async executeTokenMetadataView(tokenMetadataView: View, tokenId: number): Promise<TokenMetadata> { - let tokenMetadata; - try { - tokenMetadata = await tokenMetadataView.executeView(tokenId); - } catch (err) { - throw new TokenIdNotFound(tokenId); - } - const tokenMap = Object.values(tokenMetadata)[1]; - if (!MichelsonMap.isMichelsonMap(tokenMap)) { - throw new TokenMetadataNotFound(this.contractAbstraction.address); - } - const metadataFromUri = await this.fetchTokenMetadataFromUri(tokenMap as MichelsonMap<string, string>); - return this.formatMetadataToken(tokenId, (tokenMap as MichelsonMap<string, string>), metadataFromUri); - } - - private async fetchTokenMetadataFromUri(tokenMetadata: MichelsonMap<string, string>) { - const uri = tokenMetadata.get(""); - if (uri) { - try { - const metadataFromUri = await this.context.metadataProvider.provideMetadata( - this.contractAbstraction, - bytes2Char(uri), - this.context - ); - return metadataFromUri.metadata; - } catch (e) { - if (e.name === 'InvalidUri') { - console.warn(`The URI ${bytes2Char(uri)} is present in the token metadata, but is invalid.`); - } else { - throw e; - } - } - } - } - - private formatMetadataToken(tokenId: number, metadataTokenMap: MichelsonMap<string, string>, metadataFromUri?: any): TokenMetadata { - const tokenMetadataDecoded = { - 'token_id': tokenId - }; - for (let keyTokenMetadata of metadataTokenMap.keys()) { - if (keyTokenMetadata === 'decimals') { - Object.assign(tokenMetadataDecoded, { [keyTokenMetadata]: Number(bytes2Char(metadataTokenMap.get(keyTokenMetadata)!)) }); - } - else if (!(keyTokenMetadata === '')) { - Object.assign(tokenMetadataDecoded, { [keyTokenMetadata]: bytes2Char(metadataTokenMap.get(keyTokenMetadata)!) }); - } - } - // if an URI is present, add the fetched properties to the object - // if a property is in the URI and the map, prevalence is accorded to value from the URI - if (metadataFromUri) { - for(let property in metadataFromUri) { - Object.assign(tokenMetadataDecoded, {[property]: metadataFromUri[property]}) - } - } - if(!('decimals' in tokenMetadataDecoded)) { - throw new InvalidTokenMetadata(); - } - return tokenMetadataDecoded; - } - - private async retrieveTokenMetadataFromBigMap(tokenId: number) { - const bigmapTokenMetadataId = this.findTokenMetadataBigMap(); - let pairNatMap; - try { - pairNatMap = await this.context.contract.getBigMapKeyByID<any>( - bigmapTokenMetadataId['int'].toString(), - tokenId.toString(), - new Schema(tokenMetadataBigMapType) - ); - } catch (err) { - throw new TokenIdNotFound(tokenId); - } - - const michelsonMap = pairNatMap['token_info']; - if (!MichelsonMap.isMichelsonMap(michelsonMap)) { - throw new TokenIdNotFound(tokenId); - } - const metadataFromUri = await this.fetchTokenMetadataFromUri(michelsonMap as MichelsonMap<string, string>); - return this.formatMetadataToken(tokenId, michelsonMap as MichelsonMap<string, string>, metadataFromUri) - } - - private findTokenMetadataBigMap(): BigMapId { - const tokenMetadataBigMapId = this.contractAbstraction.schema.FindFirstInTopLevelPair<BigMapId>( - this.contractAbstraction.script.storage, - tokenMetadataBigMapType - ); - if (!tokenMetadataBigMapId) { - throw new TokenMetadataNotFound(this.contractAbstraction.address); - } - return tokenMetadataBigMapId; - } - - -} diff --git a/packages/taquito-tzip12/src/tzip12-errors.ts b/packages/taquito-tzip12/src/tzip12-errors.ts deleted file mode 100644 index 0e8240e59e..0000000000 --- a/packages/taquito-tzip12/src/tzip12-errors.ts +++ /dev/null @@ -1,22 +0,0 @@ -export class TokenMetadataNotFound implements Error { - name: string = 'TokenMetadataNotFound'; - message: string; - - constructor(public address: string) { - this.message = `No token metadata was found for the contract: ${address}`; - } -} - -export class TokenIdNotFound implements Error { - name: string = 'TokenIdNotFound'; - message: string; - - constructor(public tokenId: number) { - this.message = `Could not find token metadata for the token ID: ${tokenId}`; - } -} - -export class InvalidTokenMetadata implements Error { - name = 'InvalidTokenMetadata'; - message = 'Non-compliance with the TZIP-012 standard. The required property `decimals` is missing.'; -} \ No newline at end of file diff --git a/packages/taquito-tzip12/src/tzip12-extension.ts b/packages/taquito-tzip12/src/tzip12-extension.ts deleted file mode 100644 index f94530bd33..0000000000 --- a/packages/taquito-tzip12/src/tzip12-extension.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Context, Extension } from "@taquito/taquito"; -import { DEFAULT_HANDLERS, MetadataProviderInterface, MetadataProvider } from '@taquito/tzip16' - -// The same default metadataProvider is used for tzip16 and tzip12 -export class Tzip12Module implements Extension { - private _metadataProvider: MetadataProviderInterface; - - constructor(metadataProvider?: MetadataProviderInterface) { - this._metadataProvider = metadataProvider ? metadataProvider : new MetadataProvider(DEFAULT_HANDLERS); - } - - configureContext(context: Context) { - Object.assign(context, { metadataProvider: this._metadataProvider }); - } -} \ No newline at end of file diff --git a/packages/taquito-tzip12/src/version.ts b/packages/taquito-tzip12/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-tzip12/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-tzip12/test/tzip12-contract-abstraction.spec.ts b/packages/taquito-tzip12/test/tzip12-contract-abstraction.spec.ts deleted file mode 100644 index fc5a90fc37..0000000000 --- a/packages/taquito-tzip12/test/tzip12-contract-abstraction.spec.ts +++ /dev/null @@ -1,444 +0,0 @@ -import { MichelsonMap } from '@taquito/taquito'; -import { char2Bytes, InvalidUri } from '@taquito/tzip16'; -import { Tzip12ContractAbstraction } from '../src/tzip12-contract-abstraction'; -import { InvalidTokenMetadata, TokenIdNotFound, TokenMetadataNotFound } from '../src/tzip12-errors'; - -describe('Tzip12 contract abstraction test', () => { - - let mockContractAbstraction: any = {}; - let mockContext: any = {}; - let mockTzip16ContractAbstraction: any = {}; - let tzip12Abs: Tzip12ContractAbstraction; - let mockMichelsonStorageView: any; - let mockMetadataProvider: { - provideMetadata: jest.Mock<any, any>; - }; - let mockSchema: { - FindFirstInTopLevelPair: jest.Mock<any, any>; - }; - let mockRpcContractProvider: { - getBigMapKeyByID: jest.Mock<any, any>; - }; - - beforeEach(() => { - mockMetadataProvider = { - provideMetadata: jest.fn() - }; - mockTzip16ContractAbstraction = { - getMetadata: jest.fn(), - metadataViews: jest.fn() - }; - mockMichelsonStorageView = { - executeView: jest.fn() - }; - mockSchema = { - FindFirstInTopLevelPair: jest.fn() - }; - mockRpcContractProvider = { - getBigMapKeyByID: jest.fn() - }; - mockContractAbstraction.address = 'test'; - mockContractAbstraction['schema'] = mockSchema; - mockContractAbstraction['script'] = { - script: { - code: [], - storage: { - prim: 'Pair', - args: [ - { - int: '20350' - }, - [] - ] - } - } - }; - tzip12Abs = new Tzip12ContractAbstraction(mockContractAbstraction, mockContext); - tzip12Abs['_tzip16ContractAbstraction'] = mockTzip16ContractAbstraction; - mockContext['metadataProvider'] = mockMetadataProvider; - mockContext['contract'] = mockRpcContractProvider; - }); - - it('Test 1 for getContractMetadata(): Should return the `Tzip-016` contract metadata', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { name: 'Taquito test' } - }); - - expect(await tzip12Abs['getContractMetadata']()).toEqual( - { name: 'Taquito test' } - ); - done(); - }); - - it('Test 2 for getContractMetadata(): Should return undefined when the contract has no `Tzip-016` metadata', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockImplementation(() => { - throw new Error(); - }); - - expect(await tzip12Abs['getContractMetadata']()).toBeUndefined(); - done(); - }); - - it('Test 1 for isTzip12Compliant(): Should return true', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { - name: 'Taquito test', - interfaces: ["TZIP-012[-<version-info>]"] - } - }); - - expect(await tzip12Abs.isTzip12Compliant()).toEqual(true); - done(); - }); - - it('Test 2 for isTzip12Compliant(): Should return true', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { - name: 'Taquito test', - interfaces: ["TZIP-test", "TZIP-012[-<version-info>]", "TZIP-test2"] - } - }); - - expect(await tzip12Abs.isTzip12Compliant()).toEqual(true); - done(); - }); - - it('Test 3 for isTzip12Compliant(): Should return false when no interfaces property', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { - name: 'Taquito test' - } - }); - - expect(await tzip12Abs.isTzip12Compliant()).toEqual(false); - done(); - }); - - it('Test 4 for isTzip12Compliant(): Should return false when no TZIP-012 in interfaces property', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { - name: 'Taquito test', - interfaces: ["TZIP-test"] - } - }); - - expect(await tzip12Abs.isTzip12Compliant()).toEqual(false); - done(); - }); - - it('Test 1 for executeTokenMetadataView(): Should properly return the TokenMetadata', async (done) => { - const tokenMap = new MichelsonMap({ prim: "map", args: [{ prim: "string" }, { prim: "bytes" }] }); - tokenMap.set('name', char2Bytes('Taquito')); - tokenMap.set('symbol', char2Bytes('XTZ')); - tokenMap.set('decimals', char2Bytes('3')); - - // takes as parameter the nat token-id and returns the (pair nat (map string bytes)) value - mockMichelsonStorageView.executeView.mockResolvedValue({ - '0': '0', - '1': tokenMap - }) - - const tokenMetadata = await tzip12Abs['executeTokenMetadataView'](mockMichelsonStorageView, 0); - expect(tokenMetadata).toEqual({ - token_id: 0, - name: 'Taquito', - symbol: 'XTZ', - decimals: 3 - }); - done(); - }); - - it('Test 2 for executeTokenMetadataView(): Should throw TokenIdNotFound', async (done) => { - - mockMichelsonStorageView.executeView.mockImplementation(() => { - throw new Error(); - }); - - expect(tzip12Abs['executeTokenMetadataView'](mockMichelsonStorageView, 0)).rejects.toEqual(new TokenIdNotFound(0)); - done(); - }); - - it('Test 3 for executeTokenMetadataView(): should throw TokenMetadataNotFound if the type of the view result is wrong (no map)', async (done) => { - - mockMichelsonStorageView.executeView.mockResolvedValue({ - '0': '0', - '1': 'I am not a map' - }) - - expect(tzip12Abs['executeTokenMetadataView'](mockMichelsonStorageView, 0)).rejects.toEqual(new TokenMetadataNotFound(mockContractAbstraction.address)); - done(); - }); - - it('Test 4 for executeTokenMetadataView(): should throw TokenMetadataNotFound if the type of the view result is wrong', async (done) => { - - mockMichelsonStorageView.executeView.mockResolvedValue('wrong type') - - expect(tzip12Abs['executeTokenMetadataView'](mockMichelsonStorageView, 0)).rejects.toEqual(new TokenMetadataNotFound(mockContractAbstraction.address)); - done(); - }); - - it('Test 5 for executeTokenMetadataView(): Should properly return the TokenMetadata when the map contains a URI', async (done) => { - mockMetadataProvider.provideMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { - name: 'Taquito test', - decimals: 3, - symbol: 'XTZ!', - more: 'more data' - } - }); - const tokenMap = new MichelsonMap({ prim: "map", args: [{ prim: "string" }, { prim: "bytes" }] }); - tokenMap.set('', char2Bytes('https://storage.googleapis.com/tzip-16/token-metadata.json')); - - mockMichelsonStorageView.executeView.mockResolvedValue({ - 'token_id': '0', - 'token_info': tokenMap - }) - - const tokenMetadata = await tzip12Abs['executeTokenMetadataView'](mockMichelsonStorageView, 0); - expect(tokenMetadata).toEqual({ - token_id: 0, - name: 'Taquito test', - decimals: 3, - symbol: 'XTZ!', - more: 'more data' - }); - done(); - }); - - it('Test 1 for fetchTokenMetadataFromUri(): Should warn that the URI is invalid and return undefined', async (done) => { - const tokenMap = new MichelsonMap(); - tokenMap.set('test', char2Bytes('test')); - tokenMap.set('', char2Bytes('invalidURI')); - tokenMap.set('testtest', char2Bytes('testtest')); - - mockMetadataProvider.provideMetadata.mockImplementation(() => { - throw new InvalidUri(char2Bytes('invalidURI')); - }); - - const tokenMetadata = await tzip12Abs['fetchTokenMetadataFromUri'](tokenMap as MichelsonMap<string, string>); - expect(tokenMetadata).toBeUndefined(); - done(); - }); - - it('Test 2 for fetchTokenMetadataFromUri(): Should return undefined when no URI', async (done) => { - const tokenMap = new MichelsonMap(); - tokenMap.set('test', char2Bytes('test')); - tokenMap.set('testtest', char2Bytes('testtest')); - - const tokenMetadata = await tzip12Abs['fetchTokenMetadataFromUri'](tokenMap as MichelsonMap<string, string>); - expect(tokenMetadata).toBeUndefined(); - done(); - }); - - it('Test 1 for retrieveTokenMetadataFromView(): Should properly return token metadata from token_metadata view', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { name: 'Taquito test' } - }); - - mockTzip16ContractAbstraction.metadataViews.mockResolvedValue({ 'token_metadata': () => mockMichelsonStorageView }); - - const tokenMap = new MichelsonMap({ prim: "map", args: [{ prim: "string" }, { prim: "bytes" }] }); - tokenMap.set('name', char2Bytes('Taquito')); - tokenMap.set('symbol', char2Bytes('XTZ')); - tokenMap.set('decimals', char2Bytes('3')); - - // takes as parameter the nat token-id and returns the (pair nat (map string bytes)) value - mockMichelsonStorageView.executeView.mockResolvedValue({ - 'token_id': '0', - 'token_info': tokenMap - }) - - const tokenMetadata = await tzip12Abs['retrieveTokenMetadataFromView'](0); - expect(tokenMetadata).toEqual({ - token_id: 0, - name: 'Taquito', - symbol: 'XTZ', - decimals: 3 - }); - done(); - }); - - it('Test 2 for retrieveTokenMetadataFromView(): Should return undefined when there is no contract metadata', async (done) => { - const tokenMetadata = await tzip12Abs['retrieveTokenMetadataFromView'](0); - expect(tokenMetadata).toBeUndefined(); - done(); - }); - - it('Test 3 for retrieveTokenMetadataFromView(): Should return undefined when there is no token_metadata view', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { name: 'Taquito test' } - }); - - mockTzip16ContractAbstraction.metadataViews.mockResolvedValue({}); - - const tokenMetadata = await tzip12Abs['retrieveTokenMetadataFromView'](0); - expect(tokenMetadata).toBeUndefined(); - done(); - }); - - it('Test 1 for retrieveTokenMetadataFromBigMap(): Should succeed to return the token metadata', async (done) => { - mockSchema.FindFirstInTopLevelPair.mockReturnValue({ int: '20350' }); - const tokenMap = new MichelsonMap({ prim: "map", args: [{ prim: "string" }, { prim: "bytes" }] }); - tokenMap.set('name', char2Bytes('Taquito')); - tokenMap.set('symbol', char2Bytes('XTZ')); - tokenMap.set('decimals', char2Bytes('3')); - mockRpcContractProvider.getBigMapKeyByID.mockResolvedValue({ - 'token_id': '0', - 'token_info': tokenMap - }); - - const tokenMetadata = await tzip12Abs['retrieveTokenMetadataFromBigMap'](0); - expect(tokenMetadata).toEqual({ - token_id: 0, - name: 'Taquito', - symbol: 'XTZ', - decimals: 3 - }); - done(); - }); - - it('Test 2 for retrieveTokenMetadataFromBigMap(): Should throw TokenMetadataNotFound', async (done) => { - mockSchema.FindFirstInTopLevelPair.mockReturnValue(undefined); - try { - await tzip12Abs['retrieveTokenMetadataFromBigMap'](0) - } catch (err) { - expect(err).toBeInstanceOf(TokenMetadataNotFound) - } - done(); - }); - - it('Test 3 for retrieveTokenMetadataFromBigMap(): Should throw TokenIdNotFound', async (done) => { - mockSchema.FindFirstInTopLevelPair.mockReturnValue({ int: '20350' }); - mockRpcContractProvider.getBigMapKeyByID.mockImplementation(() => { - throw new Error(); - }); - - expect(tzip12Abs['retrieveTokenMetadataFromBigMap'](0)).rejects.toEqual(new TokenIdNotFound(0)); - - done(); - }); - - it('Test 4 for retrieveTokenMetadataFromBigMap(): Should throw TokenIdNotFound', async (done) => { - mockSchema.FindFirstInTopLevelPair.mockReturnValue({ int: '20350' }); - mockRpcContractProvider.getBigMapKeyByID.mockResolvedValue('I am not a pair'); - - expect(tzip12Abs['retrieveTokenMetadataFromBigMap'](0)).rejects.toEqual(new TokenIdNotFound(0)); - done(); - }); - - it('Test 1 for getTokenMetadata(): Should succeed to fetch the token metadata', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockImplementation(() => { - throw new Error(); - }); - mockSchema.FindFirstInTopLevelPair.mockReturnValue({ int: '20350' }); - const tokenMap = new MichelsonMap({ prim: "map", args: [{ prim: "string" }, { prim: "bytes" }] }); - tokenMap.set('name', char2Bytes('Taquito')); - tokenMap.set('symbol', char2Bytes('XTZ')); - tokenMap.set('decimals', char2Bytes('3')); - mockRpcContractProvider.getBigMapKeyByID.mockResolvedValue({ - 'token_id': '0', - 'token_info': tokenMap - }); - - const tokenMetadata = await tzip12Abs.getTokenMetadata(0); - expect(tokenMetadata).toEqual({ - token_id: 0, - name: 'Taquito', - symbol: 'XTZ', - decimals: 3 - }); - done(); - }); - - it('Test 2 for getTokenMetadata(): Should succeed to fetch the token metadata from URI and token_info map', async (done) => { - mockMetadataProvider.provideMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { name: 'Taquito test' } - }); - - mockSchema.FindFirstInTopLevelPair.mockReturnValue({ int: '20350' }); - const tokenMap = new MichelsonMap({ prim: "map", args: [{ prim: "string" }, { prim: "bytes" }] }); - tokenMap.set('', char2Bytes('https://test')); - tokenMap.set('name', char2Bytes('Taquito')); - tokenMap.set('symbol', char2Bytes('XTZ')); - tokenMap.set('decimals', char2Bytes('3')); - mockRpcContractProvider.getBigMapKeyByID.mockResolvedValue({ - 'token_id': '0', - 'token_info': tokenMap - }); - - const tokenMetadata = await tzip12Abs.getTokenMetadata(0); - expect(tokenMetadata).toEqual({ - token_id: 0, - name: 'Taquito test', - symbol: 'XTZ', - decimals: 3 - }); - done(); - }); - - it('Test 3 for getTokenMetadata(): Should succeed to fetch the token metadata from URI and token_info map', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockResolvedValue({ - uri: 'https://contractMetadata', - metadata: { name: 'Contract metadata' } - }); - - mockMetadataProvider.provideMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { name: 'Taquito test' } - }); - - mockTzip16ContractAbstraction.metadataViews.mockResolvedValue({ 'token_metadata': () => mockMichelsonStorageView }); - - mockSchema.FindFirstInTopLevelPair.mockReturnValue({ int: '20350' }); - const tokenMap = new MichelsonMap({ prim: "map", args: [{ prim: "string" }, { prim: "bytes" }] }); - tokenMap.set('', char2Bytes('https://test')); - tokenMap.set('name', char2Bytes('Taquito')); - tokenMap.set('symbol', char2Bytes('XTZ')); - tokenMap.set('decimals', char2Bytes('3')); - - // takes as parameter the nat token-id and returns the (pair nat (map string bytes)) value - mockMichelsonStorageView.executeView.mockResolvedValue({ - 'token_id': '0', - 'token_info': tokenMap - }) - - const tokenMetadata = await tzip12Abs.getTokenMetadata(0); - expect(tokenMetadata).toEqual({ - token_id: 0, - name: 'Taquito test', - symbol: 'XTZ', - decimals: 3 - }); - done(); - }); - - it('Test 4 for getTokenMetadata(): Should throw InvalidTokenMetadata', async (done) => { - mockTzip16ContractAbstraction.getMetadata.mockImplementation(() => { - throw new Error(); - }); - mockSchema.FindFirstInTopLevelPair.mockReturnValue({ int: '20350' }); - const tokenMap = new MichelsonMap({ prim: "map", args: [{ prim: "string" }, { prim: "bytes" }] }); - tokenMap.set('name', char2Bytes('Taquito')); - tokenMap.set('symbol', char2Bytes('XTZ')); - mockRpcContractProvider.getBigMapKeyByID.mockResolvedValue({ - 'token_id': '0', - 'token_info': tokenMap - }); - - try { - await tzip12Abs.getTokenMetadata(0) - } catch (err) { - expect (err).toBeInstanceOf(InvalidTokenMetadata) - } - done(); - }); -}); diff --git a/packages/taquito-tzip12/tsconfig.json b/packages/taquito-tzip12/tsconfig.json deleted file mode 100644 index 51c10f5c54..0000000000 --- a/packages/taquito-tzip12/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "declarationDir": "dist/types", - "outDir": "dist/lib", - "typeRoots": [ - "node_modules/@types" - ], - "jsx": "react" - }, - "include": [ - "src" - ] - } - \ No newline at end of file diff --git a/packages/taquito-tzip12/tsconfig.prod.json b/packages/taquito-tzip12/tsconfig.prod.json deleted file mode 100644 index a18f282e4b..0000000000 --- a/packages/taquito-tzip12/tsconfig.prod.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "../../tsconfig.prod.json", - "compilerOptions": { - "declarationDir": "./dist/types", - "outDir": "./dist/lib", - "typeRoots": ["./node_modules/@types"], - "jsx": "react" - }, - "include": ["./src/**/*"] - } - \ No newline at end of file diff --git a/packages/taquito-tzip12/tslint.json b/packages/taquito-tzip12/tslint.json deleted file mode 100644 index 9fcc916c61..0000000000 --- a/packages/taquito-tzip12/tslint.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tslint.json" -} \ No newline at end of file diff --git a/packages/taquito-tzip16/package-lock.json b/packages/taquito-tzip16/package-lock.json deleted file mode 100644 index 3b173ed233..0000000000 --- a/packages/taquito-tzip16/package-lock.json +++ /dev/null @@ -1,6128 +0,0 @@ -{ - "name": "@taquito/tzip16", - "version": "9.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", - "dev": true, - "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "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.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", - "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-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.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "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 - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@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.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true - }, - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - } - }, - "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - } - }, - "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@types/babel__core": { - "version": "7.1.12", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", - "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/crypto-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.0.1.tgz", - "integrity": "sha512-6+OPzqhKX/cx5xh+yO8Cqg3u3alrkhoxhE5ZOdSEv0DOzJ13lwJ6laqGU0Kv6+XDMFmlnGId04LtY22PsFLQUw==", - "dev": true - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/graceful-fs": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz", - "integrity": "sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", - "dev": true, - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", - "dev": true - }, - "@types/ws": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.0.tgz", - "integrity": "sha512-Y29uQ3Uy+58bZrFLhX36hcI3Np37nqWE7ky5tjiDoy1GDZnIwVxS0CgF+s+1bXMzjKBFy+fqaRfb708iNzdinw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", - "dev": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "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 - }, - "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" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "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": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@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": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" - }, - "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.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "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" - } - }, - "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-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "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 - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "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 - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "coveralls": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", - "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", - "dev": true, - "requires": { - "js-yaml": "^3.13.1", - "lcov-parse": "^1.0.0", - "log-driver": "^1.2.7", - "minimist": "^1.2.5", - "request": "^2.88.2" - } - }, - "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 - }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", - "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decimal.js": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-equal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", - "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "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 - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true - }, - "doctrine": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", - "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", - "dev": true, - "requires": { - "esutils": "^1.1.6", - "isarray": "0.0.1" - }, - "dependencies": { - "esutils": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", - "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", - "dev": true - } - } - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "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==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "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" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "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 - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", - "dev": true - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "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 - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "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" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "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-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "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-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "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.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "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 - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "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-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "i": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", - "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "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": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "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==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true, - "optional": true - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "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==", - "dev": true - }, - "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-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", - "dev": true - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - } - }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - } - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - } - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - } - }, - "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "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" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsdom": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", - "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "acorn": "^7.1.1", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.2.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.0", - "domexception": "^2.0.1", - "escodegen": "^1.14.1", - "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", - "nwsapi": "^2.2.0", - "parse5": "5.1.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.8", - "saxes": "^5.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^3.0.1", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", - "ws": "^7.2.3", - "xml-name-validator": "^3.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-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", - "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 - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "commander": "^6.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", - "dedent": "^0.7.0", - "enquirer": "^2.3.6", - "execa": "^4.1.0", - "listr2": "^3.2.2", - "log-symbols": "^4.0.0", - "micromatch": "^4.0.2", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - } - }, - "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "figures": "^3.2.0", - "indent-string": "^4.0.0", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - } - }, - "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": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true - }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - } - }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "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" - } - }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "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.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", - "dev": true - }, - "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.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "dev": true - }, - "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "dev": true, - "requires": { - "mime-db": "1.45.0" - } - }, - "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 - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "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 - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "ncp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", - "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true - } - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "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" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "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" - } - }, - "onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "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-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" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.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 - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "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" - } - }, - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "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==", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "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" - } - }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", - "dev": true, - "requires": { - "colors": "^1.1.2", - "read": "1.0.x", - "revalidator": "0.1.x", - "utile": "0.3.x", - "winston": "2.x" - } - }, - "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", - "dev": true - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "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-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "revalidator": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", - "dev": true, - "requires": { - "fsevents": "~2.3.1" - } - }, - "rollup-plugin-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz", - "integrity": "sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow==", - "dev": true, - "requires": { - "rollup-pluginutils": "^2.5.0" - } - }, - "rollup-plugin-sourcemaps": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz", - "integrity": "sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.0.9", - "source-map-resolve": "^0.6.0" - } - }, - "rollup-plugin-typescript2": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.3.tgz", - "integrity": "sha512-gmYPIFmALj9D3Ga1ZbTZAKTXq1JKlTQBtj299DXhqYz9cL3g/AQfUvbb2UhH+Nf++cCq941W2Mv7UcrcgLzJJg==", - "dev": true, - "requires": { - "@rollup/pluginutils": "^3.1.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "8.1.0", - "resolve": "1.17.0", - "tslib": "2.0.1" - }, - "dependencies": { - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "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==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, - "shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", - "dev": true, - "requires": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "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 - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "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-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true - }, - "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "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 - } - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, - "string-length": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", - "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "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-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "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 - }, - "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-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "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" - } - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", - "dev": true, - "requires": { - "ip-regex": "^2.1.0", - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", - "dev": true, - "requires": { - "@types/jest": "26.x", - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "mkdirp": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true - }, - "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "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" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "tslint-config-prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", - "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", - "dev": true - }, - "tslint-config-standard": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/tslint-config-standard/-/tslint-config-standard-9.0.0.tgz", - "integrity": "sha512-CAw9J743RnPMemQV/XQ4YyNreC+A1NItACfkm+cBedrOkz6CQfwlnbKn8anUXBfoa4Zo4tjAhblRbsMNcSLfSw==", - "dev": true, - "requires": { - "tslint-eslint-rules": "^5.3.1" - }, - "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", - "dev": true, - "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } - } - } - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "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.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typedoc": { - "version": "0.20.32", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.32.tgz", - "integrity": "sha512-GSopd/tiqoKE3fEdvhoaEpR9yrEPsR9tknAjkoeSPL6p1Rq5aVsKxBhhF6cwoDJ7oWjpvnm8vs0rQN0BxEHuWQ==", - "dev": true, - "requires": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", - "lunr": "^2.3.9", - "marked": "^2.0.1", - "minimatch": "^3.0.0", - "progress": "^2.0.3", - "shelljs": "^0.8.4", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.9" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - } - } - }, - "typedoc-default-themes": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.9.tgz", - "integrity": "sha512-Jd5fYTiqzinZdoIY382W7tQXTwAzWRdg8KbHfaxmb78m1/3jL9riXtk23oBOKwhi8GFVykCOdPzEJKY87/D0LQ==", - "dev": true - }, - "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", - "dev": true - }, - "uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-EWhx3fHy3M9JbaeTnO+rEqzCe1wtyQClv6q3YWq0voOj4E+bMZBErVS1GAHPDiRGONYq34M1/d8KuQMgvi6Gjw==", - "dev": true, - "optional": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "utile": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz", - "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=", - "dev": true, - "requires": { - "async": "~0.9.0", - "deep-equal": "~0.2.1", - "i": "0.3.x", - "mkdirp": "0.x.x", - "ncp": "1.0.x", - "rimraf": "2.x.x" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true - }, - "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", - "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^2.0.2", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", - "dev": true, - "requires": { - "async": "~1.0.0", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "stack-trace": "0.0.x" - }, - "dependencies": { - "async": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", - "dev": true - }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "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" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", - "dev": true - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yaml": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", - "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - } - } -} diff --git a/packages/taquito-tzip16/package.json b/packages/taquito-tzip16/package.json deleted file mode 100644 index a8467b9fcb..0000000000 --- a/packages/taquito-tzip16/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "name": "@taquito/tzip16", - "version": "9.0.0", - "description": "Tzip16", - "keywords": [ - "tezos", - "blockchain", - "tzip16" - ], - "main": "dist/taquito-tzip16.umd.js", - "module": "dist/taquito-tzip16.es5.js", - "typings": "dist/types/taquito-tzip16.d.ts", - "publishConfig": { - "access": "public" - }, - "author": "Roxane Letourneau <roxane@ecadlabs.com>", - "repository": { - "type": "git", - "url": "" - }, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - }, - "scripts": { - "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", - "precommit": "lint-staged", - "prebuild": "rimraf dist", - "test": "jest --collectCoverage", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w" - }, - "lint-staged": { - "{src,test}/**/*.ts": [ - "prettier --write", - "tslint --fix", - "git add" - ] - }, - "jest": { - "transform": { - ".(ts|tsx)": "ts-jest" - }, - "testEnvironment": "node", - "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$", - "moduleFileExtensions": [ - "ts", - "tsx", - "js" - ], - "coveragePathIgnorePatterns": [ - "/node_modules/", - "/test/" - ], - "collectCoverageFrom": [ - "src/**/*.{js,ts}" - ] - }, - "dependencies": { - "@taquito/http-utils": "^9.0.0", - "@taquito/michelson-encoder": "^9.0.0", - "@taquito/rpc": "^9.0.0", - "@taquito/taquito": "^9.0.0", - "@taquito/utils": "^9.0.0", - "bignumber.js": "^9.0.1", - "crypto-js": "^4.0.0" - }, - "devDependencies": { - "@types/crypto-js": "^4.0.1", - "@types/jest": "^26.0.14", - "@types/node": "^14.11.5", - "@types/ws": "^7.2.7", - "colors": "^1.4.0", - "coveralls": "^3.1.0", - "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", - "lint-staged": "^10.4.0", - "lodash.camelcase": "^4.3.0", - "prettier": "^2.1.2", - "prompt": "^1.0.0", - "replace-in-file": "^6.1.0", - "rimraf": "^3.0.2", - "rollup": "^2.28.2", - "rollup-plugin-json": "^4.0.0", - "rollup-plugin-sourcemaps": "^0.6.3", - "rollup-plugin-typescript2": "^0.27.3", - "shelljs": "^0.8.4", - "ts-jest": "^26.4.1", - "ts-node": "^9.0.0", - "tslint": "^6.1.2", - "tslint-config-prettier": "^1.18.0", - "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.32", - "typescript": "^4.1.5" - }, - "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" -} diff --git a/packages/taquito-tzip16/rollup.config.ts b/packages/taquito-tzip16/rollup.config.ts deleted file mode 100644 index 3ec4b7ddfc..0000000000 --- a/packages/taquito-tzip16/rollup.config.ts +++ /dev/null @@ -1,30 +0,0 @@ -import sourceMaps from 'rollup-plugin-sourcemaps'; -import camelCase from 'lodash.camelcase'; -import typescript from 'rollup-plugin-typescript2'; -import json from 'rollup-plugin-json'; - -const pkg = require('./package.json'); - -const libraryName = 'taquito-tzip16'; - -export default { - input: `src/${libraryName}.ts`, - output: [ - { file: pkg.main, name: camelCase(libraryName), format: 'umd', sourcemap: true }, - { file: pkg.module, format: 'es', sourcemap: true }, - ], - // Indicate here external modules you don't wanna include in your bundle (i.e.: 'lodash') - external: [], - watch: { - include: 'src/**', - }, - plugins: [ - // Allow json resolution - json(), - // Compile TypeScript files - typescript({ tsconfig: './tsconfig.prod.json', useTsconfigDeclarationDir: true }), - - // Resolve source maps to the original source - sourceMaps(), - ], -}; diff --git a/packages/taquito-tzip16/signature.json b/packages/taquito-tzip16/signature.json deleted file mode 100644 index 1d97e8e72b..0000000000 --- a/packages/taquito-tzip16/signature.json +++ /dev/null @@ -1,441 +0,0 @@ -{ - "entries": [ - { - "entry": "files/v1alpha2", - "value": { - "files": [ - { - "path": "dist/lib/composer.js", - "sha512": "755581ea56cdf66b1be3d2ccf7cf22fa0e94050ccda1dbe34c6633699aa31a34ca42c776d536282e9e1c1e646a2b3fc7659b8777d8bfdd28f168718b8be7e76f" - }, - { - "path": "dist/lib/handlers/http-handler.js", - "sha512": "1bf195f7b321ad6fcc5409e4a515522cc5f6cd2df444ad1d3bd6d4539dc762ee30878cfcab8ec6811badb610152b7d65db734af7a3578f74744c9f510b44b52e" - }, - { - "path": "dist/lib/viewKind/interface.js", - "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" - }, - { - "path": "dist/lib/handlers/ipfs-handler.js", - "sha512": "44c2f1770ae24c371adb3c9c725ac517e8afdd7df7147ca9f4fc3416e89ba26cf2c9f5ec2a5a57d807dbed26a95f9cf0a958eb41a5c35de55b617037426e900a" - }, - { - "path": "dist/lib/metadata-interface.js", - "sha512": "c60d7138c5b0c56c64fcca049045bd4c85ded9746df180fbd6825afc3634d21468a3d61b7106ec9d5c46ebed1c1feff6c2195ee5b9044421b52152208037a188" - }, - { - "path": "dist/lib/metadata-provider.js", - "sha512": "9de76fb53b71dfc48927912cf0b2c9ba216ec18217953b401d59b8978accaa25949a53edf7c097bb4067cac40b36d30f9617986827a45f6afd4f6c15f71e5a16" - }, - { - "path": "dist/lib/viewKind/michelson-storage-view.js", - "sha512": "88186ade149bbc845e1dab71ef2a95bee2bb6af329dbcd923d816d419bed56c6e0cfca8403b8c38455dc4a5738ae7a77fbb198d7fa4701bc747d3224a4d549ee" - }, - { - "path": "dist/taquito-tzip16.es5.js", - "sha512": "860d1152d68b71a94fa8e0b64caef07b328eded1e5f2667618255b574083089f945ae628e0177718e3a439c0b7781c57d0062a6ae7d307ca0c1a41a3926a1781" - }, - { - "path": "dist/lib/taquito-tzip16.js", - "sha512": "f57316b8b241c5b8e7933f6f0202e752999017ce927bee04130239b26078e9308d3a0ce6d9bd21d4e9e78f55942471bfe4f4e54d72d2c1cd231c20703f0534e2" - }, - { - "path": "dist/taquito-tzip16.umd.js", - "sha512": "ef833745ad2b44ea14b32f728ab12e695bfbc71cf87129e94c73c454a8a45b9a372dbad002db05979a1536fe36e3fe1bcf541c010a403045d0b046744ad809dd" - }, - { - "path": "dist/lib/handlers/tezos-storage-handler.js", - "sha512": "1d685491a2bb79304923178c724b8ec6c79edadefc7add1b82b720bad14dbdce79ed2f82620d66deded9f0b1d6186805896c4a0d17acc097ee0fa10e5a75dd48" - }, - { - "path": "dist/lib/tzip16-contract-abstraction.js", - "sha512": "287ff0dc23e8235a4093070f6cefee6a60f05baa7b671b0969ee3a55452952f54e141b5a1871ad19868220ff78cdedbd3298a72465123a2c98cb654d21060519" - }, - { - "path": "dist/lib/tzip16-errors.js", - "sha512": "bead9beb384b0119d86d261e50b7ee9a86836581e8e741f475773af2c40845ad293d7788d171e2ab6af7f30c888e0bb55aa240838d972f55200a8c31449d6cab" - }, - { - "path": "dist/lib/tzip16-extension.js", - "sha512": "6c0436d484657a6b1e25a0888af074823157a035a89d463ee63fcc5d72c2d490cb97384bb64ba3cd4347b95d676340f6977cd595e7c63d013936258dbaf27e4e" - }, - { - "path": "dist/lib/tzip16-utils.js", - "sha512": "4b11206737446eeb1f7a9c866bbf81c708402e7233115c29ca3769e766bc09e675810eb0af4045eb7d9955dbc24e77bbbe0f64801b5abce4a3c73f059ac6e2c5" - }, - { - "path": "dist/lib/viewKind/viewFactory.js", - "sha512": "7c068adf572dac528c042983e0b7a96f3f1292c63395c53bf25682e38c028442348f4ee7bf14fb35476832c0e30ff9932631e5d66d348d92ad3f727184bedc39" - }, - { - "path": "tsconfig.json", - "sha512": "dc1726b9bdf8a3aa303d7562b73327dafca5305a1dc4c2a666bd92a74e5e06ba2363d05e25f46111695c5bfe647e4dc90352d1a9c398158b9c598ec55909a594" - }, - { - "path": "tsconfig.prod.json", - "sha512": "6f9928704743d6aadadc25fdf791083fad58262f7837a7e00a9353b264bcf023963e5474aed209b69e3b36ff91fc2497ec47a62a39c7c1cb036ef34ff1b6f7c6" - }, - { - "path": "tslint.json", - "sha512": "f33eefc26af1bc19e47a6cd1ac52f8a65bebfa55b1113330b66871c40c9ce7675720f20018799b394a34a6aaccafe9644ffa94306988f0a8e3f242d7f0b864ba" - }, - { - "path": "dist/lib/composer.js.map", - "sha512": "65961d5c9b0d070d2b6db77ff8355bcd0866e5bf01dc35e17174fac74c0f3006f97915144156de0ff2dd1c3d2c53a662d0285438e88832e64871fafb0f5b1690" - }, - { - "path": "dist/lib/handlers/http-handler.js.map", - "sha512": "c2b07e605517f9c917b754fac0e38143ae5f5c950577554a85b7b793add7bc13ea6102fc9f506a1eadc86966d03470a293740a0283624c97f6342adb0a609eed" - }, - { - "path": "dist/lib/viewKind/interface.js.map", - "sha512": "f77cc8c22224ea49a6e8073ddcf25806cfcf3a38c2c54527d2333e681c1022bd278aa839c8a81c7ac91b5ef32e4959c4608465f1025c4752191293891b9a112e" - }, - { - "path": "dist/lib/handlers/ipfs-handler.js.map", - "sha512": "e1140e7e0f40471b54115fc9f674ed65c992fd5ff08147beeb1a45b252a69018e76d94e7c98c6e96475a08a4969bc759a4039dda9d6cf6b10d44d3c7cfa9fa99" - }, - { - "path": "dist/lib/metadata-interface.js.map", - "sha512": "3498e39c490480fa03d815ef5a6959508966ce42f5125ef1d6e3db365d165f6ee2d9c0d531440a7fcf6087383b1aaf085f9cdd2bfe22dad04f6d842a9bb15500" - }, - { - "path": "dist/lib/metadata-provider.js.map", - "sha512": "594dbbbc8e1e90c475dec027192354bd938bb7af3db2c4df4717a512d5f8f15393a286b772fea199c0113d31749c955ebad81a0120cc1b610f1a8352979bf774" - }, - { - "path": "dist/lib/viewKind/michelson-storage-view.js.map", - "sha512": "6f05e5f85bda02d6c491f0b275318eca41262e37e926514b85b78ea773043c8cc5c9d1eca831d907aeaac7d791ed9c4e557d95dba4221b3818650f84759386a2" - }, - { - "path": "dist/taquito-tzip16.es5.js.map", - "sha512": "1c77ed20c6e2620ea6f153e62f7d35003786e175ff00a2aa6e051160c2fdbe91d5d4823d4f202850f9de8cd22b779eaba6e7eb9f23ab63bd0bddd137c590aaa6" - }, - { - "path": "dist/lib/taquito-tzip16.js.map", - "sha512": "e4c16c1baa5f1d1a6b03ec6f4dfd34288007d128b3b797bcd5bb1d25e1907212f511555aa37faa4a1e6d3e6847e5d3a013100bd72a8dc025b95c8d91a30f8f53" - }, - { - "path": "dist/taquito-tzip16.umd.js.map", - "sha512": "3b47d08593b427c8aab343dbb9f1b17206471139b65ae9294f42a706b48dbec0cc6d2a1454101726d8686ab932f79caeaf0aa4cefb5817a7cf6daf20e1cab00b" - }, - { - "path": "dist/lib/handlers/tezos-storage-handler.js.map", - "sha512": "80ca62f6caaf58dab54570d0002cf41ab7d647b19f1bcb604edab0ab0bdc417795c1cd3067221c7b9d5e4551d54c589a47c6521355b20a1788c4b9973f9dae38" - }, - { - "path": "dist/lib/tzip16-contract-abstraction.js.map", - "sha512": "a44cf2dc67ac0d7dcc031569fe7a4252dbb8d83315399ee5eac777c0e5f2c592549df33c450da75e8cad7fcfbc227084898e5db325932e41a530fd4ff161354e" - }, - { - "path": "dist/lib/tzip16-errors.js.map", - "sha512": "f410c72115e774769634366136f68fb512d89fad46706923fed4a002f569a219dca3d5ad2240929ca9fad756fc453c3cba104914a78d38f1b687653903a81864" - }, - { - "path": "dist/lib/tzip16-extension.js.map", - "sha512": "712d0b6b1bfc8e291ac9118990239e9726842a4b4a05122aa926ac4ff69ae904204f8c6e3ec9d20cd947b10bc7e0b7a90c12333411503dd9f2a3a6a42d60b821" - }, - { - "path": "dist/lib/tzip16-utils.js.map", - "sha512": "f5fcd096aa149b48ec4c3c428ac42b0a21ad2e533b204b39612ebc29be208791c0c5a2589de33d37ca11d21e156d3b8d140d10bfce290c698449a1076b5f64f2" - }, - { - "path": "dist/lib/viewKind/viewFactory.js.map", - "sha512": "812d70637f04de676d1b024583fb830a3d57e7bc1c79cbf8bec3ae53db6cf15cc07aef55b1bc8982a634745cb7b63a1dfc3f318d9a06b30ff570b46b61e30a7d" - }, - { - "path": "src/metadataProviderRequirements.md", - "sha512": "092fb014dfff3e6621e4993bb9fe859801bd04915e1892bb249bb601b39e2eb02005f4f63d16308c65d20123043f1b7628126d71cff405e90bcccf62a69035ae" - }, - { - "path": "dist/types/composer.d.ts", - "sha512": "cb208a037197e056088da13fc9c6416ace1eb978fa125d6c48cb0655719994da1def8dd1d4fa5e33155fe60be3cfe17d2a3ce74b0ea80c705bd04f1dfc5f15d2" - }, - { - "path": "src/composer.ts", - "sha512": "da3a531df4649297e91366f4d8ed43105b060ea0411228f5d1640d8a742636e9ded5fd6838f3ca4d0e05946057a779b6e8d3d0ca984ae79ce84cdea5e21842e7" - }, - { - "path": "test/data.ts", - "sha512": "da5b9f5914db258d013333f5d412a78881644d23eda0d7053cdc16ad57f7cdd53934550d70b9cb8aff25de8fc6cbbddfd37f8cd76276a123881de6e3eabe043d" - }, - { - "path": "dist/types/handlers/http-handler.d.ts", - "sha512": "b362c796d29ba4c3735ada50c91c5e7538a06666fb97df04428695e8381bd07ef95253fdf0593bbac0e667a2a625b11c3c2fed75f104407ca32e0306564a49c3" - }, - { - "path": "test/handlers/http-handler.spec.ts", - "sha512": "aaab55b4e2079b9b71798e48cc575efecdc1fcdeef728b96281ac48e413440b18fcb26cc93cc4412634d0c543d07fbc002be34653a5e448ba17e0c23a8bc74d9" - }, - { - "path": "src/handlers/http-handler.ts", - "sha512": "825f47156760ea0211359679710623360f35ac44aabc392ab706dde528fd1c177a52e6d387a77914439dc52fb160c62379e167c2b15e7d311687f6e8f8be4ae2" - }, - { - "path": "dist/types/viewKind/interface.d.ts", - "sha512": "b01045943a8ae08ead283c3cb48444c974a404da1ee58c0cb501907179e676fe933147282dc3cd5f378f4bc993ef74584f2d74f654150ea6daa45c3e8f1640a9" - }, - { - "path": "src/viewKind/interface.ts", - "sha512": "11b4baf5cab86bbf17ddb119eb0bbfe6a550281a51772e3fd5675faf06c311b4ea014af36387321688b007856b27f5094dfe8502748606275fac89768da62ef6" - }, - { - "path": "dist/types/handlers/ipfs-handler.d.ts", - "sha512": "2f29a3a8a04be4953e1a441e2167db36d593d923c55f216a836f8ce6095c0d8cd529e6dd4cacb0c12a36d06f2b1ba79bd8a60c612a59efc62aecff914a7ab6d4" - }, - { - "path": "test/handlers/ipfs-handler.spec.ts", - "sha512": "129064b593d4c24af7f30217b32c677a870799804f1625e86ba9f6f92b07c0ba209470d6d480f4c8a2cc6aa2e3e96338bb3146f1f2b57f60fedab1dc21f1b8db" - }, - { - "path": "src/handlers/ipfs-handler.ts", - "sha512": "e87c3e9d53c8e6ea49d2eedeee3acd23fc8074afa46c6d07aa85a3eb644a99cc4d74c313116fd9796a1f0e25e200e8edfb6e0db6722cbf113c7b1fd3d9885124" - }, - { - "path": "dist/types/metadata-interface.d.ts", - "sha512": "d1cae04ba50e1f85d0cbd066e30465e7efc979531c209c7fc93443560fa90a706e6066489e9ff95bfd47d394045e2d51e79a9d01ae731952edd9665058a9e9b2" - }, - { - "path": "src/metadata-interface.ts", - "sha512": "795820580749e2b7fa60398fb3f9353d9c1dd4ae025810e2307bb3cc466f553535a309aca96391477743b6d8d3f5cb08a507fd186bb1ad0b725ddaf100259daf" - }, - { - "path": "dist/types/metadata-provider.d.ts", - "sha512": "c5958585b0f4ae652f28bceee6c99c8d1eca1ab449191caa943d4ca9d9a815b6657ce72e23ebe93cf772660f29d236dc117fdf016320260707a70e65da675c03" - }, - { - "path": "test/metadata-provider.spec.ts", - "sha512": "71368aa191f7b1599003b3f19430abf7e316ee3d95d91b70e7a10c10d5d56927e922f586de9b46a99fda74223b604e3dcfd3b9994e701491681371cc70993848" - }, - { - "path": "src/metadata-provider.ts", - "sha512": "26b56c5e6f1047c108f0dd06f5fb55a68bfdb14e54004731ce7a203a16be0c43949e8234e3b6eafc6c31d30d1f37dffe7488ce5a43ebfc4e00c905d44dc38d3c" - }, - { - "path": "dist/types/viewKind/michelson-storage-view.d.ts", - "sha512": "788907ffc94a86ac2d215256021de23c910421af181e6a8f9b8ead9bb73c0f5e55bcb585dce12e9c60d5376666d414ba2adb8ca599a200a2a8f14153fdb4ad94" - }, - { - "path": "test/viewKind/michelson-storage-view.spec.ts", - "sha512": "898b75aa1867eb13a0642894c60b5dba90c7404b64bbfd8c26d21ad6e5312636108b7690a5bb35ff89fc6d2d6492edb88ecbd6745486eaf3a15848fb068d7bec" - }, - { - "path": "src/viewKind/michelson-storage-view.ts", - "sha512": "ac70a0372052b21fffd524ef4f7658dba7ce5019ea09733e8183fb3bcd33f76db10c579b80b40ffe685dec705ccff0df0ef41ce557717025e52da85a526658c0" - }, - { - "path": "rollup.config.ts", - "sha512": "28bdc7bf55129ecd9d00c6f25fb7427767f7327e0bc24c3ef66e9cf73574dfb835e09813db232e006e2661e5cd7a8380f6d058969b4c2ccaee3310ca06a73769" - }, - { - "path": "dist/types/taquito-tzip16.d.ts", - "sha512": "0993137ba6eb4a6b6435b096b91a285f64cbcf6942e6c2a447484a7b4d08a9eb95aec2b3c6555cd15c0f7d80e9a144ff22cb6928c2d8d6cd15f92ea19e1d22c2" - }, - { - "path": "src/taquito-tzip16.ts", - "sha512": "a27096e1a66412b1046c4a399a61f1143edd09b42d5d29fbb71aa504ed0eb5c05823eb4eaa006a7a258b6ea1c5e93763718f17cbf163796b70bf5c78c23702c5" - }, - { - "path": "dist/types/handlers/tezos-storage-handler.d.ts", - "sha512": "1fd579ca16060a9312fb2c41fa168a7d0756555ecdb1a0a669a2ffed0739878a1862e50b7b6ebf09141190080859ce3d06ab0a1f0881a07247d5aa8d6d009ecb" - }, - { - "path": "test/handlers/tezos-storage-handler.spec.ts", - "sha512": "de95d165109e32cb7346d7257221fbd73b3e7b7996e41156a1d2972250382512ac71eb0ea1f1227c23e00820e0450bc17e9e1d18505e20e9a9a4f61a3443e1c4" - }, - { - "path": "src/handlers/tezos-storage-handler.ts", - "sha512": "7df5908cbc9bff1f35f7aa51a8d09db8422c948a72cee8a00c67ab08396bdd8a31ae8c4270f371252f3353804e7eb7877fd85d1899a730474a8549f833b021b1" - }, - { - "path": "dist/types/tzip16-contract-abstraction.d.ts", - "sha512": "63b7f1358f056b3ac45c43ac340b6cefae83258c07fca8204324cac29b079a4b635d9ebb7a83d280f3abde996eee3829b492436acf75c1052f1304990c955907" - }, - { - "path": "test/tzip16-contract-abstraction.spec.ts", - "sha512": "64f252728d7decdfccd4dc8d97b4061fd1ea1a66a2e65e38c2c8adc94bb8429ca30753148ee034469ba13136c1546e8f66f95e708a7e1b0ed1fcc5c8c3fb93be" - }, - { - "path": "src/tzip16-contract-abstraction.ts", - "sha512": "666182ff089bd43648a8e3afd5a7d8e7bdba452652ece378814c28352935abc4d55655277deba7cf0956aad76a27df7858efd996de43ec19a6ef92a5e32b6386" - }, - { - "path": "dist/types/tzip16-errors.d.ts", - "sha512": "179ec6f23ba88b8092d72777416dd74a5b20e650c83718d39ce25a6ef5c43bebee5e7b4254dc0dbc3456fd859971112b7796dbd5eb7fa3ff9334b12493439370" - }, - { - "path": "src/tzip16-errors.ts", - "sha512": "0b1e69afdfd6d78cecedae60eaf9b17bf65c2cb36dffaad9d34bcd2f023cb932b6fe4da352014461f5209b1d8290ca44cf843eaa256d030a28d1f1fdd6fe3d74" - }, - { - "path": "dist/types/tzip16-extension.d.ts", - "sha512": "606c60934f90efbecf752372702291d700b38955cc801d561e0260407d57cd38af8e546498e3da4e157f7cd9dd98f760b0d18e1b3fb636614b2461e5cd3fbf40" - }, - { - "path": "src/tzip16-extension.ts", - "sha512": "9c63d917366486249894cc5874792d34fd5dded71f575bcefb97e203df1263f11fcaddb559292ca52ec075c94e84df995355aa36b7ab620920417515006ebc3d" - }, - { - "path": "dist/types/tzip16-utils.d.ts", - "sha512": "b89700c743319aa435291d3e8278c4a78c73ea61a8182074304bb4d45e6feb00ddf14719dafb587978297f9850a00db1ae3ea56f5c4d44996f55b066a8ce6eb6" - }, - { - "path": "test/tzip16-utils.spec.ts", - "sha512": "10f842a9be2810e6686a5c8d311372a0181af29308d73ba857c3790f22f34ba1eaf9f135d1e41c4ba550f56ad73607053f5debc15155599ad9e22b11ff4776a4" - }, - { - "path": "src/tzip16-utils.ts", - "sha512": "52546413ace4c44b747f5290ffcf03fed3f4ed87e72f7287aa6e9b3411abca44525005d0b9e839f65547421325b8105fb95beab4b4a13ae5b161291723043e53" - }, - { - "path": "dist/types/viewKind/viewFactory.d.ts", - "sha512": "1b80e2b1139cbc57d74309538b42d4ac9cd05cc6367cdc977016f308df35dfa582a3f8675b660af70c6355b0672b006b70474388e710dade8202cbd7912d03f3" - }, - { - "path": "src/viewKind/viewFactory.ts", - "sha512": "f7f0853764e6455ef879fb13865a0013987fb3e312eaff679683cf9db2159eb6b36b45ddaba72fe74d245aaf53f022edc0cae65dd2d4903fb5b5e607b6a66124" - } - ] - } - }, - { - "entry": "identity/v1alpha2", - "value": { - "identity": { - "keybaseUser": "jevonearth" - } - } - }, - { - "entry": "npmCompatiblePackageJson/v1alpha2", - "value": { - "packageJsonProperties": [ - "author", - "dependencies", - "description", - "devDependencies", - "engines", - "gitHead", - "jest", - "keywords", - "license", - "lint-staged", - "main", - "module", - "name", - "publishConfig", - "repository", - "scripts", - "typings", - "version" - ], - "sha512": "e46097793963bf06de84950276dfb5ffd03fc5a0aa531fbf959e467aff78f5b25a64b45fb293e7edcd807ff0eda555de05109742c48a582fcec53d2fea330c55" - } - }, - { - "entry": "packageJson/v1alpha2", - "value": { - "packageJson": { - "name": "@taquito/tzip16", - "version": "8.0.4-beta.0", - "description": "Tzip16", - "keywords": [ - "tezos", - "blockchain", - "tzip16" - ], - "main": "dist/taquito-tzip16.umd.js", - "module": "dist/taquito-tzip16.es5.js", - "typings": "dist/types/taquito-tzip16.d.ts", - "publishConfig": { - "access": "public" - }, - "author": "Roxane Letourneau <roxane@ecadlabs.com>", - "repository": { - "type": "git", - "url": "" - }, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - }, - "scripts": { - "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", - "precommit": "lint-staged", - "prebuild": "rimraf dist", - "test": "jest --collectCoverage", - "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts ", - "start": "rollup -c rollup.config.ts -w" - }, - "lint-staged": { - "{src,test}/**/*.ts": [ - "prettier --write", - "tslint --fix", - "git add" - ] - }, - "jest": { - "transform": { - ".(ts|tsx)": "ts-jest" - }, - "testEnvironment": "node", - "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$", - "moduleFileExtensions": [ - "ts", - "tsx", - "js" - ], - "coveragePathIgnorePatterns": [ - "/node_modules/", - "/test/" - ], - "collectCoverageFrom": [ - "src/**/*.{js,ts}" - ] - }, - "dependencies": { - "@taquito/http-utils": "^8.0.4-beta.0", - "@taquito/michelson-encoder": "^8.0.4-beta.0", - "@taquito/rpc": "^8.0.4-beta.0", - "@taquito/taquito": "^8.0.4-beta.0", - "@taquito/utils": "^8.0.4-beta.0", - "bignumber.js": "^9.0.1", - "crypto-js": "^4.0.0" - }, - "devDependencies": { - "@types/crypto-js": "^4.0.1", - "@types/jest": "^26.0.14", - "@types/node": "^14.11.5", - "@types/ws": "^7.2.7", - "colors": "^1.4.0", - "coveralls": "^3.1.0", - "cross-env": "^7.0.2", - "jest": "^26.5.2", - "jest-config": "^26.5.2", - "lint-staged": "^10.4.0", - "lodash.camelcase": "^4.3.0", - "prettier": "^2.1.2", - "prompt": "^1.0.0", - "replace-in-file": "^6.1.0", - "rimraf": "^3.0.2", - "rollup": "^2.28.2", - "rollup-plugin-json": "^4.0.0", - "rollup-plugin-sourcemaps": "^0.6.3", - "rollup-plugin-typescript2": "^0.27.3", - "shelljs": "^0.8.4", - "ts-jest": "^26.4.1", - "ts-node": "^9.0.0", - "tslint": "^6.1.2", - "tslint-config-prettier": "^1.18.0", - "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.23", - "typescript": "^4.1.5" - }, - "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" - } - } - } - ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UKCRAD9Qy5GYHsngAACP8QAFuxuARWxVfL/nRgn1qZ6sMh\n5sh293vwawWlkZPlrMsg2LTmdLv1kvpNfVQn0j0w3kaQrwzXrEvGBe//ElI4RuET\nSPO1QEm/J5CHGuvKlvfXaEbdVVNSXb/iSbSAlsNyCyAp5tZKXV219H3MhUfZUmsg\nn7aJIrMnwx47tLSsvoZ074k8Ub6bsVk93sKtdMP3xIga+cpLuBzTNW1by9b4ALKY\nU+gLdD+Z39UTCa6kBbp3ea4St4WmfDVB4YYxf2TwxLG7Dz8O8IakGhaZmha39BVr\np/h3LtxSzBEMqGtAA6UOAMsakzMn8iJob9jiOsGKmsusHIFgN9trNrslG8sxduYJ\nrgXw3sU/lZbRa21vPLGAnedyFIz6kw4W6OclQFpVbHHTZPYQEB6epfh6e50GcA7A\njqwfj/JMUCaypgA/U0SEm26VY7k/psLZaqGIcH6xjQMk9kJmTtMD5rt10CRgxo8e\nvjeAR18X8xxazWqbMKU/zczY+rgGH1fXyFnIy9CZe2721FaOqkpzeLWUr9VlCqys\nBHzbv6WVyfwC2A2YEMxMoZOTW5BdGBV68SZtS0yeYi+A5G7xWr7/vq5Q/kfc8xSC\nOBTdjqCO+pXrdzOWzV594yh3IpVbrWplu9Xc/FAkcgrv2gdoCoolvVM33tqX2h+Z\n20bJXPEr7j4daJCMCz9C\n=1YIA\n-----END PGP SIGNATURE-----\n" -} \ No newline at end of file diff --git a/packages/taquito-tzip16/src/composer.ts b/packages/taquito-tzip16/src/composer.ts deleted file mode 100644 index 5b37e7a7d4..0000000000 --- a/packages/taquito-tzip16/src/composer.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Context, ContractAbstraction, ContractProvider, Wallet } from "@taquito/taquito"; -import { MetadataContext, Tzip16ContractAbstraction } from './tzip16-contract-abstraction' - -const ABSTRACTION_KEY = Symbol("Tzip16ContractAbstractionObjectKey"); - -export function tzip16<T extends ContractAbstraction<ContractProvider | Wallet>>(abs: T, context: Context) { - return Object.assign(abs, { - // namespace tzip16 - tzip16 (this: ContractAbstraction<ContractProvider | Wallet> & { [ABSTRACTION_KEY]?: Tzip16ContractAbstraction}) { - if (!this[ABSTRACTION_KEY]) { - this[ABSTRACTION_KEY] = new Tzip16ContractAbstraction(this, context as MetadataContext); - } - - return this[ABSTRACTION_KEY]! - } - }) -} \ No newline at end of file diff --git a/packages/taquito-tzip16/src/handlers/http-handler.ts b/packages/taquito-tzip16/src/handlers/http-handler.ts deleted file mode 100644 index 8ed08b3e9c..0000000000 --- a/packages/taquito-tzip16/src/handlers/http-handler.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { HttpBackend } from "@taquito/http-utils"; -import { ContractAbstraction, ContractProvider, Wallet, Context } from "@taquito/taquito"; -import { Handler, Tzip16Uri } from "../metadata-provider"; - -export class HttpHandler implements Handler { - httpBackend: HttpBackend; - constructor() { - this.httpBackend = new HttpBackend(); - } - async getMetadata(_contractAbstraction: ContractAbstraction<ContractProvider | Wallet>, { protocol, location }: Tzip16Uri, _context: Context) { - return this.httpBackend.createRequest<string>({ - url: `${protocol}:${decodeURIComponent(location)}`, - method: 'GET', - mimeType: "text; charset=utf-8", - json: false - }) - } -} \ No newline at end of file diff --git a/packages/taquito-tzip16/src/handlers/ipfs-handler.ts b/packages/taquito-tzip16/src/handlers/ipfs-handler.ts deleted file mode 100644 index f8aacdd0f4..0000000000 --- a/packages/taquito-tzip16/src/handlers/ipfs-handler.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { HttpBackend } from "@taquito/http-utils"; -import { ContractAbstraction, ContractProvider, Wallet, Context } from "@taquito/taquito"; -import { Handler, Tzip16Uri } from "../metadata-provider"; - -export class IpfsHttpHandler implements Handler { - private _ipfsGateway: string; - private _httpBackend = new HttpBackend(); - - constructor(ipfsGatheway?:string){ - this._ipfsGateway = ipfsGatheway? ipfsGatheway: 'ipfs.io'; - } - - async getMetadata(_contractAbstraction: ContractAbstraction<ContractProvider | Wallet>, { location }: Tzip16Uri, _context: Context): Promise<string> { - return this._httpBackend.createRequest<string>({ - url: `https://${this._ipfsGateway}/ipfs/${location.substring(2)}/`, - method: 'GET', - headers: {'Content-Type': 'text/plain'}, - mimeType: "text; charset=utf-8", - json: false - }) - } -} \ No newline at end of file diff --git a/packages/taquito-tzip16/src/handlers/tezos-storage-handler.ts b/packages/taquito-tzip16/src/handlers/tezos-storage-handler.ts deleted file mode 100644 index ad21663d68..0000000000 --- a/packages/taquito-tzip16/src/handlers/tezos-storage-handler.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { Schema } from '@taquito/michelson-encoder'; -import { Context, ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito'; -import { Handler, Tzip16Uri } from '../metadata-provider'; -import { bytes2Char } from '@taquito/utils'; -import { InvalidMetadataType, BigMapMetadataNotFound, InvalidUri, MetadataNotFound } from '../tzip16-errors'; - -const typeOfValueToFind = { - prim: 'big_map', - args: [{ prim: 'string' }, { prim: 'bytes' }], - annots: ['%metadata'] -}; - -type BigMapId = { int: string }; - -export class TezosStorageHandler implements Handler { - private readonly TEZOS_STORAGE_REGEX = /^(?:\/\/(KT1\w{33})(?:\.(.+))?\/)?([\w|\%]+)$/; - - async getMetadata( - contractAbstraction: ContractAbstraction<ContractProvider | Wallet>, - { location }: Tzip16Uri, - context: Context - ) { - const parsedTezosStorageUri = this.parseTezosStorageUri(location); - if (!parsedTezosStorageUri) { - throw new InvalidUri(`tezos-storage:${location}`); - } - const storage: any = await context.rpc.getScript(parsedTezosStorageUri.contractAddress || contractAbstraction.address); - const bigMapId = Schema.fromRPCResponse({ script: storage }).FindFirstInTopLevelPair<BigMapId>( - storage.storage, - typeOfValueToFind - ); - - if (!bigMapId) { - throw new BigMapMetadataNotFound(); - } - - const bytes = await context.contract.getBigMapKeyByID<string>( - bigMapId['int'].toString(), - parsedTezosStorageUri.path, - new Schema(typeOfValueToFind) - ); - - if (!bytes) { - throw new MetadataNotFound(`No '${parsedTezosStorageUri.path}' key found in the big map %metadata of the contract ${parsedTezosStorageUri.contractAddress || contractAbstraction.address}`); - } - - if (!/^[0-9a-fA-F]*$/.test(bytes)) { - throw new InvalidMetadataType(); - } - return bytes2Char(bytes); - } - - /** - * @description Extract the smart contract address, the network and the path pointing to the metadata from the uri - * @returns an object which contains the properties allowing to find where the metadata are located or it returns undefined if the uri is not valid - * @param tezosStorageURI URI (without the tezos-storage prefix) - */ - private parseTezosStorageUri(tezosStorageURI: string) { - const extractor = this.TEZOS_STORAGE_REGEX.exec(tezosStorageURI); - if (!extractor) return; - return { - contractAddress: extractor[1], - network: extractor[2], - path: decodeURIComponent(extractor[3]) - }; - } -} diff --git a/packages/taquito-tzip16/src/metadata-interface.ts b/packages/taquito-tzip16/src/metadata-interface.ts deleted file mode 100644 index fb395b2e22..0000000000 --- a/packages/taquito-tzip16/src/metadata-interface.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { MichelsonV1Expression } from '@taquito/rpc'; -export interface MetadataInterface { - name?: string; - description?: string; - version?: string; - license?: { name: string; details?: string }; - authors?: string[]; - homepage?: string; - source?: { tools?: string[]; location?: string }; - interfaces?: string[]; - errors?: ErrorsTzip16; - views?: Views; -} - -export type ErrorsTzip16 = Array< - | { error: MichelineTzip16Expression; expansion: MichelineTzip16Expression; languages?: string[] } - | { view: string; languages?: string[] } ->; - -export enum ViewImplementationType { - MICHELSON_STORAGE = 'michelsonStorageView', - REST_API_QUERY = 'restApiQuery' -} - -export type ViewImplementation = - | { [ViewImplementationType.MICHELSON_STORAGE]: MichelsonStorageViewType } - | { [ViewImplementationType.REST_API_QUERY]: RestApiQueryType }; - -export interface ViewDefinition { - name?: string; - description?: string; - implementations?: ViewImplementation[]; - pure?: boolean; -} - -export type Views = ViewDefinition[]; - -export type MichelsonStorageViewType = { - parameter?: MichelineTzip16Expression; - returnType: MichelineTzip16Expression; - code: MichelineTzip16Expression; - annotations?: Array<{ name: string; description: string }>; - version?: string; -}; - -export type RestApiQueryType = { - specificationUri: string; - baseUri?: string; - path: string; - method?: 'GET' | 'POST' | 'PUT'; -}; - -export type MichelineTzip16Expression = - | MichelsonV1Expression - | MichelineTzip16Expression[] - | { prim: Unistring; args?: MichelineTzip16Expression[]; annots?: string[] }; - -type Unistring = string | { invalid_utf8_string: number[] }; diff --git a/packages/taquito-tzip16/src/metadata-provider.ts b/packages/taquito-tzip16/src/metadata-provider.ts deleted file mode 100644 index 64069f4e0e..0000000000 --- a/packages/taquito-tzip16/src/metadata-provider.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { ContractAbstraction, ContractProvider, Wallet, Context } from '@taquito/taquito'; -import { MetadataInterface } from './metadata-interface'; -import { MetadataContext } from './tzip16-contract-abstraction'; -import { InvalidMetadata, InvalidUri, ProtocolNotSupported } from './tzip16-errors'; -import { calculateSHA256Hash } from './tzip16-utils'; - -export interface MetadataProviderInterface { - provideMetadata(contractAbstraction: ContractAbstraction<ContractProvider | Wallet>, uri: string, context: MetadataContext): Promise<MetadataEnvelope>; -} - -export interface MetadataEnvelope { - uri: string; - integrityCheckResult?: boolean; - sha256Hash?: string; - metadata: MetadataInterface; -} -export interface Handler { - getMetadata( - contractAbstraction: ContractAbstraction<ContractProvider | Wallet>, - uri: Tzip16Uri, - context: Context - ): Promise<string> -} - -export interface Tzip16Uri { - sha256hash: string | undefined; - protocol: string; - location: string; -} - -/** - * @description: Metadata Provider - */ -export class MetadataProvider implements MetadataProviderInterface { - private readonly PROTOCOL_REGEX = /(?:sha256\:\/\/0x(.*)\/)?(https?|ipfs|tezos-storage)\:(.*)/; - - constructor(private handlers: Map<string, Handler>) {} - - /** - * @description Fetch the metadata by using the appropriate handler based on the protcol found in the URI - * @returns an object which contains the uri, the metadata, an optional integrity check result and an optional SHA256 hash - * @param _contractAbstraction the contract abstraction which contains the URI in its storage - * @param _uri the decoded uri found in the storage - * @param context the TezosToolkit Context - */ - async provideMetadata(contractAbstraction: ContractAbstraction<ContractProvider | Wallet>, uri: string, context: Context): Promise<MetadataEnvelope> { - - const uriInfo = this.extractProtocolInfo(uri); - if (!uriInfo || !uriInfo.location) { - throw new InvalidUri(uri); - } - - const handler = this.handlers.get(uriInfo.protocol); - if (!handler) { - throw new ProtocolNotSupported(uriInfo.protocol); - } - - const metadata = await handler.getMetadata(contractAbstraction, uriInfo, context); - const sha256Hash = calculateSHA256Hash(metadata); - let metadataJSON; - try { - metadataJSON = JSON.parse(metadata); - } catch (ex) { - throw new InvalidMetadata(metadata); - } - - return { - uri, - metadata: metadataJSON, - integrityCheckResult: uriInfo.sha256hash ? uriInfo.sha256hash === sha256Hash : undefined, - sha256Hash: uriInfo.sha256hash ? sha256Hash : undefined - } - } - - private extractProtocolInfo(_uri: string) { - const extractor = this.PROTOCOL_REGEX.exec(_uri); - if (!extractor) return; - return { - sha256hash: extractor[1], - protocol: extractor[2], - location: extractor[3] - } - } -} diff --git a/packages/taquito-tzip16/src/metadataProviderRequirements.md b/packages/taquito-tzip16/src/metadataProviderRequirements.md deleted file mode 100644 index c109a2fe65..0000000000 --- a/packages/taquito-tzip16/src/metadataProviderRequirements.md +++ /dev/null @@ -1,80 +0,0 @@ -# Metadata provider requirements -> AKA fetcher provider - -## Requirement overview -1. Given an tzip16 URI (decoded) select the protocol (http/https/smart contract/ipfs) -2. Given a protocol retrieve the data stored at a given location -3. Support adding new protocol in the future (ie. google bucket) - -## Interfaces definition - -``` ts -export interface MetadataEnvelope { - uri: string; - integrityCheckResult?: boolean; - sha256Hash?: string; - metadata: JSON -} - -export interface MetadataProvider { - /** - * - * @description Fetch the metadata. The uri parameter contains the required information to locate metadata contents (http/https, ipfs, tezos-storage). - * - * @returns An object representing the metadata - * - * @param contractAbstraction the contractAbstraction of the current contract (useful if metadata are located inside its own storage) - * @param uri the decoded uri - */ - provideMetadata(uri: String, contractAbstraction: ContractAbstraction<ContractProvider | Wallet>): Promise<MetadataEnvelope>; -} -``` - -# Milestone 1 - -## Protocol selection - -Consider using a regex (https://regex101.com/r/HpLmDy/1) to parse the decoded URI to extract the protocol. - -Then branch on the protocol and use a class specific to that protocol to retrieve the metadata. - -*Tips:* -- Consider using `decodeURIComponent` (for example to transform 'https:%2F%2Fraw.githubusercontent.com%2Ftqtezos%2FTZComet%2F8d95f7b%2Fdata%2Fmetadata_example0.json' to 'https://raw.githubusercontent.com/tqtezos/TZComet/8d95f7b/data/metadata_example0.json') - -## Integrity check using sha256 - -Consider using a regex to extract the sha256 hash from the URI. - -If the hash is present. Compute the sha256 hash of the JSON string before returning to taquito clients. - -*Notes:* Confirm on which form of the data the sha256 hash must be computed. - -## Http/Https -> https://raw.githubusercontent.com/tqtezos/TZComet/8d95f7b/data/metadata_example0.json - -For http uri retrieve the data at given location. Consider reusing the HttpBackend class that already exists for this purpose. It works in both browser and node by default. - -Out of scope of this protocol type: -Consider adding a request interceptor in Taquito to allow user specify custom request authentication mecanism. In general this is an improvement that will benefit every component of Taquito that use http (RpcClient for example) - -## Smart contract -> tezos-storage://KT1QDFEu8JijYbsJqzoXq7mKvfaQQamHD1kX/foo - -Reuse the smart contract abstraction to retrieve the data from the storage. - -If the data are stored in another contract. Use TezosToolkit.contract.at to fetch it. - -Consideration: -Data is encoded in byte in this protocol. Use the function `bytes2Char` from `tzip16-utils.ts` to decode it to a string. Then use JSON.parse on the string to produce a javascript object useable by Taquito users. - - -# Milestone 2 - -## IPFS -> ipfs://QmWDcp3BpBjvu8uJYxVqb7JLfr1pcyXsL97Cfkt3y1758o - - -IPFS expose an http api. Consider leveraging HttpBackend to fetch IPFS stored metadata. https://docs.ipfs.io/reference/http/api/#api-v0-get - -The main difference from Http protocol here will be that the user can select their node (Http contains the server in the address) - diff --git a/packages/taquito-tzip16/src/taquito-tzip16.ts b/packages/taquito-tzip16/src/taquito-tzip16.ts deleted file mode 100644 index f11996a6ae..0000000000 --- a/packages/taquito-tzip16/src/taquito-tzip16.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * @packageDocumentation - * @module @taquito/tzip16 - */ -export * from './handlers/http-handler'; -export * from './handlers/tezos-storage-handler'; -export * from './handlers/ipfs-handler'; -export * from './composer'; -export * from './metadata-interface'; -export * from './metadata-provider'; -export * from './tzip16-contract-abstraction'; -export * from './tzip16-errors'; -export * from './tzip16-extension'; -export * from './tzip16-utils'; -export * from './viewKind/interface'; -export * from './viewKind/michelson-storage-view'; -export * from './viewKind/viewFactory'; -export { VERSION } from './version'; - -/** - * @deprecated `import { bytes2Char, char2Bytes } from "@taquito/tzip16"` is deprecated in favor of - * `import { bytes2Char, char2Bytes } from "@taquito/utils"` - * - */ -export { bytes2Char, char2Bytes } from "@taquito/utils"; \ No newline at end of file diff --git a/packages/taquito-tzip16/src/tzip16-contract-abstraction.ts b/packages/taquito-tzip16/src/tzip16-contract-abstraction.ts deleted file mode 100644 index 24597707ca..0000000000 --- a/packages/taquito-tzip16/src/tzip16-contract-abstraction.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { BigMapAbstraction, Context, ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito'; -import { bytes2Char } from '@taquito/utils'; -import { MetadataEnvelope, MetadataProviderInterface } from './metadata-provider'; -import { BigMapMetadataNotFound, UnconfiguredMetadataProviderError, UriNotFound } from './tzip16-errors'; -import BigNumber from 'bignumber.js'; -import { Schema } from '@taquito/michelson-encoder'; -import { ViewFactory } from './viewKind/viewFactory'; -import { View } from './viewKind/interface'; -import { ViewDefinition } from './metadata-interface'; - -export type MetadataContext = Context & { - metadataProvider: MetadataProviderInterface; -}; - -type BigMapId = { int: string }; - -const metadataBigMapType = { - prim: 'big_map', - args: [{ prim: 'string' }, { prim: 'bytes' }], - annots: ['%metadata'] -}; -export class Tzip16ContractAbstraction { - private _metadataProvider: MetadataProviderInterface; - private _metadataEnvelope?: MetadataEnvelope; - private _viewFactory = new ViewFactory(); - private _metadataViewsObject: { [key: string]: () => View } = {}; - - constructor( - private constractAbstraction: ContractAbstraction<ContractProvider | Wallet>, - private context: MetadataContext - ) { - this._metadataProvider = context.metadataProvider; - } - - private findMetadataBigMap(): BigMapAbstraction { - const metadataBigMapId = this.constractAbstraction.schema.FindFirstInTopLevelPair<BigMapId>( - this.constractAbstraction.script.storage, - metadataBigMapType - ); - - if (!metadataBigMapId) { - throw new BigMapMetadataNotFound(); - } - - return new BigMapAbstraction( - new BigNumber(metadataBigMapId['int']), - new Schema(metadataBigMapType), - this.context.contract - ); - } - - private async getUriOrFail() { - const metadataBigMap = this.findMetadataBigMap(); - const uri = await metadataBigMap.get<string>(''); - if (!uri) { - throw new UriNotFound(); - } - return uri; - } - - /** - * @description Return an object containing the metadata, the uri, an optional integrity check result and an optional sha256 hash - */ - async getMetadata() { - if (!this._metadataProvider) { - throw new UnconfiguredMetadataProviderError(); - } - if (!this._metadataEnvelope) { - const uri = await this.getUriOrFail(); - this._metadataEnvelope = await this._metadataProvider.provideMetadata( - this.constractAbstraction, - bytes2Char(uri), - this.context - ); - } - return this._metadataEnvelope; - } - - async metadataViews() { - if (Object.keys(this._metadataViewsObject).length === 0) { - await this.initializeMetadataViewsList(); - } - return this._metadataViewsObject; - } - - private async initializeMetadataViewsList() { - const { metadata } = await this.getMetadata(); - const metadataViews: any = {}; - metadata.views?.forEach((view) => this.createViewImplementations(view, metadataViews)) - this._metadataViewsObject = metadataViews; - } - - private generateIndexedViewName(viewName: string, metadataViews: {}) { - let i = 1; - if (viewName in metadataViews) { - while (`${viewName}${i}` in metadataViews) { - i++; - } - viewName = `${viewName}${i}`; - } - return viewName; - } - - private createViewImplementations(view: ViewDefinition, metadataViews: any) { - for (let viewImplementation of view?.implementations ?? []) { - if (view.name) { - // when views have the same name, add an index at the end of the name - const viewName = this.generateIndexedViewName(view.name, metadataViews); - const metadataView = this._viewFactory.getView( - viewName, - this.context.rpc, - this.constractAbstraction, - viewImplementation - ); - if (metadataView) { - metadataViews[viewName] = metadataView; - } else { - console.warn(`Skipped generating ${viewName} because the view has an unsupported type: ${this._viewFactory.getImplementationType(viewImplementation)}`) - } - } - } - } -} diff --git a/packages/taquito-tzip16/src/tzip16-errors.ts b/packages/taquito-tzip16/src/tzip16-errors.ts deleted file mode 100644 index 6090c5a400..0000000000 --- a/packages/taquito-tzip16/src/tzip16-errors.ts +++ /dev/null @@ -1,81 +0,0 @@ -export class BigMapMetadataNotFound implements Error { - name = 'BigMapMetadataNotFound'; - message = 'Non-compliance with the TZIP-016 standard. No big map named metadata was found in the contract storage.'; -} - -export class MetadataNotFound implements Error { - name: string = 'MetadataNotFound'; - message: string; - - constructor(public info: string) { - this.message = `No metadata was found in the contract storage. ${info}`; - } -} - -export class UriNotFound implements Error { - name = 'UriNotFound'; - message = 'Non-compliance with the TZIP-016 standard. No URI found in the contract storage.'; -} - -export class InvalidUri implements Error { - name: string = 'InvalidUri'; - message: string; - - constructor(public uri: string) { - this.message = `Non-compliance with the TZIP-016 standard. The URI is invalid: ${uri}.`; - } -} - -export class InvalidMetadata implements Error { - name: string = 'InvalidMetadata'; - message: string; - - constructor(public invalidMetadata: string) { - this.message = `The metadata found at the pointed ressource are not compliant with tzip16 standard: ${invalidMetadata}.`; - } -} - -export class ProtocolNotSupported implements Error { - name: string = 'ProtocolNotSupported'; - message: string; - - constructor(public protocol: string) { - this.message = `The protocol found in the URI is not supported: ${protocol}.`; - } -} - -export class InvalidMetadataType implements Error { - name = 'InvalidMetadataType'; - message = 'The contract does not comply with the tzip16 standard. The type of metadata should be bytes.'; -} - -export class UnconfiguredMetadataProviderError implements Error { - name = 'UnconfiguredMetadataProviderError'; - message = - 'No metadata provider has been configured. The default one can be configured by calling addExtension(new Tzip16Module()) on your TezosToolkit instance.'; -} - -export class ForbiddenInstructionInViewCode implements Error { - name: string = 'ForbiddenInstructionInViewCode'; - message: string; - - constructor(public instruction: string) { - this.message = `Erreur found in the code of the view. It contains a forbidden instruction: ${instruction}.`; - } -} - -export class NoParameterExpectedError implements Error { - name: string = 'NoParameterExpectedError'; - message: string; - constructor(public viewName: string, public args: any[]) { - this.message = `${viewName} Received ${args.length} arguments while expecting no parameter or 'Unit'`; - } -} - -export class InvalidViewParameterError implements Error { - name: string = 'InvalidViewParameterError'; - message: string; - constructor(public viewName: string, public sigs: any[], public args: any[]) { - this.message = `${viewName} Received ${args.length} arguments while expecting one of the following signatures (${JSON.stringify(sigs)})`; - } -} \ No newline at end of file diff --git a/packages/taquito-tzip16/src/tzip16-extension.ts b/packages/taquito-tzip16/src/tzip16-extension.ts deleted file mode 100644 index 8da7fa0cec..0000000000 --- a/packages/taquito-tzip16/src/tzip16-extension.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Context, Extension } from "@taquito/taquito"; -import { Handler, MetadataProvider, MetadataProviderInterface } from "./metadata-provider"; -import { HttpHandler } from "./handlers/http-handler"; -import { TezosStorageHandler } from "./handlers/tezos-storage-handler"; -import { IpfsHttpHandler } from "./handlers/ipfs-handler"; - -export const DEFAULT_HANDLERS = new Map<string, Handler>([ - ['http', new HttpHandler()], - ['https', new HttpHandler()], - ['tezos-storage', new TezosStorageHandler()], - ['ipfs', new IpfsHttpHandler()] -]) -export class Tzip16Module implements Extension { - private _metadataProvider: MetadataProviderInterface; - - constructor(metadataProvider?: MetadataProviderInterface) { - this._metadataProvider = metadataProvider ? metadataProvider : new MetadataProvider(DEFAULT_HANDLERS); - } - - configureContext(context: Context) { - Object.assign(context, { metadataProvider: this._metadataProvider }); - } -} \ No newline at end of file diff --git a/packages/taquito-tzip16/src/tzip16-utils.ts b/packages/taquito-tzip16/src/tzip16-utils.ts deleted file mode 100644 index ab59e3aa92..0000000000 --- a/packages/taquito-tzip16/src/tzip16-utils.ts +++ /dev/null @@ -1,5 +0,0 @@ -import CryptoJS from "crypto-js"; - -export function calculateSHA256Hash(preimage: string): string { - return CryptoJS.SHA256(preimage).toString(CryptoJS.enc.Hex); -} \ No newline at end of file diff --git a/packages/taquito-tzip16/src/version.ts b/packages/taquito-tzip16/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-tzip16/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-tzip16/src/viewKind/interface.ts b/packages/taquito-tzip16/src/viewKind/interface.ts deleted file mode 100644 index c14d2e8d38..0000000000 --- a/packages/taquito-tzip16/src/viewKind/interface.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface View { - executeView(...args: any[]): Promise<any>; -} \ No newline at end of file diff --git a/packages/taquito-tzip16/src/viewKind/michelson-storage-view.ts b/packages/taquito-tzip16/src/viewKind/michelson-storage-view.ts deleted file mode 100644 index a32692f12a..0000000000 --- a/packages/taquito-tzip16/src/viewKind/michelson-storage-view.ts +++ /dev/null @@ -1,181 +0,0 @@ -import { ParameterSchema } from '@taquito/michelson-encoder'; -import { RpcClient, MichelsonV1Expression, MichelsonV1ExpressionExtended } from '@taquito/rpc'; -import { ContractAbstraction, ContractProvider, Protocols, Wallet } from '@taquito/taquito'; -import { ForbiddenInstructionInViewCode, InvalidViewParameterError, NoParameterExpectedError } from '../tzip16-errors'; -import { View } from './interface'; - -export class MichelsonStorageView implements View { - constructor( - private viewName: string, - private contract: ContractAbstraction<ContractProvider | Wallet>, - private rpc: RpcClient, - private returnType: MichelsonV1Expression, - private code: MichelsonV1ExpressionExtended[], - private viewParameterType?: MichelsonV1ExpressionExtended - ) { } - - /** - * @description According to the tzip-16 standard, the following instructions must not be used in the code of the view: - * 'AMOUNT', 'CREATE_CONTRACT', 'SENDER', 'SET_DELEGATE', 'SOURCE', and 'TRANSFER_TOKENS' - * The method throw an error if an illegal instruction is found - */ - private findForbiddenInstructionInViewCode(code: MichelsonV1ExpressionExtended[]) { - const illegalInstructions = [ - 'AMOUNT', - 'CREATE_CONTRACT', - 'SENDER', - 'SET_DELEGATE', - 'SOURCE', - 'TRANSFER_TOKENS' - ]; - - for (let forbiddenInstruction of illegalInstructions) { - for (let instruction of code) { - if (instruction.prim === forbiddenInstruction) { - throw new ForbiddenInstructionInViewCode(forbiddenInstruction); - } - if (instruction.args && instruction.args.length !== 0) { - this.findForbiddenInstructionInViewCode(instruction.args as any); - } - } - } - } - - /** - * @description According to the tzip-16 standard, in the first version of the specification, the instruction SELF should only be used before ADDRESS - * The method throws an error is the instruction SELF is present, but not followed by ADDRESS - */ - private illegalUseOfSelfInstruction(code: MichelsonV1ExpressionExtended[]) { - for (let instruction of code) { - if (instruction.prim === 'SELF') { - const index = code.indexOf(instruction); - const nextInstruction = code[index + 1] ? code[index + 1].prim : undefined; - if (nextInstruction !== 'ADDRESS') { - throw new ForbiddenInstructionInViewCode('the instruction SELF should only be used before ADDRESS'); - } - } - if (instruction.args && instruction.args.length !== 0) { - this.illegalUseOfSelfInstruction(instruction.args as any); - } - } - } - - /** - * @description Loops through the view's code and replace SELF, BALANCE, NOW, and CHAIN_ID with Michelson expressions that match the current context, if applicable. - */ - private adaptViewCodeToContext( - code: MichelsonV1ExpressionExtended[], - contractBalance: string, - blockTimeStamp: string, - chainId: string - ) { - const instructionsToReplace = { - SELF: [ - { prim: 'PUSH', args: [{ prim: 'address' }, { string: this.contract.address }] }, - { prim: 'CONTRACT', args: [{ prim: 'unit' }] }, - { prim: 'IF_NONE', args: [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }], []] } - ], - BALANCE: [{ prim: 'PUSH', args: [{ prim: 'mutez' }, { int: contractBalance }] }], - NOW: [{ prim: 'PUSH', args: [{ prim: 'timestamp' }, { string: blockTimeStamp }] }], - CHAIN_ID: [{ prim: 'PUSH', args: [{ prim: 'string' }, { string: chainId }] }] - }; - - code.forEach((x: any, i: any) => { - for (let instruction in instructionsToReplace) { - if (x.prim === instruction) { - code[i] = Object(instructionsToReplace)[instruction]; - } - if (x.args && x.args.length !== 0) { - this.adaptViewCodeToContext(x.args, contractBalance, blockTimeStamp, chainId); - } - } - }); - return code; - } - - private validateArgs = (args: any[], schema: ParameterSchema, viewName: string) => { - const sigs = schema.ExtractSignatures(); - - if (!sigs.find((x: any[]) => x.length === args.length)) { - throw new InvalidViewParameterError(viewName, sigs, args); - } - }; - - private formatArgsAndParameter(argView: any[]) { - let args = argView; - let viewParameterType = this.viewParameterType; - if (!viewParameterType) { - viewParameterType = { args: [], prim: 'unit', annots: [] }; - } - - if (viewParameterType.prim === 'unit') { - if (args.length === 0) { - args = ['Unit']; - } - if (args.length !== 0 && args[0] !== 'Unit') { - throw new NoParameterExpectedError(this.viewName, argView); - } - } - const parameterViewSchema = new ParameterSchema(viewParameterType); - this.validateArgs(args, parameterViewSchema, this.viewName); - const arg = parameterViewSchema.Encode(...args); - return { arg, viewParameterType }; - } - - async executeView(...args: any[]) { - // validate view code against tzip-16 specifications - this.findForbiddenInstructionInViewCode(this.code); - this.illegalUseOfSelfInstruction(this.code); - - const { arg, viewParameterType } = this.formatArgsAndParameter(args); - - const storageType: any = this.contract.script.code.find((x: any) => x.prim === 'storage'); - const storageArgs = storageType.args[0]; - const storageValue: any = this.contract.script.storage; - - // currentContext - const chainId = await this.rpc.getChainId(); - const contractBalance = (await this.rpc.getBalance(this.contract.address)).toString(); - const block = await this.rpc.getBlock(); - const blockTimestamp = block.header.timestamp.toString(); - const protocolHash = block.protocol; - - const code = this.adaptViewCodeToContext(this.code, contractBalance, blockTimestamp, chainId); - - if(!this.viewParameterType) { - code.unshift({ prim: 'CDR' }) - } - - const viewScript = { - script: [ - { prim: 'parameter', args: [{ prim: 'pair', args: [viewParameterType, storageArgs] }] }, - { prim: 'storage', args: [{ prim: 'option', args: [this.returnType] }] }, - { - prim: 'code', - args: [ - [ - { prim: 'CAR' }, - code, - { prim: 'SOME' }, - { prim: 'NIL', args: [{ prim: 'operation' }] }, - { prim: 'PAIR' } - ] - ] - } - ], - storage: { prim: 'None' }, - input: { prim: 'Pair', args: [arg, storageValue] }, - amount: '0', - chain_id: chainId - }; - - // Fix for Edo which required a balance property when calling the run_code endpoint - if(protocolHash === Protocols.PtEdo2Zk || protocolHash === Protocols.PsFLorena) { - Object.assign(viewScript, { balance: '0' }); - } - - const result: any = await this.rpc.runCode(viewScript as any); - const viewResultSchema = new ParameterSchema(this.returnType); - return viewResultSchema.Execute(result.storage.args[0]); - } -} diff --git a/packages/taquito-tzip16/src/viewKind/viewFactory.ts b/packages/taquito-tzip16/src/viewKind/viewFactory.ts deleted file mode 100644 index 6de04dfffd..0000000000 --- a/packages/taquito-tzip16/src/viewKind/viewFactory.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { RpcClient } from '@taquito/rpc'; -import { ContractAbstraction, ContractProvider, Wallet } from '@taquito/taquito'; -import { ViewImplementation, ViewImplementationType } from '../metadata-interface'; -import { MichelsonStorageView } from './michelson-storage-view'; - -export class ViewFactory { - getView( - viewName: string, - rpc: RpcClient, - contract: ContractAbstraction<ContractProvider | Wallet>, - viewImplementation: ViewImplementation - ) { - if (this.isMichelsonStorageView(viewImplementation)) { - const viewValues = viewImplementation[ViewImplementationType.MICHELSON_STORAGE]; - if (!viewValues.returnType || !viewValues.code) { - console.warn( - `${viewName} is missing mandatory code or returnType property therefore it will be skipped.` - ); - return; - } - return () => { - const view = new MichelsonStorageView( - viewName, - contract, - rpc, - viewValues.returnType as any, - viewValues.code as any, - viewValues.parameter as any - ); - return view; - }; - } - } - - getImplementationType(viewImplementation: ViewImplementation) { - return Object.keys(viewImplementation)[0]; - } - - private isMichelsonStorageView( - viewImplementation: ViewImplementation - ): viewImplementation is { [ViewImplementationType.MICHELSON_STORAGE]: any } { - return this.getImplementationType(viewImplementation) === ViewImplementationType.MICHELSON_STORAGE; - } -} diff --git a/packages/taquito-tzip16/test/handlers/http-handler.spec.ts b/packages/taquito-tzip16/test/handlers/http-handler.spec.ts deleted file mode 100644 index bdbbb27e5c..0000000000 --- a/packages/taquito-tzip16/test/handlers/http-handler.spec.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { HttpHandler } from '../../src/handlers/http-handler' - -describe('Tzip16 http handler test', () => { - let mockHttpBackend: { - createRequest: jest.Mock<any, any> - }; - let mockContractAbstraction: any = {}; - let mockContext: any = {}; - - const httpHandler = new HttpHandler(); - - beforeEach(() => { - mockHttpBackend = { - createRequest: jest.fn() - }; - - httpHandler['httpBackend'] = mockHttpBackend as any; - }) - - it('Should return a string representing the metadata fetched by the httpBackend', async (done) => { - mockHttpBackend.createRequest.mockResolvedValue(`{ "name": "Taquito test" }`); - const tzip16Uri = { - sha256hash: undefined, - protocol: 'https', - location: '//storage.googleapis.com/tzip-16/emoji-in-metadata.json' - } - const metadata = await httpHandler.getMetadata(mockContractAbstraction, tzip16Uri, mockContext) - - expect(metadata).toEqual(`{ "name": "Taquito test" }`); - done(); - }); -}); \ No newline at end of file diff --git a/packages/taquito-tzip16/test/handlers/ipfs-handler.spec.ts b/packages/taquito-tzip16/test/handlers/ipfs-handler.spec.ts deleted file mode 100644 index 162a3acde2..0000000000 --- a/packages/taquito-tzip16/test/handlers/ipfs-handler.spec.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { IpfsHttpHandler } from '../../src/handlers/ipfs-handler' - -describe('Tzip16 http handler test', () => { - let mockHttpBackend: { - createRequest: jest.Mock<any, any> - }; - let mockContractAbstraction: any = {}; - let mockContext: any = {}; - - const ipfsHandler = new IpfsHttpHandler(); - - beforeEach(() => { - mockHttpBackend = { - createRequest: jest.fn() - }; - - ipfsHandler['_httpBackend'] = mockHttpBackend as any; - }) - - it('Should return a string representing the metadata fetched by the httpBackend', async (done) => { - mockHttpBackend.createRequest.mockResolvedValue(`{ "name": "Taquito test" }`); - const tzip16Uri = { - sha256hash: undefined, - protocol: 'ipfs', - location: '//QmcMUKkhXowQjCPtDVVXyFJd7W9LmC92Gs5kYH1KjEisdjn' - } - const metadata = await ipfsHandler.getMetadata(mockContractAbstraction, tzip16Uri, mockContext) - - expect(metadata).toEqual(`{ "name": "Taquito test" }`); - done(); - }); -}); \ No newline at end of file diff --git a/packages/taquito-tzip16/test/handlers/tezos-storage-handler.spec.ts b/packages/taquito-tzip16/test/handlers/tezos-storage-handler.spec.ts deleted file mode 100644 index 55d615a0e6..0000000000 --- a/packages/taquito-tzip16/test/handlers/tezos-storage-handler.spec.ts +++ /dev/null @@ -1,176 +0,0 @@ -import { TezosStorageHandler } from '../../src/handlers/tezos-storage-handler'; -import { - InvalidMetadataType, - InvalidUri, - BigMapMetadataNotFound, - MetadataNotFound -} from '../../src/tzip16-errors'; - -describe('Parse Tezos storage URI test', () => { - const tezosStorageHandler = new TezosStorageHandler(); - - it('Should extract smart contract address, network and path from the URI properly', () => { - expect(tezosStorageHandler['parseTezosStorageUri']('//KT1RF4nXUitQb2G8TE5H9zApatxeKLtQymtg/here')).toMatchObject({ - contractAddress: 'KT1RF4nXUitQb2G8TE5H9zApatxeKLtQymtg', - network: undefined, - path: 'here' - }); - - expect(tezosStorageHandler['parseTezosStorageUri']('hello%2Fworld')).toMatchObject({ - contractAddress: undefined, - network: undefined, - path: 'hello/world' - }); - - expect(tezosStorageHandler['parseTezosStorageUri']('hello')).toMatchObject({ - contractAddress: undefined, - network: undefined, - path: 'hello' - }); - - expect(tezosStorageHandler['parseTezosStorageUri']('//KT1QDFEu8JijYbsJqzoXq7mKvfaQQamHD1kX/%2Ffoo')).toMatchObject({ - contractAddress: 'KT1QDFEu8JijYbsJqzoXq7mKvfaQQamHD1kX', - network: undefined, - path: '/foo' - }); - - expect(tezosStorageHandler['parseTezosStorageUri']('//KT1GPDQvmV37orH1XH3SZmVVKFaMuzzqsmN7.mainnet/contents')).toMatchObject({ - contractAddress: 'KT1GPDQvmV37orH1XH3SZmVVKFaMuzzqsmN7', - network: 'mainnet', - path: 'contents' - }); - - expect(tezosStorageHandler['parseTezosStorageUri']('hello/world')).toBeUndefined(); - }); -}); - -describe('Tzip16 tezos storage handler test', () => { - let mockContractAbstraction: any = {}; - let mockRpcClient: { - getScript: jest.Mock<any, any>; - }; - let mockContext: { - rpc: any; - contract: any; - }; - let mockContractProvider: { - getBigMapKeyByID: jest.Mock<any, any>; - }; - - const tezosStorageHandler = new TezosStorageHandler(); - - beforeEach(() => { - mockRpcClient = { - getScript: jest.fn() - }; - mockContractProvider = { - getBigMapKeyByID: jest.fn() - }; - mockContext = { - rpc: mockRpcClient, - contract: mockContractProvider - }; - }); - - it('Should succesfully find the metadata', async (done) => { - mockRpcClient.getScript.mockResolvedValue({ - code: [{ prim: 'storage', args: [{ prim: 'pair', args: [{ prim: 'big_map', args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%metadata'] }, {}] }] }, { prim: 'code', args: [] }], - storage: { prim: 'Pair', args: [{ int: '32527' }, []] } - }); - mockContractProvider.getBigMapKeyByID.mockResolvedValue( - '7b226e616d65223a2274657374222c226465736372697074696f6e223a2241206d657461646174612074657374222c2276657273696f6e223a22302e31222c226c6963656e7365223a224d4954222c22617574686f7273223a5b225461717569746f203c68747470733a2f2f74657a6f737461717569746f2e696f2f3e225d2c22686f6d6570616765223a2268747470733a2f2f74657a6f737461717569746f2e696f2f227d' - ); - - const tzip16Uri = { - sha256hash: undefined, - protocol: 'tezos-storage', - location: '//KT1RF4nXUitQb2G8TE5H9zApatxeKLtQymtg/here' - }; - const metadata = await tezosStorageHandler.getMetadata(mockContractAbstraction, tzip16Uri, mockContext as any); - - expect(metadata).toEqual( - `{"name":"test","description":"A metadata test","version":"0.1","license":"MIT","authors":["Taquito <https://tezostaquito.io/>"],"homepage":"https://tezostaquito.io/"}` - ); - done(); - }); - - it('Should fail with InvalidUri when the URI is invalid', async (done) => { - mockRpcClient.getScript.mockResolvedValue({ - code: [{ prim: 'storage', args: [{ prim: 'pair', args: [{ prim: 'big_map', args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%metadata'] }, {}] }] }, { prim: 'code', args: [] }], - storage: { prim: 'Pair', args: [{ int: '32527' }, []] } - }); - - const tzip16Uri = { - sha256hash: undefined, - protocol: 'tezos-storage', - location: 'hello/world' // invalid - }; - try { - await tezosStorageHandler.getMetadata(mockContractAbstraction, tzip16Uri as any, mockContext as any); - } catch (ex) { - expect(ex).toBeInstanceOf(InvalidUri); - } - done(); - }); - - it('Should fail with BigMapMetadataNotFound when there is no big map %metadata in the storage', async (done) => { - mockRpcClient.getScript.mockResolvedValue({ - code: [{ prim: 'storage', args: [{ prim: 'pair', args: [{}, {}] }] }], - storage: { prim: 'Pair', args: [] } - }); - - const tzip16Uri = { - sha256hash: undefined, - protocol: 'tezos-storage', - location: '//KT1RF4nXUitQb2G8TE5H9zApatxeKLtQymtg/here' - }; - try { - await tezosStorageHandler.getMetadata(mockContractAbstraction, tzip16Uri, mockContext as any); - } catch (ex) { - expect(ex).toBeInstanceOf(BigMapMetadataNotFound); - } - done(); - }); - - it('Should fail with MetadataNotFound when the path extracted from the URI is not a key of the big map %metadata', async (done) => { - mockRpcClient.getScript.mockResolvedValue({ - code: [{ prim: 'storage', args: [{ prim: 'pair', args: [{ prim: 'big_map', args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%metadata'] }, {}] }] }, { prim: 'code', args: [] }], - storage: { prim: 'Pair', args: [{ int: '32527' }, []] } - }); - mockContractProvider.getBigMapKeyByID.mockResolvedValue(undefined); - - const tzip16Uri = { - sha256hash: undefined, - protocol: 'tezos-storage', - location: '//KT1RF4nXUitQb2G8TE5H9zApatxeKLtQymtg/here' - }; - try { - await tezosStorageHandler.getMetadata(mockContractAbstraction, tzip16Uri as any, mockContext as any); - } catch (ex) { - expect(ex).toBeInstanceOf(MetadataNotFound); - } - done(); - }); - - it('Should fail with InvalidMetadataType when metadata type is not bytes', async (done) => { - mockRpcClient.getScript.mockResolvedValue({ - code: [{ prim: 'storage', args: [{ prim: 'pair', args: [{ prim: 'big_map', args: [{ prim: 'string' }, { prim: 'bytes' }], annots: ['%metadata'] }, {}] }] }, { prim: 'code', args: [] }], - storage: { prim: 'Pair', args: [{ int: '32527' }, []] } - }); - mockContractProvider.getBigMapKeyByID.mockResolvedValue( - 'NOT-BYTES' - ); - - const tzip16Uri = { - sha256hash: undefined, - protocol: 'tezos-storage', - location: '//KT1RF4nXUitQb2G8TE5H9zApatxeKLtQymtg/here' - }; - try { - await tezosStorageHandler.getMetadata(mockContractAbstraction, tzip16Uri as any, mockContext as any); - } catch (ex) { - expect(ex).toBeInstanceOf(InvalidMetadataType); - } - done(); - }); -}); diff --git a/packages/taquito-tzip16/test/metadata-provider.spec.ts b/packages/taquito-tzip16/test/metadata-provider.spec.ts deleted file mode 100644 index 2d83c03135..0000000000 --- a/packages/taquito-tzip16/test/metadata-provider.spec.ts +++ /dev/null @@ -1,211 +0,0 @@ -import { Handler, MetadataProvider } from '../src/metadata-provider'; -import { InvalidMetadata, InvalidUri, ProtocolNotSupported } from '../src/tzip16-errors'; - -describe('Metadata provider test', () => { - let metadataProvider: MetadataProvider; - let handlers: Map<string, Handler> - let mockContractAbstraction: any = {}; - let mockContext: any = {}; - let mockHttpHandler: { - getMetadata: jest.Mock<any, any>; - }; - let mockTezosStorageHandler: { - getMetadata: jest.Mock<any, any>; - }; - let mockIpfsHttpHandler: { - getMetadata: jest.Mock<any, any>; - }; - - beforeEach(() => { - mockHttpHandler = { - getMetadata: jest.fn() - }; - mockTezosStorageHandler = { - getMetadata: jest.fn() - }; - mockIpfsHttpHandler = { - getMetadata: jest.fn() - }; - handlers = new Map<string, Handler>([ - ['http', mockHttpHandler], - ['https', mockHttpHandler], - ['tezos-storage', mockTezosStorageHandler], - ['ipfs', mockIpfsHttpHandler] - ]); - metadataProvider = new MetadataProvider(handlers); - }); - - it('Should succesfully fetch metadata on https', async (done) => { - mockHttpHandler.getMetadata.mockResolvedValue( - `{"name":"test","description":"A metadata test","version":"0.1","license":"MIT","authors":["Taquito <https://tezostaquito.io/>"],"homepage":"https://tezostaquito.io/"}` - ); - - const metadata = await metadataProvider.provideMetadata( - mockContractAbstraction, - 'https://storage.googleapis.com/tzip-16/metadata.json', - mockContext - ); - - expect(metadata).toMatchObject({ - uri: 'https://storage.googleapis.com/tzip-16/metadata.json', - metadata: { - name: 'test', - description: 'A metadata test', - version: '0.1', - license: 'MIT', - authors: ['Taquito <https://tezostaquito.io/>'], - homepage: 'https://tezostaquito.io/' - }, - integrityCheckResult: undefined, - sha256Hash: undefined - }); - done(); - }); - - it('Should succesfully fetch metadata on http', async (done) => { - mockHttpHandler.getMetadata.mockResolvedValue( - `{"name":"test"}` - ); - - const metadata = await metadataProvider.provideMetadata( - mockContractAbstraction, - 'http://storage.googleapis.com/tzip-16/metadata.json', - mockContext - ); - - expect(metadata).toMatchObject({ - uri: 'http://storage.googleapis.com/tzip-16/metadata.json', - metadata: {name: 'test'}, - integrityCheckResult: undefined, - sha256Hash: undefined - }); - done(); - }); - - it('Should succesfully fetch metadata for tezos-storage', async (done) => { - mockTezosStorageHandler.getMetadata.mockResolvedValue( - `{"name":"test","description":"A metadata test","version":"0.1","license":"MIT","authors":["Taquito <https://tezostaquito.io/>"],"homepage":"https://tezostaquito.io/"}` - ); - - const metadata = await metadataProvider.provideMetadata( - mockContractAbstraction, - 'tezos-storage://KT1QDFEu8JijYbsJqzoXq7mKvfaQQamHD1kX/%2Ffoo', - mockContext - ); - - expect(metadata).toMatchObject({ - uri: 'tezos-storage://KT1QDFEu8JijYbsJqzoXq7mKvfaQQamHD1kX/%2Ffoo', - metadata: { - name: 'test', - description: 'A metadata test', - version: '0.1', - license: 'MIT', - authors: ['Taquito <https://tezostaquito.io/>'], - homepage: 'https://tezostaquito.io/' - }, - integrityCheckResult: undefined, - sha256Hash: undefined - }); - done(); - }); - - it('Should succesfully fetch metadata for IPFS', async (done) => { - mockIpfsHttpHandler.getMetadata.mockResolvedValue( - `{"name":"test","description":"A metadata test","version":"0.1","license":"MIT","authors":["Taquito <https://tezostaquito.io/>"],"homepage":"https://tezostaquito.io/"}` - ); - - const metadata = await metadataProvider.provideMetadata( - mockContractAbstraction, - 'ipfs://QmcMUKkhXowQjCPtDVVXyFJd7W9LmC92Gs5kYH1KjEisdj', - mockContext - ); - - expect(metadata).toMatchObject({ - uri: 'ipfs://QmcMUKkhXowQjCPtDVVXyFJd7W9LmC92Gs5kYH1KjEisdj', - metadata: { - name: 'test', - description: 'A metadata test', - version: '0.1', - license: 'MIT', - authors: ['Taquito <https://tezostaquito.io/>'], - homepage: 'https://tezostaquito.io/' - }, - integrityCheckResult: undefined, - sha256Hash: undefined - }); - done(); - }); - - it('Should fail with InvalidUri', async (done) => { - try { - await metadataProvider.provideMetadata( - mockContractAbstraction, - 'This-uri-is-invalid', - mockContext - ); - } catch (ex) { - expect(ex).toBeInstanceOf(InvalidUri) - } - done(); - }); - - it('Should fail with InvalidMetadata when metadata are not a JSON object', async (done) => { - mockHttpHandler.getMetadata.mockResolvedValue(`"description": "Invalid metadata, not in JSON format"`); - try { - await metadataProvider.provideMetadata( - mockContractAbstraction, - 'https://test', - mockContext - ); - } catch (ex) { - expect(ex).toBeInstanceOf(InvalidMetadata) - } - done(); - }); - - it('Should extract protocol info properly', () => { - expect(metadataProvider['extractProtocolInfo']('tezos-storage://KT1RF4nXUitQb2G8TE5H9zApatxeKLtQymtg/here')).toMatchObject({ - sha256hash: undefined, - protocol: 'tezos-storage', - location: '//KT1RF4nXUitQb2G8TE5H9zApatxeKLtQymtg/here' - }); - - expect(metadataProvider['extractProtocolInfo']('tezos-storage:hello%2Fworld')).toMatchObject({ - sha256hash: undefined, - protocol: 'tezos-storage', - location: 'hello%2Fworld' - }); - - expect(metadataProvider['extractProtocolInfo']('tezos-storage:hello')).toMatchObject({ - sha256hash: undefined, - protocol: 'tezos-storage', - location: 'hello' - }); - - expect(metadataProvider['extractProtocolInfo']('tezos-storage://KT1GPDQvmV37orH1XH3SZmVVKFaMuzzqsmN7.mainnet/contents')).toMatchObject({ - sha256hash: undefined, - protocol: 'tezos-storage', - location: '//KT1GPDQvmV37orH1XH3SZmVVKFaMuzzqsmN7.mainnet/contents' - }); - - expect(metadataProvider['extractProtocolInfo']('sha256://0xeaa42ea06b95d7917d22135a630e65352cfd0a721ae88155a1512468a95cb750/https:%2F%2Ftezos.com')).toMatchObject({ - sha256hash: 'eaa42ea06b95d7917d22135a630e65352cfd0a721ae88155a1512468a95cb750', - protocol: 'https', - location: '%2F%2Ftezos.com' - }); - - expect(metadataProvider['extractProtocolInfo']('https://storage.googleapis.com/tzip-16/invalid.json')).toMatchObject({ - sha256hash: undefined, - protocol: 'https', - location: '//storage.googleapis.com/tzip-16/invalid.json' - }); - - expect(metadataProvider['extractProtocolInfo']('http://storage.googleapis.com/tzip-16/invalid.json')).toMatchObject({ - sha256hash: undefined, - protocol: 'http', - location: '//storage.googleapis.com/tzip-16/invalid.json' - }); - - expect(metadataProvider['extractProtocolInfo']('hello/world')).toBeUndefined(); - }); -}); diff --git a/packages/taquito-tzip16/test/tzip16-contract-abstraction.spec.ts b/packages/taquito-tzip16/test/tzip16-contract-abstraction.spec.ts deleted file mode 100644 index 6c4e147a08..0000000000 --- a/packages/taquito-tzip16/test/tzip16-contract-abstraction.spec.ts +++ /dev/null @@ -1,398 +0,0 @@ -import { Tzip16ContractAbstraction } from '../src/tzip16-contract-abstraction'; -import { BigMapMetadataNotFound, UriNotFound } from '../src/tzip16-errors'; - -describe('Tzip16 contract abstraction test', () => { - let mockMetadataProvider: { - provideMetadata: jest.Mock<any, any>; - }; - let mockContractAbstraction: any = {}; - let mockSchema: { - FindFirstInTopLevelPair: jest.Mock<any, any>; - }; - let mockContext: any = {}; - - let mockRpcContractProvider: { - getBigMapKeyByID: jest.Mock<any, any>; - }; - - beforeEach(() => { - mockMetadataProvider = { - provideMetadata: jest.fn() - }; - - mockSchema = { - FindFirstInTopLevelPair: jest.fn() - }; - - mockRpcContractProvider = { - getBigMapKeyByID: jest.fn() - }; - - mockMetadataProvider.provideMetadata.mockResolvedValue({ - uri: 'https://test', - metadata: { name: 'Taquito test' } - }); - - mockContext['metadataProvider'] = mockMetadataProvider; - mockContext['contract'] = mockRpcContractProvider; - - mockContractAbstraction['schema'] = mockSchema; - mockContractAbstraction['script'] = { - script: { - code: [], - storage: { - prim: 'Pair', - args: [ - { - int: '20350' - }, - [] - ] - } - } - }; - }); - - it('Should get the metadata', async (done) => { - mockSchema.FindFirstInTopLevelPair.mockReturnValue({ int: '20350' }); - mockRpcContractProvider.getBigMapKeyByID.mockResolvedValue('cafe'); - - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - const metadata = await tzip16Abs.getMetadata(); - - expect(metadata.metadata).toEqual({ name: 'Taquito test' }); - done(); - }); - - it('Should fail with BigMapMetadataNotFound', async (done) => { - mockSchema.FindFirstInTopLevelPair.mockReturnValue(undefined); - - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - - try { - await tzip16Abs.getMetadata(); - } catch (e) { - expect(e).toBeInstanceOf(BigMapMetadataNotFound); - } - done(); - }); - - it('Should fail with UriNotFound', async (done) => { - mockSchema.FindFirstInTopLevelPair.mockReturnValue({ int: '20350' }); - mockRpcContractProvider.getBigMapKeyByID.mockResolvedValue(undefined); - - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - - try { - await tzip16Abs.getMetadata(); - } catch (e) { - expect(e).toBeInstanceOf(UriNotFound); - } - done(); - }); - - it('Should properly add a valid view to the _metadataViewsObject property', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - // Act as we already fetched metadata; it contains one view - tzip16Abs['_metadataEnvelope'] = { - uri: '', - metadata: { - views: [ - { - name: 'multiply-the-nat-in-storage', - implementations: [ - { - michelsonStorageView: { - parameter: { prim: 'nat', args: [], annots: [] }, - returnType: { prim: 'nat', args: [], annots: [] }, - code: [ - { prim: 'DUP', args: [], annots: [] }, - { prim: 'CDR', args: [], annots: [] }, - { prim: 'CAR', args: [], annots: [] }, - { prim: 'SWAP', args: [], annots: [] }, - { prim: 'CAR', args: [], annots: [] }, - { prim: 'MUL', args: [], annots: [] } - ] - } - } - ] - } - ] - } - }; - // Return an object where the key is the view name and the value is a function which return a View instance - const metadataView = await tzip16Abs.metadataViews(); - expect(Object.keys(metadataView)[0]).toEqual('multiply-the-nat-in-storage'); - expect(typeof (Object.values(metadataView)[0])).toBe('function'); - expect(tzip16Abs['_metadataViewsObject']).toEqual(metadataView); - done(); - }); - - it('The _metadataViewsObject property should be empty when there is no view in metadata', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - // Act as we already fetched metadata; it contains no view - tzip16Abs['_metadataEnvelope'] = { - uri: '', - metadata: { - views: [] - } - }; - // Return an empty object - const metadataView = await tzip16Abs.metadataViews(); - expect(metadataView).toEqual({}); - expect(tzip16Abs['_metadataViewsObject']).toEqual(metadataView); - done(); - }); - - it('The _metadataViewsObject property should be empty when there is no view property in metadata', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - // Act as we already fetched metadata; it contains no view - tzip16Abs['_metadataEnvelope'] = { - uri: '', - metadata: {} - }; - // Return an empty object - const metadataView = await tzip16Abs.metadataViews(); - expect(metadataView).toEqual({}); - done(); - }); - - it('Should ignore view having an unsupported type', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - (tzip16Abs['_metadataEnvelope'] as any) = { - uri: '', - metadata: { - views: [ - { - name: 'unknownView', - implementations: [ - { - unknownViewType: { - returnType: { prim: 'nat', args: [], annots: [] }, - code: [{ prim: 'DUP', args: [], annots: [] },] - } - } - ] - } - ] - } - }; - const metadataView = await tzip16Abs.metadataViews(); - expect(metadataView).toEqual({}); - expect(tzip16Abs['_metadataViewsObject']).toEqual(metadataView); - done(); - }); - - it('Should ignore the unsupported type of view and add the supported one to the _metadataViewsObject property', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - // Act as we already fetched metadata; it contains a view having an unsupported type and a valid view - (tzip16Abs['_metadataEnvelope'] as any) = { - uri: '', - metadata: { - views: [ - { - name: 'unknownView', - implementations: [ - { - unknownViewType: { - returnType: { prim: 'nat', args: [], annots: [] }, - code: [{ prim: 'DUP', args: [], annots: [] },] - } - } - ] - }, - { - name: 'multiply-the-nat-in-storage', - implementations: [ - { - michelsonStorageView: { - parameter: { prim: 'nat', args: [], annots: [] }, - returnType: { prim: 'nat', args: [], annots: [] }, - code: [ - { prim: 'DUP', args: [], annots: [] }, - { prim: 'CDR', args: [], annots: [] }, - { prim: 'CAR', args: [], annots: [] }, - { prim: 'SWAP', args: [], annots: [] }, - { prim: 'CAR', args: [], annots: [] }, - { prim: 'MUL', args: [], annots: [] } - ] - } - } - ] - } - ] - } - }; - const metadataView = await tzip16Abs.metadataViews(); - expect(Object.keys(metadataView)[0]).toEqual('multiply-the-nat-in-storage'); - expect(Object.keys(metadataView)[1]).toBeUndefined(); - expect(tzip16Abs['_metadataViewsObject']).toEqual(metadataView); - done(); - }); - - it('Should ignore view having no code property', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - (tzip16Abs['_metadataEnvelope'] as any) = { - uri: '', - metadata: { - views: [ - { - name: 'invalid-view-no-code', - implementations: [ - { - michelsonStorageView: { - parameter: { prim: 'nat', args: [], annots: [] }, - returnType: { prim: 'nat', args: [], annots: [] }, - } - } - ] - } - ] - } - }; - const metadataView = await tzip16Abs.metadataViews(); - expect(metadataView).toEqual({}); - done(); - }); - - it('Should ignore view having no returnType property', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - (tzip16Abs['_metadataEnvelope'] as any) = { - uri: '', - metadata: { - views: [ - { - name: 'invalid-view-no-return-type', - implementations: [ - { - michelsonStorageView: { - parameter: { prim: 'nat', args: [], annots: [] }, - code: [{ prim: 'DUP', args: [], annots: [] }] - } - } - ] - } - ] - } - }; - const metadataView = await tzip16Abs.metadataViews(); - expect(metadataView).toEqual({}); - done(); - }); - - it('Should ignore view having no implementation', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - (tzip16Abs['_metadataEnvelope'] as any) = { - uri: '', - metadata: { - views: [ - { - name: 'invalid-view', - implementations: [] - } - ] - } - }; - const metadataView = await tzip16Abs.metadataViews(); - expect(metadataView).toEqual({}); - done(); - }); - - it('Should ignore view having no implementation property', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - (tzip16Abs['_metadataEnvelope'] as any) = { - uri: '', - metadata: { - views: [ - { - name: 'invalid-view' - } - ] - } - }; - const metadataView = await tzip16Abs.metadataViews(); - expect(metadataView).toEqual({}); - done(); - }); - - it('Should ignore view having no name property', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - (tzip16Abs['_metadataEnvelope'] as any) = { - uri: '', - metadata: { - views: [ - { - implementations: [ - { - michelsonStorageView: { - parameter: { prim: 'nat', args: [], annots: [] }, - returnType: { prim: 'nat', args: [], annots: [] }, - code: [{ prim: 'DUP', args: [], annots: [] }] - } - } - ] - } - ] - } - }; - const metadataView = await tzip16Abs.metadataViews(); - expect(metadataView).toEqual({}); - done(); - }); - - it('Should properly add a valid view to the _metadataViewsObject property', async (done) => { - const tzip16Abs = new Tzip16ContractAbstraction(mockContractAbstraction as any, mockContext); - // Act as we already fetched metadata; it contains one view - tzip16Abs['_metadataEnvelope'] = { - uri: '', - metadata: { - views: [ - { - name: 'multiply-the-nat-in-storage', - implementations: [ - { - michelsonStorageView: { - parameter: { prim: 'nat', args: [], annots: [] }, - returnType: { prim: 'nat', args: [], annots: [] }, - code: [{ prim: 'DUP', args: [], annots: [] }] - } - } - ] - }, - { - name: 'multiply-the-nat-in-storage', - implementations: [ - { - michelsonStorageView: { - parameter: { prim: 'nat', args: [], annots: [] }, - returnType: { prim: 'nat', args: [], annots: [] }, - code: [{ prim: 'DUP', args: [], annots: [] }] - } - } - ] - }, - { - name: 'multiply-the-nat-in-storage', - implementations: [ - { - michelsonStorageView: { - parameter: { prim: 'nat', args: [], annots: [] }, - returnType: { prim: 'nat', args: [], annots: [] }, - code: [ - { prim: 'DUP', args: [], annots: [] } - ] - } - } - ] - } - ] - } - }; - const metadataView = await tzip16Abs.metadataViews(); - expect(Object.keys(metadataView)[0]).toEqual('multiply-the-nat-in-storage'); - expect(Object.keys(metadataView)[1]).toEqual('multiply-the-nat-in-storage1'); - expect(Object.keys(metadataView)[2]).toEqual('multiply-the-nat-in-storage2'); - expect(Object.keys(metadataView)[3]).toBeUndefined(); - done(); - }); -}); diff --git a/packages/taquito-tzip16/test/viewKind/michelson-storage-view.spec.ts b/packages/taquito-tzip16/test/viewKind/michelson-storage-view.spec.ts deleted file mode 100644 index b8307d9a83..0000000000 --- a/packages/taquito-tzip16/test/viewKind/michelson-storage-view.spec.ts +++ /dev/null @@ -1,386 +0,0 @@ -import { ForbiddenInstructionInViewCode, NoParameterExpectedError } from '../../src/tzip16-errors'; -import { MichelsonStorageView } from '../../src/viewKind/michelson-storage-view'; - -describe('MichelsonStorageView test', () => { - let mockContractAbstraction: any = {}; - let mockRpcClient: any; - - beforeEach(() => { - mockRpcClient = { - getBlock: jest.fn(), - getBalance: jest.fn(), - getChainId: jest.fn(), - runCode: jest.fn() - }; - - mockContractAbstraction.address = 'KT1test'; - mockContractAbstraction.script = { "code": [{ "prim": "parameter", "args": [{ "prim": "unit" }] }, { "prim": "storage", "args": [{ "prim": "pair", "args": [{ "prim": "nat" }, { "prim": "big_map", "args": [{ "prim": "string" }, { "prim": "bytes" }], "annots": ["%metadata"] }] }] }, { "prim": "code", "args": [[{ "prim": "PUSH", "args": [{ "prim": "nat" }, { "int": "42" }] }, { "prim": "FAILWITH" }]] }], "storage": { "prim": "Pair", "args": [{ "int": "7" }, { "int": "38671" }] } } - - mockRpcClient.getBlock.mockResolvedValue({ operations: [[{ hash: 'test' }], [], [], []], header: { timestamp: "2021-01-06T05:14:43Z" } }); - mockRpcClient.getBalance.mockResolvedValue("0"); - mockRpcClient.getChainId.mockResolvedValue("NetTest"); - }); - - it('Should succesfully execute a view that get the balance of the contrat', async (done) => { - mockRpcClient.runCode.mockResolvedValue({ "storage": { "prim": "Some", "args": [{ "int": "0" }] }, "operations": [] }); - - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, - [{ "prim": "DROP", "args": [], "annots": [] }, { "prim": "BALANCE", "args": [], "annots": [] }] - ); - const result = await michelsonStorageView.executeView(); - - expect(result.toString()).toEqual('0'); - done(); - }); - - it('Should throw IllegalInstructionInViewCode when code of the view contains the instruction AMOUNT', async (done) => { - const viewCode = [{ "prim": "AMOUNT", "args": [], "annots": [] }] // code - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - try { - await michelsonStorageView.executeView(); - } - catch (e) { - expect(e).toBeInstanceOf(ForbiddenInstructionInViewCode); - expect(e.message).toEqual('Erreur found in the code of the view. It contains a forbidden instruction: AMOUNT.') - } - done(); - }); - - it('Should throw ForbiddenInstructionInViewCode when code of the view contains the instruction CREATE_CONTRACT', async (done) => { - const viewCode = [{ "prim": "CAR", "args": [], "annots": [] }, { "prim": "CREATE_CONTRACT", "args": [], "annots": [] }, { "prim": "DROP", "args": [], "annots": [] }] // code - - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - try { - await michelsonStorageView.executeView(); - } - catch (e) { - expect(e).toBeInstanceOf(ForbiddenInstructionInViewCode); - expect(e.message).toEqual('Erreur found in the code of the view. It contains a forbidden instruction: CREATE_CONTRACT.') - } - done(); - }); - - it('Should throw ForbiddenInstructionInViewCode when code of the view contains the instruction SENDER', async (done) => { - const viewCode = [{ "prim": "CAR", "args": [], "annots": [] }, { "prim": "SENDER", "args": [], "annots": [] }] // code - - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - try { - await michelsonStorageView.executeView(); - } - catch (e) { - expect(e).toBeInstanceOf(ForbiddenInstructionInViewCode); - expect(e.message).toEqual('Erreur found in the code of the view. It contains a forbidden instruction: SENDER.') - } - done(); - }); - - it('Should throw ForbiddenInstructionInViewCode when code of the view contains the instruction SET_DELEGATE', async (done) => { - const viewCode = [{ "prim": "SET_DELEGATE", "args": [], "annots": [] }] // code - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - try { - await michelsonStorageView.executeView(); - } - catch (e) { - expect(e).toBeInstanceOf(ForbiddenInstructionInViewCode); - expect(e.message).toEqual('Erreur found in the code of the view. It contains a forbidden instruction: SET_DELEGATE.') - } - done(); - }); - - it('Should throw ForbiddenInstructionInViewCode when code of the view contains the instruction SOURCE', async (done) => { - const viewCode = [{ "prim": "SOURCE", "args": [], "annots": [] }] // code - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - try { - await michelsonStorageView.executeView(); - } - catch (e) { - expect(e).toBeInstanceOf(ForbiddenInstructionInViewCode); - expect(e.message).toEqual('Erreur found in the code of the view. It contains a forbidden instruction: SOURCE.') - } - done(); - }); - - it('Should throw ForbiddenInstructionInViewCode when code of the view contains the instruction TRANSFER_TOKENS', async (done) => { - const viewCode = [{ "prim": "TRANSFER_TOKENS", "args": [], "annots": [] }] // code - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - try { - await michelsonStorageView.executeView(); - } - catch (e) { - expect(e).toBeInstanceOf(ForbiddenInstructionInViewCode); - expect(e.message).toEqual('Erreur found in the code of the view. It contains a forbidden instruction: TRANSFER_TOKENS.') - } - done(); - }); - - it('Should throw ForbiddenInstructionInViewCode when code of the view contains a nested forbidden instruction', async (done) => { - const viewCode = [{ "prim": "test", "args": [{ "prim": "test2", "args": [{ "prim": 'TRANSFER_TOKENS' }] }], "annots": [] }] // code - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - try { - await michelsonStorageView.executeView(); - } - catch (e) { - expect(e).toBeInstanceOf(ForbiddenInstructionInViewCode); - expect(e.message).toEqual('Erreur found in the code of the view. It contains a forbidden instruction: TRANSFER_TOKENS.') - } - done(); - }); - - it('Should throw ForbiddenInstructionInViewCode when code of the view contains the instruction SELF which is not followed by an instruction ADDRESS', async (done) => { - const viewCode = [{ "prim": "SELF", "args": [], "annots": [] }, { "prim": "CONTRACT", "args": [], "annots": [] }] // code - - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - try { - await michelsonStorageView.executeView(); - } - catch (e) { - expect(e).toBeInstanceOf(ForbiddenInstructionInViewCode); - expect(e.message).toEqual('Erreur found in the code of the view. It contains a forbidden instruction: the instruction SELF should only be used before ADDRESS.') - } - done(); - }); - - it('Should throw ForbiddenInstructionInViewCode when code of the view contains the instruction SELF which is not followed by an instruction ADDRESS', async (done) => { - const viewCode = [{ "prim": "test", "args": [{ "prim": "SELF" }, { "prim": "test2" }], "annots": [] }] // code - - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - try { - await michelsonStorageView.executeView(); - } - catch (e) { - expect(e).toBeInstanceOf(ForbiddenInstructionInViewCode); - expect(e.message).toEqual('Erreur found in the code of the view. It contains a forbidden instruction: the instruction SELF should only be used before ADDRESS.') - } - done(); - }); - - it('Should be valid when code of the view contains the instruction SELF followed by an instruction ADDRESS', async (done) => { - mockRpcClient.runCode.mockResolvedValue({ "storage": { "prim": "Some", "args": [{ "int": "0" }] }, "operations": [] }); - const viewCode = [{ "prim": "CAR", "args": [], "annots": [] }, { "prim": "SELF", "args": [], "annots": [] }, { "prim": "ADDRESS", "args": [], "annots": [] }, { "prim": "CAR", "args": [], "annots": [] }] // code - - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - const result = await michelsonStorageView.executeView(); - - expect(result.toString()).toEqual('0'); - done(); - }); - - it('Should adapt view code to context', async (done) => { - const viewCode = [{ "prim": "CAR" }, { "prim": "NOW", "args": [], "annots": [] }, { "prim": "SELF", "args": [], "annots": [] }, { "prim": "ADDRESS", "args": [], "annots": [] }, { "prim": "CAR", "args": [], "annots": [] }, { "prim": "BALANCE", "args": [], "annots": [] }, { "prim": "CAR", "args": [], "annots": [] }, { "prim": "CHAIN_ID", "args": [], "annots": [] }] // code - - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - const code = michelsonStorageView['adaptViewCodeToContext'](viewCode, '1000', "2000-01-06T05:14:43Z", 'chainTest') - expect(code).toEqual([{ "prim": "CAR" }, [{ prim: 'PUSH', args: [{ prim: 'timestamp' }, { string: "2000-01-06T05:14:43Z" }] }], [{ prim: 'PUSH', args: [{ prim: 'address' }, { string: 'KT1test' }] }, { prim: 'CONTRACT', args: [{ prim: 'unit' }] }, { prim: 'IF_NONE', args: [[{ prim: 'UNIT' }, { prim: 'FAILWITH' }], []] }], { "prim": "ADDRESS", "args": [], "annots": [] }, { "prim": "CAR", "args": [], "annots": [] }, [{ prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '1000' }] }], { "prim": "CAR", "args": [], "annots": [] }, [{ prim: 'PUSH', args: [{ prim: 'string' }, { string: 'chainTest' }] }]]); - done(); - }); - - it('Should adapt view code to context when instruction to replace is not at first level of the array, test 1', async (done) => { - const viewCode = [{ "prim": "test" }, { "prim": "test2", "args": [{ "prim": "BALANCE" }, { "prim": "test3", "args": [{ "prim": "CHAIN_ID" }] }] }, { "prim": "test4" }] // code - - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - const code = michelsonStorageView['adaptViewCodeToContext'](viewCode, '1000', "2000-01-06T05:14:43Z", 'chainTest') - expect(code).toEqual([{ "prim": "test" }, { "prim": "test2", "args": [[{ "prim": 'PUSH', "args": [{ "prim": 'mutez' }, { "int": '1000' }] }], { "prim": "test3", "args": [[{ "prim": 'PUSH', "args": [{ "prim": 'string' }, { "string": 'chainTest' }] }]] }] }, { "prim": "test4" }]); - done(); - }); - - it('Should adapt view code to context when instruction to replace is not at first level of the array, test 1', async (done) => { - const viewCode = [{ "prim": "test", "args": [{ "prim": "test2", "args": [{ "prim": "test3", "args": [{ "prim": "test4" }, { "prim": "BALANCE" }] }] }] }, { "prim": "CHAIN_ID" }, { "prim": "test4" }] // code - - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - viewCode - ); - - const code = michelsonStorageView['adaptViewCodeToContext'](viewCode, '1000', "2000-01-06T05:14:43Z", 'chainTest') - expect(code).toEqual([{ "prim": "test", "args": [{ "prim": "test2", "args": [{ "prim": "test3", "args": [{ "prim": "test4" }, [{ prim: 'PUSH', args: [{ prim: 'mutez' }, { int: '1000' }] }]] }] }] }, [{ prim: 'PUSH', args: [{ prim: 'string' }, { string: 'chainTest' }] }], { "prim": "test4" }]); - done(); - }); - - it('Should format Unit arguments and Unit view parameter properly, test 1', async (done) => { - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - [{ "prim": "CAR", "args": [], "annots": [] }] // code - ); - - const { arg, viewParameterType } = michelsonStorageView['formatArgsAndParameter']([]); - expect(arg).toEqual({ prim: 'Unit' }); - expect(viewParameterType).toEqual({ args: [], prim: 'unit', annots: [] }); - done(); - }); - - it('Should format Unit arguments and Unit view parameter properly, test 2', async (done) => { - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - [{ "prim": "CAR", "args": [], "annots": [] }] // code - ); - - const { arg, viewParameterType } = michelsonStorageView['formatArgsAndParameter'](['Unit']); - expect(arg).toEqual({ prim: 'Unit' }); - expect(viewParameterType).toEqual({ args: [], prim: 'unit', annots: [] }); - done(); - }); - - it('Should format Unit arguments and Unit view parameter properly, test 2', async (done) => { - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - [{ "prim": "CAR", "args": [], "annots": [] }], // code - { args: [], prim: 'unit', annots: [] } - ); - - const { arg, viewParameterType } = michelsonStorageView['formatArgsAndParameter'](['Unit']); - expect(arg).toEqual({ prim: 'Unit' }); - expect(viewParameterType).toEqual({ args: [], prim: 'unit', annots: [] }); - done(); - }); - - it('Should format Unit arguments and Unit view parameter properly, test 2', async (done) => { - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - [{ "prim": "CAR", "args": [], "annots": [] }], // code - { args: [], prim: 'unit', annots: [] } - ); - - const { arg, viewParameterType } = michelsonStorageView['formatArgsAndParameter']([]); - expect(arg).toEqual({ prim: 'Unit' }); - expect(viewParameterType).toEqual({ args: [], prim: 'unit', annots: [] }); - done(); - }); - - it('Should throw NoParameterExpectedError, test 1', async (done) => { - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - [{ "prim": "CAR", "args": [], "annots": [] }], // code - { args: [], prim: 'unit', annots: [] } - ); - - try { - michelsonStorageView['formatArgsAndParameter'](['test']); - } catch (e) { - expect(e).toBeInstanceOf(NoParameterExpectedError) - } - done(); - }); - - it('Should throw NoParameterExpectedError, test2', async (done) => { - const michelsonStorageView = new MichelsonStorageView( - 'test', - mockContractAbstraction, - mockRpcClient, - { "prim": "mutez", "args": [], "annots": [] }, // returnType - [{ "prim": "CAR", "args": [], "annots": [] }], // code - ); - - try { - michelsonStorageView['formatArgsAndParameter'](['test']); - } catch (e) { - expect(e).toBeInstanceOf(NoParameterExpectedError) - } - done(); - }); -}); diff --git a/packages/taquito-tzip16/tsconfig.json b/packages/taquito-tzip16/tsconfig.json deleted file mode 100644 index 51c10f5c54..0000000000 --- a/packages/taquito-tzip16/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "declarationDir": "dist/types", - "outDir": "dist/lib", - "typeRoots": [ - "node_modules/@types" - ], - "jsx": "react" - }, - "include": [ - "src" - ] - } - \ No newline at end of file diff --git a/packages/taquito-tzip16/tsconfig.prod.json b/packages/taquito-tzip16/tsconfig.prod.json deleted file mode 100644 index a18f282e4b..0000000000 --- a/packages/taquito-tzip16/tsconfig.prod.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "../../tsconfig.prod.json", - "compilerOptions": { - "declarationDir": "./dist/types", - "outDir": "./dist/lib", - "typeRoots": ["./node_modules/@types"], - "jsx": "react" - }, - "include": ["./src/**/*"] - } - \ No newline at end of file diff --git a/packages/taquito-tzip16/tslint.json b/packages/taquito-tzip16/tslint.json deleted file mode 100644 index 9041ea6e1f..0000000000 --- a/packages/taquito-tzip16/tslint.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "../../tslint.json" -} - \ No newline at end of file diff --git a/packages/taquito-utils/README.md b/packages/taquito-utils/README.md index ca9f8af766..9424548b19 100644 --- a/packages/taquito-utils/README.md +++ b/packages/taquito-utils/README.md @@ -1,3 +1,3 @@ -# Taquito Utils package +# Taquito Utils package > Our current implementation of the Michelson parser is a prototype. The current implementation is naïve. We are likely going to switch to using the Nomadic Michelson encoder in the future, as per Issue https://gitlab.com/tezos/tezos/issues/581 \ No newline at end of file diff --git a/packages/taquito-utils/package-lock.json b/packages/taquito-utils/package-lock.json index 047df4baa1..252822d2f6 100644 --- a/packages/taquito-utils/package-lock.json +++ b/packages/taquito-utils/package-lock.json @@ -1,37 +1,38 @@ { "name": "@taquito/utils", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, @@ -45,12 +46,12 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -64,129 +65,129 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -244,9 +245,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -268,12 +269,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -349,49 +350,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -632,12 +633,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -685,9 +694,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -733,9 +742,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -743,9 +752,9 @@ } }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", "dev": true }, "@types/normalize-package-data": { @@ -761,9 +770,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -773,18 +782,18 @@ "dev": true }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, "abab": { @@ -850,6 +859,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1021,9 +1038,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1079,6 +1096,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1292,63 +1338,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -1386,19 +1375,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -1454,9 +1430,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -1544,16 +1520,10 @@ "sha.js": "^2.4.0" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -1620,9 +1590,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -1678,6 +1648,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -1719,6 +1720,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true } } }, @@ -1788,12 +1795,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1826,9 +1827,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -1844,20 +1845,63 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "exit": { @@ -1908,69 +1952,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -2007,6 +1988,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -2043,11 +2035,34 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -2179,9 +2194,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -2216,9 +2231,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2260,9 +2275,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "growly": { @@ -2273,9 +2288,9 @@ "optional": true }, "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", "dev": true, "requires": { "minimist": "^1.2.5", @@ -2378,6 +2393,12 @@ "safe-buffer": "^5.2.0" } }, + "highlight.js": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.0.tgz", + "integrity": "sha512-EfrUGcQ63oLJbj0J0RI9ebX6TAITbsDBLbsjr881L/X5fMO9+oadKzEF21C7R3ULKG6Gv3uoab2HiqVJa/4+oA==", + "dev": true + }, "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", @@ -2437,9 +2458,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -2504,12 +2525,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -2534,32 +2566,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -2570,13 +2621,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", @@ -2624,9 +2672,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -2652,9 +2700,9 @@ } }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2742,6 +2790,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -2753,27 +2824,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -3104,28 +3197,10 @@ "semver": "^7.3.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } @@ -3199,9 +3274,9 @@ "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -3246,6 +3321,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -3279,9 +3367,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -3349,9 +3437,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3369,12 +3457,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -3384,8 +3515,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "locate-path": { @@ -3409,6 +3539,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3452,29 +3588,9 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, - "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" - } - }, "lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", @@ -3529,9 +3645,9 @@ } }, "marked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz", - "integrity": "sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.4.tgz", + "integrity": "sha512-6x5TFGCTKSQBLTZtOburGxCxFEBJEGYVLwCMTBCxzvyuisGcC20UNzDSJhCr/cJ/Kmh6ulfJm10g6WWEAJ3kvg==", "dev": true }, "md5.js": { @@ -3561,18 +3677,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -3604,13 +3720,27 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "ms": { "version": "2.1.2", @@ -3680,9 +3810,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -3694,30 +3824,17 @@ "which": "^2.0.2" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", "dev": true, "optional": true } @@ -3742,12 +3859,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -3782,43 +3907,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3866,15 +3954,6 @@ "mimic-fn": "^2.1.0" } }, - "onigasm": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", - "integrity": "sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA==", - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } - }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -3944,9 +4023,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -4027,6 +4106,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -4049,9 +4134,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -4073,16 +4158,17 @@ "dev": true }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -4167,14 +4253,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "readable-stream": { @@ -4225,48 +4303,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -4295,24 +4339,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -4333,18 +4359,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -4431,12 +4445,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -4456,6 +4479,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -4479,6 +4514,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -4489,14 +4530,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -4512,14 +4545,6 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "safe-buffer": { @@ -4598,34 +4623,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4649,21 +4646,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4684,12 +4666,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -4720,36 +4696,6 @@ "remove-trailing-separator": "^1.0.1" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -4759,15 +4705,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -4818,12 +4755,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -4869,16 +4800,6 @@ "dev": true, "optional": true }, - "shiki": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.3.tgz", - "integrity": "sha512-NEjg1mVbAUrzRv2eIcUt3TG7X9svX7l3n3F5/3OdFq+/BxUdmBOeKGiH4icZJBLHy354Shnj6sfBTemea2e7XA==", - "dev": true, - "requires": { - "onigasm": "^2.2.5", - "vscode-textmate": "^5.2.0" - } - }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -4951,69 +4872,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5025,19 +4883,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -5060,6 +4905,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -5090,13 +4964,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -5110,9 +4987,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -5142,9 +5019,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -5220,63 +5097,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -5471,12 +5291,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -5491,9 +5310,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -5502,47 +5321,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -5550,9 +5362,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tslint": { @@ -5623,15 +5435,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5640,12 +5443,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -5662,34 +5459,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -5701,14 +5496,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tunnel-agent": { @@ -5742,9 +5529,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { @@ -5757,34 +5544,34 @@ } }, "typedoc": { - "version": "0.20.32", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.20.32.tgz", - "integrity": "sha512-GSopd/tiqoKE3fEdvhoaEpR9yrEPsR9tknAjkoeSPL6p1Rq5aVsKxBhhF6cwoDJ7oWjpvnm8vs0rQN0BxEHuWQ==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.19.2.tgz", + "integrity": "sha512-oDEg1BLEzi1qvgdQXc658EYgJ5qJLVSeZ0hQ57Eq4JXy6Vj2VX4RVo18qYxRWz75ifAaYuYNBUCnbhjd37TfOg==", "dev": true, "requires": { - "colors": "^1.4.0", - "fs-extra": "^9.1.0", - "handlebars": "^4.7.7", - "lodash": "^4.17.21", + "fs-extra": "^9.0.1", + "handlebars": "^4.7.6", + "highlight.js": "^10.2.0", + "lodash": "^4.17.20", "lunr": "^2.3.9", - "marked": "^2.0.1", + "marked": "^1.1.1", "minimatch": "^3.0.0", "progress": "^2.0.3", + "semver": "^7.3.2", "shelljs": "^0.8.4", - "shiki": "^0.9.3", - "typedoc-default-themes": "^0.12.9" + "typedoc-default-themes": "^0.11.4" }, "dependencies": { "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "universalify": "^1.0.0" } }, "jsonfile": { @@ -5795,38 +5582,46 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", "dev": true } } }, "typedoc-default-themes": { - "version": "0.12.9", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.12.9.tgz", - "integrity": "sha512-Jd5fYTiqzinZdoIY382W7tQXTwAzWRdg8KbHfaxmb78m1/3jL9riXtk23oBOKwhi8GFVykCOdPzEJKY87/D0LQ==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.11.4.tgz", + "integrity": "sha512-Y4Lf+qIb9NTydrexlazAM46SSLrmrQRqWiD52593g53SsmUFioAsMWt8m834J6qsp+7wHRjxCXSZeiiW5cMUdw==", "dev": true }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-EWhx3fHy3M9JbaeTnO+rEqzCe1wtyQClv6q3YWq0voOj4E+bMZBErVS1GAHPDiRGONYq34M1/d8KuQMgvi6Gjw==", + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.6.tgz", + "integrity": "sha512-oASI1FOJ7BBFkSCNDZ446EgkSuHkOZBuqRFrwXIKWCoXw8ZXQETooTQjkAcBS03Acab7ubCKsXnwuV2svy061g==", "dev": true, "optional": true }, @@ -5840,14 +5635,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "universalify": { @@ -5893,19 +5680,13 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -5942,15 +5723,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5963,16 +5735,15 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -6009,12 +5780,6 @@ "extsprintf": "^1.2.0" } }, - "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -6090,9 +5855,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -6100,6 +5865,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -6114,6 +5880,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -6130,9 +5902,9 @@ "dev": true }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -6159,9 +5931,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -6177,15 +5949,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaml": { @@ -6211,25 +5977,17 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", diff --git a/packages/taquito-utils/package.json b/packages/taquito-utils/package.json index 83973cdbf6..a75429a54b 100644 --- a/packages/taquito-utils/package.json +++ b/packages/taquito-utils/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/utils", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "converts michelson data and types into convenient JS/TS objects", "keywords": [ "tezos", @@ -31,10 +31,8 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ../taquito/version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w", - "test": "jest" + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", + "start": "rollup -c rollup.config.ts -w" }, "lint-staged": { "{src,test}/**/*.ts": [ @@ -68,13 +66,13 @@ "buffer": "^5.6.0" }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -86,13 +84,13 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.32", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } diff --git a/packages/taquito-utils/signature.json b/packages/taquito-utils/signature.json index be801b5e6e..45f0b783ca 100644 --- a/packages/taquito-utils/signature.json +++ b/packages/taquito-utils/signature.json @@ -10,15 +10,15 @@ }, { "path": "dist/taquito-utils.es5.js", - "sha512": "4ad7437ac7d14119dea9c80189d04bb6a48b8b15ab26ae50530c72054b8793ad8e15557c1755b4fc508bd7f7ccb25df0cb0b03336171319ff3eab143e2924676" + "sha512": "9f47e8fc5fe90abe937f3d46bfab7ea1ddced7991cfd8b4fdac5c6ceda0691162de7a4a70524c086b251630be22ec37083a8ccdf5852c6790a066b5aefec5643" }, { "path": "dist/lib/taquito-utils.js", - "sha512": "6bcc206db868d3a158e2a4476b3edb621ccf1fb41f5a75cc509704248afe378d3cc431390986c6af802f709699457aa74e5b40c84bbfccaeff5d902ce36123c0" + "sha512": "a6492e7caad924f2aad6aab04fa97cad33d36fb212244fb52c49b62940c03e33ec69242e579a3738f9d6feb737570c1f83e92d6ed1e6e5f9767a075ddef002cb" }, { "path": "dist/taquito-utils.umd.js", - "sha512": "8a1fc6095d4c88d0370818248f0389b5b44929e8022d9e067c7adee1dbe35eef695ae09025567c0e3004229d4026d2e27d5d986b6ef6641901c414743c379502" + "sha512": "57d8962dd5dc91ddbee3c907f975110cc3c5a3c06d794bef755461ca757abebb474083da98b469196159a0951fd7061ec8d4b3e6418e9e5a3618dc8895950cd3" }, { "path": "dist/lib/validators.js", @@ -30,15 +30,15 @@ }, { "path": "dist/taquito-utils.es5.js.map", - "sha512": "2767129ef4568323876b48c51dbf2738e4dab9ed1771774a7cf85a5a720c952d971f11b69ae6ff6d3e4b20b24f889c4e791f0e8393e41e07385c0d9c91dd28c3" + "sha512": "c3f5794b968eda4ad4ccb08a4e9feb7b9869c3cc83390fcdcb3379792b2056d25e39d298f2ffff52c2c1e3bbc63e84e85508b9d9b52eab25016ab053123997ac" }, { "path": "dist/lib/taquito-utils.js.map", - "sha512": "8bb851fdc72dd7f1eb6b923af598b7f9a0fe799429a055855cac638f85a874507a7a879eb82b50680db5228e828fdc48274413848269c5a286bc5c22dcb76e43" + "sha512": "d3d0ac60f61166e84ba65f23091135441f310bce601d2f9a1bfe56da8b123dee4fcb27e2db7ea9619001de48de2b428d3fc2f369fc09535dd76a97371d5c31d1" }, { "path": "dist/taquito-utils.umd.js.map", - "sha512": "37844b6c0f2436ce7612727b5a033da4e4bea4274df1e916147313804e17553230b2726e030506aec335520cd87b69e936a0c6ffbe9c62be980d7ce257d84bc5" + "sha512": "30936d516518680089434058a524bed52ba105ecb81c1feaded9b643c9fa866f7cc8d8d075cad5abd112897ddd30c69e044000dea23781b358b0c7e637378302" }, { "path": "dist/lib/validators.js.map", @@ -54,7 +54,7 @@ }, { "path": "dist/types/taquito-utils.d.ts", - "sha512": "338ffde57329bcbf50881b88dc4d72ee990ba204aba170828a303a49633e974494b48f4ff2c17e942ac599fb9e0c26cb4f2b2ec64cea1df15c77425385518ccf" + "sha512": "97ab6e7da0a5d418b5a2a75ce115aaa9d9222fb48eba8084c9692123951efc7cac02fd11e96a43bbc60b57d96022620fb7f2138a8f6ebbdba835eee47c1ed827" }, { "path": "dist/types/validators.d.ts", @@ -95,7 +95,7 @@ "typings", "version" ], - "sha512": "9755739c8bd025d2c605909fee27d8373e6d5d4b088e8039a6aa3b299ad3f481695500396ae0478826ec73096ddb11df50c75ea8d7c7621272a3747feaa70289" + "sha512": "9afeea75876fe459440a9a6a379b03fd0782f49aee037d48b03f56cc28c117d85bf8675d8c2cedffc0f7e4991a12b9b8b78c629c201c47a11c34911854d36b57" } }, { @@ -103,7 +103,7 @@ "value": { "packageJson": { "name": "@taquito/utils", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "converts michelson data and types into convenient JS/TS objects", "keywords": [ "tezos", @@ -169,13 +169,13 @@ "buffer": "^5.6.0" }, "devDependencies": { - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -187,18 +187,18 @@ "rollup-plugin-sourcemaps": "^0.6.3", "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typedoc": "^0.20.23", - "typescript": "^4.1.5" + "typedoc": "^0.19.2", + "typescript": "^4.0.3" }, "gitHead": "551e35aeff7d6dcde1c72284238c0ed3c3aae77e" } } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/UMCRAD9Qy5GYHsngAAEnsQAI0aVnCzRBDVIMgJlYmG3BHi\nym+B+M3h3CR8nN5tFqAdsS/rDPCTMvucut0Feg8HptBbWT3ht8fMU+vsBJ7r3Lx2\n0bL/d5CC8copKC11+xSIqaeTjHhKrbzH87mLW+97NqkSwMFUqRKInhJXRh55qaiV\n4CkToyj0x1sGaDujelCgcnkrFg6L0wBeyHPSiTlXjkVur0oeXcfzdRd5LJQz+U89\nQeBUj7TvIM1Ao+8szfk/K1DqKXU4O/kuclKJmUaD0m5BLohqHYhyL6K8JYOqxQfN\nJR1BxQoW7SnOYiL+0rU3wanHSpVKhpEHE8oGxjyHw11lSf3kZa2KMd+CD3nCpQ4D\naMhYDuFjaDC5vJRMGrZp8008qatwaIuSVfdR+pxGB0cehVZmuq87UmBGomaL2p9/\nbPDuK/Gs31gGCws/eeYDtqb5IXR807YLoSO/cF6gKw3MBlL1wiWty85HzkYxFJy6\nfWbwbrBOT+1dzTxhcUJYUv9+op1CAaF5grPv+KLJgPNzqfwwvmelK50quxfps+Gc\nVlSv1jAgzEIEdqbJfLlinpbg+M0wCBU4Ixj/66omgthklhdvpKswIS2sQCEZh6Re\nWhLVyIHAUIf6Q67ZFzCboQ65q6A3nJiJEmHO6s2f0jk6VDq/bGLiBsz3eR8K7xZ8\n6+hL4igSDE3/0LdErbN1\n=RbTt\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSvCRAD9Qy5GYHsngAAPl8QAGJznarcggYVjDKMroQdmp6/\n3Mx/kqLiN42m4qRjYFW8Hk22Wt5HzzLhbOpK6gUFJnBBXaadk1aWWiZYcNBYR66o\nzUVrYLQwPz2w4AGeHqRiD5h/3frd0ecYD2KtGX1u8jZnEblvdtoJdfile14retNo\nmM8DGAX7OExerpJ5AOF0/v+w58HN1r0XIpm8rQ+9fnpO4aWstXZD93KkjPUfHhYG\nLX3UJ+nx7T9BtZMQAJ6YP6VbSIw19KVdeZOpOFMaGoqm8tFEXn18ogcdkHjsZi0R\nDhjOKTeui5CmDQhuLtlhwPNVwQUZA0otyj9SlYck45FNwt6pfeDcTWz+FzfMrLoc\nltSxY4RDTHTcPvJN+N9VedvAmj2ocSj4PiuOdeksnI/tis5IJEZnrl1YXc7SInyA\nL6plSfUU2yHELcQHGM8eb4zvXOU+0tCehqvG93OOxgmvJKY+PmwYGzJ+YqbNwTKg\nzgcG9xt6D0YP/O0CmN9N5aXGnPnRU1C625ll5Q4J1Kfax7+Q29PIiOYqmFFeX6JS\n1GU5j5TqAx8ykrkjr5vzDt8S0ajN/WUK9WV8aKQo2XhGlJtpSlHPvZHCkq0vBZkq\no45GmAAiCla1rosOpBURK2bmrSD7rvBgguPbIANPCJUca0yRxSpPxqwPZw1FVUxt\nxJjGPgsJKPytwev6MUNc\n=OUfN\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito-utils/src/constants.ts b/packages/taquito-utils/src/constants.ts index 1c020c8895..b317e6a453 100644 --- a/packages/taquito-utils/src/constants.ts +++ b/packages/taquito-utils/src/constants.ts @@ -93,5 +93,4 @@ export const prefixLength: { [key: string]: number } = { [Prefix.NET]: 4, [Prefix.B]: 32, [Prefix.P]: 32, - [Prefix.O]: 32 }; diff --git a/packages/taquito-utils/src/taquito-utils.ts b/packages/taquito-utils/src/taquito-utils.ts index 7213561db4..5a15118058 100644 --- a/packages/taquito-utils/src/taquito-utils.ts +++ b/packages/taquito-utils/src/taquito-utils.ts @@ -1,8 +1,3 @@ -/** - * @packageDocumentation - * @module @taquito/utils - */ - /* * Some code in this file is originally from sotez and eztz * Copyright (c) 2018 Andrew Kishino @@ -15,7 +10,6 @@ const blake = require('blakejs'); const bs58check = require('bs58check'); export * from './validators'; -export { VERSION } from './version'; export { prefix, Prefix, prefixLength } from './constants'; @@ -30,16 +24,6 @@ export function encodeExpr(value: string) { return b58cencode(blakeHash, prefix['expr']); } -/** - * - * @description Return the operation hash of a signed operation - * @param value Value in hex of a signed operation - */ - export function encodeOpHash(value: string) { - const blakeHash = blake.blake2b(hex2buf(value), null, 32); - return b58cencode(blakeHash, prefix.o); -} - /** * * @description Base58 encode a string or a Uint8Array and append a prefix to it @@ -238,23 +222,3 @@ export const buf2hex = (buffer: Buffer): string => { }); return hexParts.join(''); }; - -/** - * - * @description Convert a string to bytes - * - * @param str String to convert - */ -export function char2Bytes(str: string) { - return Buffer.from(str, 'utf8').toString('hex'); -} - -/** - * - * @description Convert bytes to a string - * - * @param str Bytes to convert - */ -export function bytes2Char(hex: string): string { - return Buffer.from(hex2buf(hex)).toString('utf8'); -} diff --git a/packages/taquito-utils/src/validators.ts b/packages/taquito-utils/src/validators.ts index f5dfa6c1ec..f2e7dd23a2 100644 --- a/packages/taquito-utils/src/validators.ts +++ b/packages/taquito-utils/src/validators.ts @@ -38,12 +38,6 @@ function validatePrefixedValue(value: any, prefixes: Prefix[]) { return ValidationResult.NO_PREFIX_MATCHED; } - // Remove annotation from contract address before doing the validation - const contractAddress = /^(KT1\w{33})(\%(.*))?/.exec(value); - if (contractAddress) { - value = contractAddress[1]; - } - // decodeUnsafe return undefined if decoding fail let decoded = bs58check.decodeUnsafe(value); if (!decoded) { diff --git a/packages/taquito-utils/src/version.ts b/packages/taquito-utils/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito-utils/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito-utils/test/taquito-utils.spec.ts b/packages/taquito-utils/test/taquito-utils.spec.ts index a5ba74750a..a4923ea42c 100644 --- a/packages/taquito-utils/test/taquito-utils.spec.ts +++ b/packages/taquito-utils/test/taquito-utils.spec.ts @@ -1,4 +1,4 @@ -import { encodeExpr, char2Bytes, bytes2Char, encodeOpHash } from '../src/taquito-utils'; +import { encodeExpr } from '../src/taquito-utils'; describe('Encode expr', () => { it('Should encode expression properly', () => { @@ -7,80 +7,3 @@ describe('Encode expr', () => { ); }); }); - -describe('Encode operation hash', () => { - it('Should encode operation hash properly', () => { - const opBytesSigned = '0f185d8a30061e8134c162dbb7a6c3ab8f5fdb153363ccd6149b49a33481156a6c00b2e19a9e74440d86c59f13dab8a18ff873e889eaa304ab05da13000001f1585a7384f36e45fb43dc37e8ce172bced3e05700ff0000000002002110c033f3a990c2e46a3d6054ecc2f74072aae7a34b5ac4d9ce9edc11c2410a97695682108951786f05b361da03b97245dc9897e1955e08b5b8d9e153b0bdeb0d'; - expect(encodeOpHash(opBytesSigned)).toEqual( - 'opapqvVXmebRTCFd2GQFydr4tJj3V5QocQuTmuhbatcHm4Seo2t' - ); - }); -}); - -describe('String/Bytes conversions', () => { - it('Should convert a string to bytes', () => { - // I used the result from http://string-functions.com/string-hex.aspx for the test - expect(char2Bytes('Taquito is awesome!')).toEqual('5461717569746f20697320617765736f6d6521'); - }); - - it('Should convert bytes to string', () => { - expect(bytes2Char('5461717569746f20697320617765736f6d6521')).toEqual('Taquito is awesome!'); - }); - - it('Test1: Should convert a string of char (utf-8) to a string of bytes, and convert it back to the same string of char', () => { - const charString = 'http:'; - const bytes = '687474703a'; - - expect(char2Bytes(charString)).toEqual(bytes); - expect(bytes2Char(bytes)).toEqual(charString); -}); - -it('Test2: Should convert a string of char (utf-8) to a string of bytes, and convert it back to the same string of char', () => { - const charString = 'tezos-storage:contents'; - const bytes = '74657a6f732d73746f726167653a636f6e74656e7473'; - - expect(char2Bytes(charString)).toEqual(bytes); - expect(bytes2Char(bytes)).toEqual(charString); -}); - -it('Test3: Should convert a string of char (utf-8) to a string of bytes, and convert it back to the same string of char', () => { - const charString = 'tezos-storage:here'; - const bytes = '74657a6f732d73746f726167653a68657265'; - - expect(char2Bytes(charString)).toEqual(bytes); - expect(bytes2Char(bytes)).toEqual(charString); -}); - -it('Test4: Should convert a string of char (utf-8) to a string of bytes, and convert it back to the same string of char', () => { - const charString = `{"version":"tzcomet-example v0.0.42"}`; - const bytes = '7b2276657273696f6e223a22747a636f6d65742d6578616d706c652076302e302e3432227d'; - - expect(char2Bytes(charString)).toEqual(bytes); - expect(bytes2Char(bytes)).toEqual(charString); -}); - -it('Test5: Should convert a string of char (utf-8) with Emoji to a string of bytes, and convert it back to the same string of char', () => { - const charString = 'Test 😀, 🤣 & 💰'; - const bytes = '5465737420f09f98802c20f09fa4a3202620f09f92b0'; - - expect(char2Bytes(charString)).toEqual(bytes); - expect(bytes2Char(bytes)).toEqual(charString); -}); - -it('Test6: Should convert a string of char (utf-8) with naughty string to a string of bytes, and convert it back to the same string of char', () => { - const charString = '¯_(ツ)_/¯'; - const bytes = 'c2af5f28e38384295f2fc2af'; - - expect(char2Bytes(charString)).toEqual(bytes); - expect(bytes2Char(bytes)).toEqual(charString); -}); - -it('Test7: Should convert a string of char (utf-8) with naughty string to a string of bytes, and convert it back to the same string of char', () => { - const charString = '𝕋𝕙𝕖 𝕢𝕦𝕚𝕔𝕜 𝕓𝕣𝕠𝕨𝕟 𝕗𝕠𝕩 𝕛𝕦𝕞𝕡𝕤 𝕠𝕧𝕖𝕣 𝕥𝕙𝕖 𝕝𝕒𝕫𝕪 𝕕𝕠𝕘'; - const bytes = - 'f09d958bf09d9599f09d959620f09d95a2f09d95a6f09d959af09d9594f09d959c20f09d9593f09d95a3f09d95a0f09d95a8f09d959f20f09d9597f09d95a0f09d95a920f09d959bf09d95a6f09d959ef09d95a1f09d95a420f09d95a0f09d95a7f09d9596f09d95a320f09d95a5f09d9599f09d959620f09d959df09d9592f09d95abf09d95aa20f09d9595f09d95a0f09d9598'; - - expect(char2Bytes(charString)).toEqual(bytes); - expect(bytes2Char(bytes)).toEqual(charString); -}); -}); diff --git a/packages/taquito-utils/test/validators.spec.ts b/packages/taquito-utils/test/validators.spec.ts index 599e0a984a..fa8047b9d8 100644 --- a/packages/taquito-utils/test/validators.spec.ts +++ b/packages/taquito-utils/test/validators.spec.ts @@ -14,7 +14,6 @@ describe('validateAddress', () => { expect(validateAddress('KT1Fe71jyjrxFg9ZrYqtvaX7uQjcLo7svE4D')).toEqual(ValidationResult.VALID); expect(validateAddress('tz2TSvNTh2epDMhZHrw73nV9piBX7kLZ9K9m')).toEqual(ValidationResult.VALID); expect(validateAddress('tz3VEZ4k6a4Wx42iyev6i2aVAptTRLEAivNN')).toEqual(ValidationResult.VALID); - expect(validateAddress('KT1Fe71jyjrxFg9ZrYqtvaX7uQjcLo7svE4D%test')).toEqual(ValidationResult.VALID); // Invalid checksum expect(validateAddress('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hm')).toEqual( @@ -113,11 +112,6 @@ describe('validateSignature', () => { 'edsigtkpiSSschcaCt9pUVrpNPf7TTcgvgDEDD6NCEHMy8NNQJCGnMfLZzYoQj74yLjo9wx6MPVV29CvVzgi7qEcEUok3k7AuMg' ) ).toEqual(ValidationResult.VALID); - expect( - validateSignature( - 'edsigthp7LbR5JQ1HRnxKdvhphTJs2omjnu6DF7LhRokPbPHXjkv2EqmCwu3KT1jKRZjrrgb749Yao26qMdcDFbXKrjA7KLSKRC' - ) - ).toEqual(ValidationResult.VALID); expect( validateSignature( 'sigd9ugzpERZmBfyVAAPG4KZfpR4qYA4U51EcALp2hijGgJq3aRqFQANo4hudg3uWbSTaKRKzYhXeoG1TStq5jowaGx1dP9H' diff --git a/packages/taquito/README.md b/packages/taquito/README.md index 8c9c01842e..d34d625bbb 100644 --- a/packages/taquito/README.md +++ b/packages/taquito/README.md @@ -1,4 +1,3 @@ - [](https://github.com/RedpointGames/pkgsign) # Taquito high level functions @@ -8,8 +7,8 @@ The `@taquito/taquito` package contains higher level functionality that builds u ## CDN Bundle ```html -<script src="https://unpkg.com/@taquito/taquito@9.0.0/dist/taquito.min.js" -crossorigin="anonymous" integrity="sha384-2eUl8sgUpThIrtEBXwkUJeyHP8AgDZ+fI+7Fs4kwzPDQBUvKc5cDl0G3AQNHI1mV"></script> +<script src="https://unpkg.com/@taquito/taquito@7.0.0-beta.0/dist/taquito.min.js" +crossorigin="anonymous" integrity="sha384-RZiQYo14SL8QO7L6eGZOgqdt59Y1n2rNqmeqQaNy460S8BXxd7pr255cwlTdIgHU"></script> ``` ## API Documentation diff --git a/packages/taquito/package-lock.json b/packages/taquito/package-lock.json index 090bff8304..fbee5b8d2d 100644 --- a/packages/taquito/package-lock.json +++ b/packages/taquito/package-lock.json @@ -1,47 +1,48 @@ { "name": "@taquito/taquito", - "version": "9.0.0", + "version": "7.1.0-preview.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.10.4" } }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -55,23 +56,23 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "dev": true, "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "dependencies": { "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -85,67 +86,41 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" }, "dependencies": { "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -153,21 +128,21 @@ } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.5" }, "dependencies": { "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -175,29 +150,29 @@ } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" }, "dependencies": { "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -205,52 +180,39 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" }, "dependencies": { "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -258,21 +220,21 @@ } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" }, "dependencies": { "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -280,50 +242,37 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" }, "dependencies": { "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -331,11 +280,11 @@ } }, "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -387,9 +336,9 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -411,12 +360,12 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { @@ -492,62 +441,49 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" }, "dependencies": { "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } @@ -792,13 +728,20 @@ } }, "@npmcli/move-file": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.1.tgz", - "integrity": "sha512-LtWTicuF2wp7PNTuyCwABx7nNG+DnzSE8gN0iWxkC6mpgm/iOPu0ZMTkXuCxmJxtWFsDxUaixM9COSNJEMUfuQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", "dev": true, "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "@rollup/pluginutils": { @@ -810,12 +753,20 @@ "@types/estree": "0.0.39", "estree-walker": "^1.0.1", "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -863,9 +814,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz", + "integrity": "sha512-Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -908,9 +859,9 @@ } }, "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "dev": true, "requires": { "jest-diff": "^26.0.0", @@ -918,15 +869,15 @@ } }, "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", "dev": true }, "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==" + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -941,9 +892,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz", + "integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==", "dev": true }, "@types/stack-utils": { @@ -952,17 +903,17 @@ "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==" }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" }, "@webassemblyjs/ast": { "version": "1.9.0", @@ -1226,6 +1177,14 @@ "dev": true, "requires": { "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } } }, "ansi-regex": { @@ -1449,9 +1408,9 @@ } }, "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==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz", + "integrity": "sha512-mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1507,6 +1466,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -1537,22 +1525,12 @@ "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" }, "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true, "optional": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -1669,12 +1647,6 @@ "string_decoder": "^1.1.1", "util-deprecate": "^1.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==", - "dev": true } } }, @@ -1763,6 +1735,14 @@ "ssri": "^8.0.0", "tar": "^6.0.2", "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "cache-base": { @@ -1825,20 +1805,29 @@ "dev": true }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "dev": true, "optional": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.3.1", + "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.5.0" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "chownr": { @@ -1854,14 +1843,6 @@ "dev": true, "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "ci-info": { @@ -1906,63 +1887,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -2000,19 +1924,6 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } } }, "co": { @@ -2066,9 +1977,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", "dev": true }, "commondir": { @@ -2120,6 +2031,14 @@ "dev": true, "requires": { "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==", + "dev": true + } } }, "copy-concurrently": { @@ -2136,15 +2055,6 @@ "run-queue": "^1.0.0" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -2239,16 +2149,10 @@ "sha.js": "^2.4.8" } }, - "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 - }, "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", "dev": true, "requires": { "cross-spawn": "^7.0.1" @@ -2340,9 +2244,9 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { "ms": "2.1.2" @@ -2398,6 +2302,37 @@ "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, "delayed-stream": { @@ -2528,18 +2463,18 @@ } }, "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "dev": true, "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", + "bn.js": "^4.4.0", + "brorand": "^1.0.1", "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" + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" }, "dependencies": { "bn.js": { @@ -2578,9 +2513,9 @@ } }, "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -2610,9 +2545,9 @@ } }, "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { "prr": "~1.0.1" @@ -2627,12 +2562,6 @@ "is-arrayish": "^0.2.1" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -2691,9 +2620,9 @@ "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", "dev": true }, "esutils": { @@ -2725,39 +2654,82 @@ "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, @@ -2789,69 +2761,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -2896,6 +2805,17 @@ "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "extglob": { @@ -2932,11 +2852,34 @@ "is-extendable": "^0.1.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -2994,13 +2937,6 @@ "escape-string-regexp": "^1.0.5" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -3094,12 +3030,6 @@ } } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -3244,9 +3174,9 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", "dev": true, "optional": true }, @@ -3281,9 +3211,9 @@ "dev": true }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -3335,17 +3265,41 @@ "dev": true, "requires": { "global-prefix": "^3.0.0" + }, + "dependencies": { + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "dev": true, "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" }, "dependencies": { "which": { @@ -3366,9 +3320,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "growly": { "version": "1.3.0", @@ -3480,12 +3434,6 @@ "string_decoder": "^1.1.1", "util-deprecate": "^1.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==", - "dev": true } } }, @@ -3591,9 +3539,9 @@ "dev": true }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -3653,9 +3601,9 @@ "dev": true }, "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, "interpret": { @@ -3671,12 +3619,23 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -3711,32 +3670,51 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "^6.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-docker": { @@ -3747,13 +3725,10 @@ "optional": true }, "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-extglob": { "version": "2.1.1", @@ -3815,9 +3790,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { @@ -3933,6 +3908,29 @@ "@jest/core": "^26.6.3", "import-local": "^3.0.2", "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } } }, "jest-changed-files": { @@ -3944,27 +3942,49 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "jest-config": { @@ -4291,13 +4311,10 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true } } }, @@ -4369,9 +4386,9 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -4416,6 +4433,19 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } } }, "jsesc": { @@ -4455,9 +4485,9 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -4525,9 +4555,9 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz", + "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -4545,12 +4575,55 @@ "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "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" + } + } } }, "listr2": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.3.1.tgz", - "integrity": "sha512-8Zoxe7s/8nNr4bJ8bdAduHD8uJce+exmMmUWTXlq0WuUdffnH3muisHPHPFtW2vvOfohIsq7FGCaguUxN/h3Iw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz", + "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -4560,8 +4633,7 @@ "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.3", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" + "through": "^2.3.8" } }, "loader-runner": { @@ -4625,6 +4697,12 @@ "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -4668,17 +4746,6 @@ "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } } } }, @@ -4793,18 +4860,18 @@ } }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -4912,13 +4979,27 @@ "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } }, "move-concurrently": { "version": "1.0.1", @@ -4934,15 +5015,6 @@ "run-queue": "^1.0.3" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -4966,13 +5038,6 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "dev": true, - "optional": true - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -5068,9 +5133,9 @@ "dev": true }, "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz", + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==", "dev": true, "optional": true, "requires": { @@ -5083,14 +5148,18 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } + "optional": true + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true, + "optional": true } } }, @@ -5113,12 +5182,20 @@ "dev": true }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^3.0.0" + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } } }, "nwsapi": { @@ -5159,43 +5236,6 @@ "is-descriptor": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -5348,9 +5388,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -5468,6 +5508,12 @@ "find-up": "^4.0.0" } }, + "pkginfo": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", + "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=", + "dev": true + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -5490,9 +5536,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "pretty-format": { @@ -5525,16 +5571,17 @@ "dev": true }, "prompt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz", - "integrity": "sha512-ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", + "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", "dev": true, "requires": { "colors": "^1.1.2", + "pkginfo": "0.x.x", "read": "1.0.x", "revalidator": "0.1.x", "utile": "0.3.x", - "winston": "2.x" + "winston": "2.1.x" } }, "prompts": { @@ -5700,14 +5747,6 @@ "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } } }, "readable-stream": { @@ -5725,14 +5764,11 @@ "util-deprecate": "~1.0.1" }, "dependencies": { - "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==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } + "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==", + "dev": true } } }, @@ -5784,48 +5820,14 @@ "dev": true }, "replace-in-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.2.0.tgz", - "integrity": "sha512-Im2AF9G/qgkYneOc9QwWwUS/efyyonTUBvzXS2VXuxPawE5yQIjT/e6x4CTijO0Quq48lfAujuo+S89RR2TP2Q==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.1.0.tgz", + "integrity": "sha512-URzjyF3nucvejuY13HFd7O+Q6tFJRLKGHLYVvSh+LiZj3gFXzSYGnIkQflnJJulCAI2/RTZaZkpOtdVdW0EhQA==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.0.0", "glob": "^7.1.6", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } + "yargs": "^15.3.1" } }, "request": { @@ -5854,24 +5856,6 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "request-promise-core": { @@ -5892,18 +5876,6 @@ "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } } }, "require-directory": { @@ -5957,28 +5929,6 @@ "is-windows": "^1.0.1", "resolve-dir": "^1.0.0" } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -6036,12 +5986,21 @@ } }, "rollup": { - "version": "2.38.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.5.tgz", - "integrity": "sha512-VoWt8DysFGDVRGWuHTqZzT02J0ASgjVq/hPs9QcBOGMd7B+jfTr/iqMVEyOi901rE3xq+Deq66GzIT1yt7sGwQ==", + "version": "2.33.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.33.3.tgz", + "integrity": "sha512-RpayhPTe4Gu/uFGCmk7Gp5Z9Qic2VsqZ040G+KZZvsZYdcuWaJg678JeDJJvJeEQXminu24a2au+y92CUWVd+w==", "dev": true, "requires": { - "fsevents": "~2.3.1" + "fsevents": "~2.1.2" + }, + "dependencies": { + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + } } }, "rollup-plugin-json": { @@ -6061,6 +6020,18 @@ "requires": { "@rollup/pluginutils": "^3.0.9", "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + } } }, "rollup-plugin-typescript2": { @@ -6084,6 +6055,12 @@ "requires": { "path-parse": "^1.0.6" } + }, + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true } } }, @@ -6094,14 +6071,6 @@ "dev": true, "requires": { "estree-walker": "^0.6.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - } } }, "rsvp": { @@ -6134,19 +6103,12 @@ "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } } }, "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==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, "safe-regex": { @@ -6220,34 +6182,6 @@ } } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -6271,21 +6205,6 @@ } } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -6306,12 +6225,6 @@ } } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -6336,42 +6249,12 @@ "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "remove-trailing-separator": "^1.0.1" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -6381,15 +6264,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -6460,12 +6334,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true } } }, @@ -6589,69 +6457,6 @@ "is-extendable": "^0.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -6663,19 +6468,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } } } }, @@ -6698,6 +6490,35 @@ "requires": { "is-descriptor": "^1.0.0" } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } } } }, @@ -6734,13 +6555,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -6754,9 +6578,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { @@ -6786,9 +6610,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", "dev": true }, "split-string": { @@ -6824,9 +6648,9 @@ } }, "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "dev": true, "requires": { "minipass": "^3.1.1" @@ -6871,63 +6695,6 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -7004,18 +6771,18 @@ } }, "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==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" }, "dependencies": { "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==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } @@ -7089,9 +6856,9 @@ "dev": true }, "tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", "dev": true, "requires": { "chownr": "^2.0.0", @@ -7100,6 +6867,14 @@ "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "terminal-link": { @@ -7113,9 +6888,9 @@ } }, "terser": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", - "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.4.0.tgz", + "integrity": "sha512-3dZunFLbCJis9TAF2VnX+VrQLctRUmt1p3W2kCsJuZE4ZgWqh//+1MZ62EanewrqKoUf4zIaDGZAvml4UDc0OQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -7155,12 +6930,12 @@ }, "dependencies": { "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", "dev": true, "requires": { - "yocto-queue": "^0.1.0" + "p-try": "^2.0.0" } } } @@ -7266,12 +7041,11 @@ } }, "tough-cookie": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", - "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } @@ -7286,9 +7060,9 @@ } }, "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", "dev": true, "requires": { "@types/jest": "26.x", @@ -7297,32 +7071,40 @@ "fast-json-stable-stringify": "2.x", "jest-util": "^26.1.0", "json5": "2.x", - "lodash": "4.x", + "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "20.x" }, "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", "dev": true, "requires": { "arg": "^4.1.0", - "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", @@ -7330,10 +7112,9 @@ } }, "tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tslint": { "version": "6.1.3", @@ -7403,15 +7184,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -7420,12 +7192,6 @@ "requires": { "has-flag": "^3.0.0" } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true } } }, @@ -7442,34 +7208,32 @@ "dev": true, "requires": { "tslint-eslint-rules": "^5.3.1" + } + }, + "tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dev": true, + "requires": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" }, "dependencies": { - "tslint-eslint-rules": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", - "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "dev": true, "requires": { - "doctrine": "0.7.2", - "tslib": "1.9.0", - "tsutils": "^3.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==", - "dev": true - }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" } } } @@ -7481,14 +7245,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "tty-browserify": { @@ -7528,9 +7284,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray": { @@ -7549,9 +7305,9 @@ } }, "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", "dev": true }, "union-value": { @@ -7564,14 +7320,6 @@ "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } } }, "unique-filename": { @@ -7646,9 +7394,9 @@ "optional": true }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" @@ -7721,15 +7469,6 @@ "rimraf": "2.x.x" }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -7742,11 +7481,10 @@ } }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true }, "v8-compile-cache": { "version": "2.2.0", @@ -7755,9 +7493,9 @@ "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz", + "integrity": "sha512-fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -7961,11 +7699,7 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } + "optional": true }, "glob-parent": { "version": "3.1.0", @@ -8000,13 +7734,6 @@ "binary-extensions": "^1.0.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "optional": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -8083,9 +7810,9 @@ "dev": true }, "webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.9.0", @@ -8096,7 +7823,7 @@ "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", + "enhanced-resolve": "^4.3.0", "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", "loader-runner": "^2.4.0", @@ -8226,12 +7953,6 @@ "locate-path": "^3.0.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -8308,15 +8029,6 @@ "to-regex": "^3.0.2" } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", @@ -8481,15 +8193,6 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -8854,9 +8557,9 @@ "dev": true }, "winston": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", - "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz", + "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", "dev": true, "requires": { "async": "~1.0.0", @@ -8864,6 +8567,7 @@ "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", + "pkginfo": "0.3.x", "stack-trace": "0.0.x" }, "dependencies": { @@ -8878,6 +8582,12 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true } } }, @@ -8897,9 +8607,9 @@ } }, "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==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", @@ -8926,9 +8636,9 @@ } }, "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", "dev": true }, "xml-name-validator": { @@ -8950,9 +8660,9 @@ "dev": true }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yallist": { @@ -8984,37 +8694,23 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" - }, - "dependencies": { - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } } }, "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": 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/packages/taquito/package.json b/packages/taquito/package.json index 0bc347f881..1634826b06 100644 --- a/packages/taquito/package.json +++ b/packages/taquito/package.json @@ -1,6 +1,6 @@ { "name": "@taquito/taquito", - "version": "9.0.0", + "version": "7.1.0-preview.1", "description": "High level functionality that builds upon the other packages in the Tezos Typescript Library Suite.", "keywords": [ "tezos", @@ -37,11 +37,10 @@ "lint": "tslint --project tsconfig.json -t codeFrame 'src/**/*.ts' 'test/**/*.ts'", "precommit": "lint-staged", "prebuild": "rimraf dist", - "version-stamp": "node ./version-stamping.js", - "build": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", - "build:release": "npm run version-stamp && tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts && npm run build:web", - "build:web": "npm run version-stamp && webpack && node update-readme.js", - "start": "npm run version-stamp && rollup -c rollup.config.ts -w", + "build": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts", + "build:release": "tsc --project ./tsconfig.prod.json --module commonjs && rollup -c rollup.config.ts && npm run build:web", + "build:web": "webpack && node update-readme.js", + "start": "rollup -c rollup.config.ts -w", "postinstall": "node patch.js" }, "lint-staged": { @@ -78,24 +77,24 @@ ] }, "dependencies": { - "@taquito/http-utils": "^9.0.0", - "@taquito/michel-codec": "^9.0.0", - "@taquito/michelson-encoder": "^9.0.0", - "@taquito/rpc": "^9.0.0", - "@taquito/utils": "^9.0.0", + "@taquito/http-utils": "^7.1.0-preview.1", + "@taquito/michel-codec": "^7.1.0-preview.1", + "@taquito/michelson-encoder": "^7.1.0-preview.1", + "@taquito/rpc": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1", "rx-sandbox": "^1.0.3", "rxjs": "^6.6.3" }, "devDependencies": { "@babel/types": "7.11.5", - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -108,12 +107,12 @@ "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", "terser-webpack-plugin": "^4.2.3", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5", + "typescript": "^4.0.3", "webpack": "^4.44.2", "webpack-assets-manifest": "^3.1.1", "webpack-cli": "^3.3.12", diff --git a/packages/taquito/signature.json b/packages/taquito/signature.json index 3debffe920..86368f9297 100644 --- a/packages/taquito/signature.json +++ b/packages/taquito/signature.json @@ -12,25 +12,21 @@ "path": "dist/lib/contract/big-map.js", "sha512": "8a23a14333d639e62c8bb3dade149ed167c6eb2d18dad384eb4542676b3a14c4193d54f590d919a105b2139958d4a37f06d84c4ece4fed363bb1c2410fec5705" }, - { - "path": "dist/lib/contract/compose.js", - "sha512": "66919b4d6d0e24b70043271276f9f393242fbec07d32238b142ade0e21b9b970d4987b5bf312417960f87e98986352ece3cff554564e04dec53861927dbbfe1d" - }, { "path": "dist/lib/forger/composite-forger.js", "sha512": "50c141fc83a6f16998cb0c3b852e08d93fc70e7fa239d30c2fed2d98aec3d2c2425f0012cdf29bffb78968456cb06e792d0c6d81dca28a8de10526e8e42fb419" }, { "path": "dist/lib/constants.js", - "sha512": "a1e991d1d9691ec1018114866f5954fabf2fae3fcfdfc184317901e741f0dd139c35e9511fa756364ddb51ff758d3cff70e741c6e6c4cd70a75403237e479bb5" + "sha512": "e2145d797097bef6d4390d933370a51d4869252153a618fcb209cbdeb464fc8974490c5c898ba18de69e5176af4d7c7480bd2acc74f0afa38646f708cf8da803" }, { "path": "dist/lib/context.js", - "sha512": "4912ac7b6bb87c90d49661f5b15df5b148903353aab62a4cd711acd95d34e51009493c3ad102027a6ead86faec7ec4335cba6372982f901a45f106b5fb8505cf" + "sha512": "11e9f879e61f78b4704e564db218734a8945a1343a544347bf47a6a5464ef017965af481e88e16d14d0ce8a8ab73c601cda0f4c34daf5647b0d7fb497e155608" }, { "path": "dist/lib/contract/contract.js", - "sha512": "61447ddabc520fffb7ac20632451be13ca843dd8dece78155ceb8d0c58ab287fce14c8df24a3b8d6584a0152bb57b7b98584882c3776464ceeeceb9fb10d9d77" + "sha512": "e7818061333a3d1fd9790308edf57c513a490cb8654d11762aa5dcf1c73e3826ead4df459eb22b39aeefd3aba2a938d1359762c2f0742a96fe3a0d927c265e56" }, { "path": "dist/lib/operations/delegate-operation.js", @@ -42,19 +38,15 @@ }, { "path": "dist/lib/contract/errors.js", - "sha512": "7b9673b186af05bdce557782322c093393ee19257d4fe6549d6369c44e0287d75a279f0aeec665dd7019b799bffd39cfae3e19684abcfd4b89f3f514f8f2cc75" + "sha512": "3aaf6e823212b359ec81694d79c0065d93675116a992c46d903ea692690fb9ca31a5fbcc8f492066daaee6cae2ee0580b0617eba1155b5373dcf6b8ed516b04c" }, { "path": "dist/lib/contract/estimate.js", "sha512": "9aa043bcbcc9651bbb50f64235ad65b6de4900b5590b2eecaacc99dfc9cb6de7a4ab38ead13b931f7d6411a7abb4437efa7c64aae0b247999ef95ad1e0b93441" }, - { - "path": "dist/lib/extension/extension.js", - "sha512": "8c7a4cfa90beed87db4ee636044b9ac3da063dacd0f45e6011320f6c3d889a664ca91fdda4ba602b24343eb67f4d503a92787fa4f4f2cc94e4eca6529779199c" - }, { "path": "dist/lib/subscribe/filters.js", - "sha512": "4454580b6c49b0d1ba8470d96a64ce4c070c402d7df0855721e557cbfee8b28205ba8af5a1941ab6feeee26ab25a8b9e2f046ae854f6fbc3d9a902a90bb3da64" + "sha512": "95e78081b973b477b5fcc8ee51d4eb0fb67d6697c3315e7f5dcf6b52e1fd367c87f6c870ce97daab6ae7b93cecdf83a13f63e2349a17b022c93675da8497ffd1" }, { "path": "dist/lib/format.js", @@ -62,7 +54,7 @@ }, { "path": "dist/lib/contract/index.js", - "sha512": "610a9ded8786701289bdc8e226ea3344b93ea80d2da67d9438a404811cfd469f5d082ecf7dd14db4eac4fb5bb7987f3d66a246624e9d163a3fd2cb2d3287a07c" + "sha512": "7acec56298982e8acb12d12c89539d73b277b204c8e0e4b96018d0491b8095999cb80d2b5b4e2da0b05f22e0c4f703bd321bfc94cea7d5e504bc525c184ad683" }, { "path": "dist/lib/wallet/index.js", @@ -80,10 +72,6 @@ "path": "dist/lib/injector/interface.js", "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" }, - { - "path": "dist/lib/parser/interface.js", - "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" - }, { "path": "dist/lib/signer/interface.js", "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" @@ -102,7 +90,7 @@ }, { "path": "dist/lib/contract/lambda-view.js", - "sha512": "1e857035d63afdb92b93d30e6dd4559b46b8444446ef6bce8f68cd92e44178caa511f0efcc93c2a2fb59da0cdd5795eda5f3a0ac6436d3dc5337a1777dbf8f8a" + "sha512": "db0211441d5ea4c5c4b122092896e557f56d137a8e21312eeb94e6eec7b8edb41a4c166307b0f84e81671d82b12bb4cd5095dddc07c9a8c0590804bfb97086c3" }, { "path": "dist/lib/wallet/legacy.js", @@ -112,18 +100,10 @@ "path": "dist/lib/contract/manager-lambda.js", "sha512": "6ac111dfad0a4f2edf7f05106526276250b7b1eff855eb5726b03b7d6190286287a2c2d5ecc53edf7b4a549854ee69ddea1e0fa0d2043acaa39916fa270c10d6" }, - { - "path": "dist/lib/parser/michel-codec-parser.js", - "sha512": "43223193f0ce1767f20433f25a0dfd7f3f0427066392de8d52a2752b42398b6ae25a5c4e8828f1c51199856b3f1aee6412475ca42e27cedf2e3f8b143e745b68" - }, { "path": "dist/lib/contract/naive-estimate-provider.js", "sha512": "ff72aa8bf7424ce8c8c8d114b506e55a2e5c0c7f21bc79283d3b377e708e420e9232ed800e5abcdd68c61dde274e88d26d1e7a026dfc1a9d108d6976fe0d24b8" }, - { - "path": "dist/lib/parser/noop-parser.js", - "sha512": "4c4d68a2244b73173ec5d83381d8a4e6eb9854db000363c19452d2d020850670c37358fd58adc6599118e448e2f838dfcac2b09f449910a9f6d7b677b30dde7b" - }, { "path": "dist/lib/signer/noop.js", "sha512": "2a46130c1999ca368789e3a44eb79d4bb353f8bbdf4acf03d911b2a5beb5a4a7a1a2d55390402afec3d165b56c5071c3ccda59780bba2d97d61ae00ea21534c1" @@ -138,7 +118,7 @@ }, { "path": "dist/lib/operations/operation-errors.js", - "sha512": "e3600d1da1afe145a7606904c3d40e6e9ac516d41d6cfde57cf60f4c5e24e469c642ba0f6d8876705a4ec258b5d8e1bfad690f0f102fff102c011f41f6d43123" + "sha512": "0eea1af66fa59566d91e2bd2f82083af1b6b4232304a68a8263acad480c244c576c6a2d892228c26093d637e6638c4744e59328822305be5cd9c4ac2b550921f" }, { "path": "dist/lib/wallet/operation.js", @@ -150,7 +130,7 @@ }, { "path": "dist/lib/wallet/opreation-factory.js", - "sha512": "838309d9f5f8263937b471fe801138c227820ddf74bd8713795bfb872e08f49cb93ff94d1065a2d4aef821162a7d889812e65a1b2e6042e4d9aa3584fe236708" + "sha512": "75c48f8469230a4392f952d89fca8bdb4f7c211fbdc6d29b953430f9905d0ca8d460fb991a2b07c7cc5522d4f8ff99e052c2d2ce0baa0c13791f1cb919b4e0be" }, { "path": "dist/lib/operations/origination-operation.js", @@ -170,23 +150,23 @@ }, { "path": "dist/lib/contract/prepare.js", - "sha512": "25c183d6c2de004e8d82f0e2546ba5e5ec8f29e0d64751b982293776701b2e11eba168fbc7db7ded72acd6b40947928a90060e49abb2368566f2017dac6ac411" + "sha512": "49aaca36f19ceca74e7b744de9f3ad2ca584a8db9bcabf7eadadfe8d5e9de02d86dab2502507cd1fdf01a1082ef69afb5183bcb7cbd16a9491a8fa61747bed30" }, { "path": "dist/lib/wallet/receipt.js", - "sha512": "a934d2ca1a2c70f36fa1beb0545a2cb544bdcd3e0d9653fea95760851d046221d64e1cf22aa2b0ce8246d5e595d4874538251d56442a3f3221de89fbafc88b4d" + "sha512": "a27001b172bb2b600f524f317a55de58ed540ac93946f4d1f412008b7b5ca3257f72dcfa3f44e92a198bb8cf8eab302da1ad9b447d854d5b1b1e8616b508d0db" }, { "path": "dist/lib/batch/rpc-batch-provider.js", - "sha512": "b87de853067e4b311ee5717d6c15833465e8b48a65884877bb54c06ca8b731a8c8306fb812c8ce66bb91a74f101870c94bd1068f640a6282ce178dc039c57d5a" + "sha512": "fa94132230bfde48c5e8ee337dfb272f00ec79c9525b710cd26dd0e90b5d5f031de4d3abe6c03b0b5bb75d07790b86f66324d44cb831857937e1991137fbc062" }, { "path": "dist/lib/contract/rpc-contract-provider.js", - "sha512": "b0fbe66426a56a00eb9c6f11b5abed453f28c698e95d04a19763e62143b00a4ed0b45b9af4e6b7fb7b41485726196bf8ae447b40eb51c84f8f13d8e4fff0c040" + "sha512": "e9f12a3daea41c9d397629b82479d3d3e9051e83c4cf55dfb0600ec9e898927c06adfea4fe1d243f04f3533d767f78347d8ba991c620658e34361f809c80ae31" }, { "path": "dist/lib/contract/rpc-estimate-provider.js", - "sha512": "b835d1d12e8c0a2a3d99d265a61d7ce2eb8f26c83d0c0fa69b1d84d2d54f4eee8b1b999e43d3105158ef7068a2a6405a1a1966d8b365ae72b6b786de5fddb678" + "sha512": "9798813f68860997624efdce26cbd1615cb1da895d05f6567c82ac261557a03e960a42c2e72dbfe73b8b70bd0d6a96a7ade5622e22d9cbf8a8db7c6843c8dbaa" }, { "path": "dist/lib/forger/rpc-forger.js", @@ -202,23 +182,19 @@ }, { "path": "dist/lib/contract/semantic.js", - "sha512": "a86fb625f714446ea0fe67fe56502fd4c4be31dd4395ab4874a9b28cfbebf47ba6b826a4883ab17ce34dc2211f5035dab9e3f6ba5387bc6fbe535a59384410a1" + "sha512": "7988248afebcb60a2ffbf1f622141bb99c7518e4f5691f07cea6ab0426c44bdfc064308b796f031f6d1993de32d3392a2ed1ac6d1ff5fd33c0281a6a257dc69f" }, { "path": "dist/taquito.es5.js", - "sha512": "bcdef8b980776deb2d779b5e56926a6b0917a4c8dcf959857f283fa50f7ecbb8b5cea9574d3965910e6163830f1d00d5f5e9c705597147e98610e69089ba2e35" + "sha512": "0b0434b6a8d0b6e9c6e142a8d902626b7bf69cde886469d212cfbd289665d1728e19b0cb67ee6b3734e168787aa55a10ce664f992c94667ddf7661e10c18b906" }, { "path": "dist/lib/taquito.js", - "sha512": "10f699fda8a86717aa6a13756ca773e4200f986c0e58110f104cfd21c425862f2e80465dc1d57a11e44b0665b951b150b2b6d52450780a4d471ea5e4d55a83b2" - }, - { - "path": "dist/taquito.min.js", - "sha512": "14f8ca832bd05d6392983ccb488a075adc94e13c94d61c32ebf3adb9d8584be5ee82c21a4f9aa1f396cd5f6e1d7fa3d12503d041a0037e85182c778ce506d469" + "sha512": "716a588160851112b13e69bbb4eee034cf38faab161fde9524f69fed67bd893d5e7288c855240dcc5960cc499663eb9d87bc081d6ae27a14b7d840620b473218" }, { "path": "dist/taquito.umd.js", - "sha512": "0cd6d65acf04ca7c03e96f20888cdec47f471a25a02737d909999aac1d021cdb986dc1a8087b515b38623d0d8fbe5c8db98473e712c407934c260fcb8303856c" + "sha512": "758854e16b66fb1dfc8df5e084ad76d67616ad493141c9b760d9e61dbd906d6f289f121f1ee084d8406c790195cb83d872a45e87b3843f7e20e78629616fcc0a" }, { "path": "dist/lib/operations/transaction-operation.js", @@ -230,15 +206,15 @@ }, { "path": "dist/lib/operations/types.js", - "sha512": "f8b8c08e25845ab975633e0e6722f7b5bcc1a78c22250daaf701fd873f666bbd172cc34613cfa443359b170f2646ec725b82a88dbd178e73313aaab496896d1d" + "sha512": "f9fa3bb720faf8eb483e39a8e22a577038735ca93bdfad47a324c54b100f183b99d27c4cc4fb5b18000655f0f63c4f86265f6b5c0ef020fcf120c45d7a96d83b" }, { "path": "dist/lib/contract/view_lambda.js", - "sha512": "b5a8e92befad072215ddfcb7b44d41fa917bdf47a46a51353f21e95fdc6dc1218fc9c4e00364f184de01e3bcbb92395771f9264135a8b9706dc63ee7346916cd" + "sha512": "d910a500f1e21352d1f42a2f03856a353715457173c836330a63d88eaea4068c2d6d297a10d16d23b70f5a3745dfa8da21b1a56e99b23c7922fd0d8b50c25962" }, { "path": "dist/lib/wallet/wallet.js", - "sha512": "05f3c45da24d08b1625a197a3f21e9fc1a1c3b2556a0ee4845d919f9fe4387ec34f0dee77ea36c93c4171fc8e312c10b7ee260f2d1b5a60cbc53dbe93a747371" + "sha512": "2dd4203a38fd18748798776447eb06e2b85890f7600eeea8a25d9d2b3bde14606bb58248bcc4c5cce74606ee67368f1c32aea284e8a576c2d6db82c564643af1" }, { "path": "dist/lib/operations/batch-operation.js.map", @@ -246,11 +222,7 @@ }, { "path": "dist/lib/contract/big-map.js.map", - "sha512": "26d0bd06af319430e1f7a3e58d343b377825be37542bd7b9bb895d2cd54aeda6631a1cf625718122c8365748943d25e95df25a289c52b49f8601e96949a76404" - }, - { - "path": "dist/lib/contract/compose.js.map", - "sha512": "42de75ff824c188fe4ebf47a8f502118267d3985eab2e529a555e64d218c2e8143b56d2b4012be1a0998b749f8a7c2108abaef7c16ca407e3bfbb4890b824f04" + "sha512": "cd3bbd208f73e26c4572a55a9581508ad196bfaa863aaa6c906e556122a4f98b0b43ea77d1945b8b24a937d524a783cee8b7fd206fa218d18adab200afae8fe0" }, { "path": "dist/lib/forger/composite-forger.js.map", @@ -258,15 +230,15 @@ }, { "path": "dist/lib/constants.js.map", - "sha512": "f1abe3c99bb8ddf2f37dac17ea0195cf9b6d2b78c847d4082f2afd883578c74f5cd238460503e65f55faa68d782a0acc2d65750a7dc0e955566f8df7bec7b047" + "sha512": "39a80c1b341c8f3d27954cd39a02f62dbe4b17b38259b9fa9bb1bdfe74040fdbf2efbe8122deff276381bed589500b2b57996cca1ac09c5212d90e3b9b5303e8" }, { "path": "dist/lib/context.js.map", - "sha512": "ad72f8a44b49572ede78a492b65cc29310d0bc8bc3500d8a851b9af1f15cf2bdba795a64dcef4a193f8975156e1ae890db745f7623ad56386c91640271f59711" + "sha512": "29b7fbe024228fe486b711e0ac2e0050c7c543e849df7fabfa9cdf8293ffc0dda8e4087eafef18bdc077c64ab3315814b996a79909d39d058b6d2c797f82eea8" }, { "path": "dist/lib/contract/contract.js.map", - "sha512": "7c3d5f3e23cd8ac9b0c962877ada922601d8e3b7f1d29ef3e8dd938c15b56c10a96e49e7973af8ebd9e223cbe282b4846d8726cded359ec45a47c51570dd579a" + "sha512": "714e002c09802c78abc59e0b2e7d7a378d05f3533deab68a10e6dd43644762dd6c580f06cfa6502a1abfe71ce6f222eef0eb1188ad74df37b1aa57d692ad7adb" }, { "path": "dist/lib/operations/delegate-operation.js.map", @@ -278,19 +250,15 @@ }, { "path": "dist/lib/contract/errors.js.map", - "sha512": "cae7a9575c491b724b15886ed8a04cee9d2733f78f1f6685a57b10e23aad0d58ff5a3e12881f93b1cf74200bc84720e3e51a8331debf30d5109360e6a63f9fa0" + "sha512": "b63becceaaeefe3f367912ab3ebb828470c36787f0d728dd9554e0d3161b6cd3fdc1c8e2c3938434ec2dbff666e2eeefdbfe1010ea488128db511a1ffaaeceae" }, { "path": "dist/lib/contract/estimate.js.map", "sha512": "1b899fbc5e95674b5c1409a03dbe6a735a03947aa54c02cb44dd669c0102df0045239e505af22c8d5b256d80068a54e79a01f9440bcad52bc369ce4780d18e7b" }, - { - "path": "dist/lib/extension/extension.js.map", - "sha512": "c07ca2caa4d924cbf79b6e736893f903a7a3ba4408913fea7deaaa60446181d856b7f9bb53aa2035f0ddc550576b21eda7746bb01c9534b60433aef812c6d47b" - }, { "path": "dist/lib/subscribe/filters.js.map", - "sha512": "d491d1d7a23ea23db9c8d84f5a026901763e98f2d88da2ad5551ee634c5707b78a860119111b859893915be4ea009a0bc0ef1b546d4d18cf31bf079e29425c13" + "sha512": "4a8b1b278e4dc047e9889150dc20d64fa88731ae6c366f970c584e48798e772f703b1c6be8b567293670b0d873cba8eeff15f37d07d63f8ad11620dbecc33f01" }, { "path": "dist/lib/format.js.map", @@ -298,7 +266,7 @@ }, { "path": "dist/lib/contract/index.js.map", - "sha512": "a51ab4a8bd102a99f291d6a4e7fe77cb2cf8ed28c42e355a23a84bcca9f41b53cede420f7850a0277174ee47dd85ff68e0bbd538a792184138ed2b8b1770a1b9" + "sha512": "8aa96c3be894c40bdd729ed6e9c5fc9b535c34e4349f6f1b7a9bff90d07cf03effa1377efc6e92f105b892e882a76fe32c6deb3e9283eafe57ae10d4cc887b65" }, { "path": "dist/lib/wallet/index.js.map", @@ -316,10 +284,6 @@ "path": "dist/lib/injector/interface.js.map", "sha512": "171806b75371f64c23d793f920b121a422046c53cc6961331a3bed9af4d114d8bcd70003fcbfafff44b212ed56e774b32f38e9a1b80e8a85a817ce3897550d5a" }, - { - "path": "dist/lib/parser/interface.js.map", - "sha512": "3147b408d792505f8ccdcd471c2ba2301d0b6a0acde332330bc2a3cb62a36025d6f693854326117692e6425696ea7132afb03cc6e094593be299e8ca34e81367" - }, { "path": "dist/lib/signer/interface.js.map", "sha512": "3c1d4317a69f95e1ad45c2c6036a8249041f66acc0e3334b515ac58dd4069a5c279a5cd21d6901ba9a4647bf3c9f6bf453a9cf02aa15121005f8f4b095556960" @@ -338,7 +302,7 @@ }, { "path": "dist/lib/contract/lambda-view.js.map", - "sha512": "141e648f7a2a18d0688ae68724efc2cbbb7445075f3193715f43048e68533ab99c979ed288bfdef30d5315f1f3f4b7134d687182856545720e46b893fbd158db" + "sha512": "f3181aa2959aad891dceb2b96357d74488cf7569e6b71349fcb262dd72cc8912ca213dfa8567527acd9a5898dd853bb606628877f87d5287d826e8378a232bd1" }, { "path": "dist/lib/wallet/legacy.js.map", @@ -348,18 +312,10 @@ "path": "dist/lib/contract/manager-lambda.js.map", "sha512": "ab4bcecd7c004048b57ab9c44ad6ff0cb08d78e6ba819306587d2a528729b698d1ec5468c5a097b6d106d73dd1925578fcfc08dd72da0709c26a9431911ec5e6" }, - { - "path": "dist/lib/parser/michel-codec-parser.js.map", - "sha512": "bfb327a3f5d5eeea6185cb92aa2717f10acfad53ae7015e0b6ddbe35b75a5b6ff138493672c1005bba74202d044096f2c5e857560045802c795084d703cb519b" - }, { "path": "dist/lib/contract/naive-estimate-provider.js.map", "sha512": "d1bc1aa7205045ee92fd75349f6eb2551804ad864a358894994c098e1af8a8550d1c8cde7c9ded25bccee01b71b737b686f499ba9c42dcfc75eae3cc28a5870c" }, - { - "path": "dist/lib/parser/noop-parser.js.map", - "sha512": "2381087be9648ef924f98f8f1d54be48e6fc8481e60b558475f840884683adaf6df4223681304bfc86a9fde1259b44c20f45e63b9e0d0533e812e158a5b4ce0f" - }, { "path": "dist/lib/signer/noop.js.map", "sha512": "52d660af748298dd1e8a4cf9d09fc0934cca10f67641ccdcd18233c0333b5cc23c5f849f94b93566b650cc11fff381b6cab5e701d0db106762a932b6691c17d3" @@ -374,7 +330,7 @@ }, { "path": "dist/lib/operations/operation-errors.js.map", - "sha512": "b1c5b41b1b6ffdbbe826a398b6ca0be0001e765dcfce6a24a9177733ce34eb386469ef14814fc73963381da504bf6440b70bd6b3d5a9bbea95c94c7ea9b117ed" + "sha512": "4a891b6f1a83472f02372bbedd4cea0e411e45a58f7be36e122f072e15e70a89135ec110e109ebd536081162c9e32a915f371dfe73d1748a2f6ad13b2b416b99" }, { "path": "dist/lib/wallet/operation.js.map", @@ -386,7 +342,7 @@ }, { "path": "dist/lib/wallet/opreation-factory.js.map", - "sha512": "f2c2785f42fa3ab75258293dc6bd372ca6fc1d799db89bf660883d1da4f00d109a2e15d4c386d8bb9ffa18e6aac64ecb0db4c300772d18a978c1ffd7d46ac048" + "sha512": "8683141746683b63804331c3a716c4e715b73e85ec80fef9bdbf257373abddb1f7e2ff0c3dfc3bbec294cb399e4038d58b62bc210c2a3bef2be62a9dad123c47" }, { "path": "dist/lib/operations/origination-operation.js.map", @@ -402,23 +358,23 @@ }, { "path": "dist/lib/contract/prepare.js.map", - "sha512": "3fa029322df1af337d953b932c81a4f3bd2586c4a1132d9aff02b6dcf2f05006d2de33987f2b24b0b7473748792ac4bd9f1c69f4cfa735fec99767dd3988ef8d" + "sha512": "21ebc8645ec76c4a226840fbc6e5e5002dce3e8f9ee59bf4c83ee42b11f5d839ea13cd6470379cfa51dfe74eeb326f0c730e88dbac5c60ad4e79d55f91128d35" }, { "path": "dist/lib/wallet/receipt.js.map", - "sha512": "f30e5aa3c5bf7ec79d1a9ea6c2f60742c68d2399e3c88e29a6e1bea2ae0278e0f29130d6660f99b7147746f5fa467cbbc3b5f2b896ce53e1eae52403d3e64397" + "sha512": "b27d8369326b134282a234adc471baee6c44ab0778041190f3d91a00493d8556976a42bcfd3af50962c77fd3e46c92bacdbaee91027fd7d078461406be6a86ac" }, { "path": "dist/lib/batch/rpc-batch-provider.js.map", - "sha512": "232ec10ab5ff37d3a9891c7e8c9e53d27b9ce2ea85f272888629ec3dc85c2372c307c52f18949676048f5b730060e3acebe50240810710bc89286c31d9ba911c" + "sha512": "f8c64de62a0e1aa36f2b67ed9961b7f77139001db2d9ac457cff85d2b89f17e6859fb33e4f92a5444b20072c93a1643c3ac1661fbeb1f3ec2257a701569019bb" }, { "path": "dist/lib/contract/rpc-contract-provider.js.map", - "sha512": "11f174c7bc649eb9f8766cc66b0713516bf65833b5dd2f2869c00ab82a375a7c3fb02e397932b3adb14c96345a9c4970c073357865995f9b0941a32f95cecba2" + "sha512": "1382b585c7b3fe56befb5ef2ee9be61414f6a09dd509212266bcc1a55a62cb6ab426301e1ad4a67f725c9ee4b917898236512c8f5f9c44630797cccdabd5d76b" }, { "path": "dist/lib/contract/rpc-estimate-provider.js.map", - "sha512": "fb37cd11184a3e35383ef64b4fdf92443079d0e4ff9d7efffd3dff4e68fe692623e13f23a89f331287bc0eae9d04ff11c6feb139c2af5b8f43ab7b7d69136f92" + "sha512": "6bf0d097dc792314d7c4708a6a1a3f887c95531bcaf70c6ad52fa0ff1c5e6cfa782631c84942cad673831be0546205de6b135651aebd709c2bfb7c01b539634d" }, { "path": "dist/lib/forger/rpc-forger.js.map", @@ -434,19 +390,19 @@ }, { "path": "dist/lib/contract/semantic.js.map", - "sha512": "5063f2ed25bbd1efc79be634ed1039158304a0d8b6667d408789beccb17af82fbcdd6b15d67f78989fa5c148661efd01fa7d2a46e48ab0d517d46f5b6c7d810d" + "sha512": "91ecf283c6a653ef5464fc9e6a166698590d99722553ab2cbd60356bfae7cb25e60f86d2f9d8c829e779e5353a5bb9474546d78e01dbecc9894731607658e74d" }, { "path": "dist/taquito.es5.js.map", - "sha512": "26c9147c3c870b0219e1d4d984ffb90373e7f41a5525f08d0b0fa039bd4c65eab77a47e206c926aa55518c51d3acdc6b9a8630c76d084915488e6555b9b5003a" + "sha512": "1fc2c7a355d54a94ed3ae6048c3b771bfef1cac502217727774e91d4976d08585c98d6c4c4b0070486cc0465ee3db9b68e8e4775e244528b5ff62202acc542d0" }, { "path": "dist/lib/taquito.js.map", - "sha512": "04acfc19635eabefb2b203970caa188874194fae9b8a29fa376bb61f5b109b659210a5a88c155fb2f2dac75759ace0fe15e7efe1d886d7f44955c4c895fb8a52" + "sha512": "98babb51772900d16f0575f0ba21d051e33cb8733cb7ffc80bf7a1adb40c3c73b7798e26c62b9b0f8a178bf182467053c0f8b8c66236309a4b2a9dd0b06d7a66" }, { "path": "dist/taquito.umd.js.map", - "sha512": "545c7cf7d4ab80e4bfc970a6750fa538fdf54347f54ddcf746027d0772d7c158d3f40bb4cafb57997a623e2b6999eb115b33f906726e5a1b97eaaa596654df3c" + "sha512": "811bb1b552660e34f1417efb620841767f1e0a66462756894bc2e54bb2d2f0bceafe1980f6d00246acb6c085279b6627ffb3583e5fb85aa3d756b1a8a505f4c1" }, { "path": "dist/lib/operations/transaction-operation.js.map", @@ -458,19 +414,19 @@ }, { "path": "dist/lib/operations/types.js.map", - "sha512": "3a911cbe4cdbf62a13596203ec99f766ff4c70e3c55b14152ee7db5d0d78b1f788a4a0b33c8427550c60907da9c6f087348738b35c4abf9965fa9f0022ffcd60" + "sha512": "d6962f944e36fa03d734913cb4fd8f19fb4ca26428412d14432eab9ac8e0402111444a0bc4b12eec77224f96ae16efb07c28bc321ace2a36eafedcfd0bfbdf93" }, { "path": "dist/lib/contract/view_lambda.js.map", - "sha512": "d89cf62e2819934ce633bee7cd56846a8f4d4a864994afe460bf4716a14522f4842a9215321855a46faad3210938bbf38a5702184463106c70755f1dbc814307" + "sha512": "f6144b96d9345da551b9b93b0b8099a044dcf03a4a80f299ac05818944ab5200ca905a984143f6f58db585b55ed0b814c4a55310f71f62201cc7484d0c6b26b3" }, { "path": "dist/lib/wallet/wallet.js.map", - "sha512": "d955aa0b89fdcbf7229d9eca3297cf57087a9fd9727e2ec0163a9472e939a030b0fef91b09ee34050cf20aeaecb2f4b2e81d16a1ab990a59bb31513fba8d9292" + "sha512": "8711520e7678d943fffa138d6906b458e40d9c9e8009d123086779a5ce2acbb6819fc09a234eee3b8418885c5cb7154682590aea495dd0b52204ca77aa0911cb" }, { "path": "README.md", - "sha512": "5274ef1989d9bd997c586409a3b25f256300c1edbdbbfcb605ceab81cd276740d28829335f5b91b6dbee4c59777d7fa13b692924a6fe51c0d176ba3657f697fa" + "sha512": "ce19929ea8883fdc2db1a84d36c959d426b0d799ecda2c1ec80ee0ba4b8abeaa13f2ace46670e2742aecb70399c1bcc91629ae83317412fac1984842445cbcc8" }, { "path": "dist/types/operations/batch-operation.d.ts", @@ -478,11 +434,7 @@ }, { "path": "dist/types/contract/big-map.d.ts", - "sha512": "08afebf273699fdc80aaf0182afb28ba3b48fc5a7d67a5f50f0877c4c286e1a8dcd9dfdbbbf321ac5b35e48e1f07c3da4ed9854b13ce6b24e0e3313f8fb30f54" - }, - { - "path": "dist/types/contract/compose.d.ts", - "sha512": "31c0098c734d77eee63fa895826e7fb34e22afeb03590d5738cdc53a60676d5fb7c79f67825cc2fbc953fe2caf61e1afcb0624a169a3e54218235b0ac49ac9b1" + "sha512": "3377bba76366573c5a2ea3ec72eb5a19af95526227a704080820263180115017de9ead361bb5486edb4576a97d09954a2af64d97ae807a4a68d374252ab2752e" }, { "path": "dist/types/forger/composite-forger.d.ts", @@ -490,15 +442,15 @@ }, { "path": "dist/types/constants.d.ts", - "sha512": "17eadd0ed0a4f7c826ff392eedbb9155e266ca5983531218f9047a4aab4608247cc2ce62d01778ff0a51c8ec9a0de9cc3d9f6526355e01731152a57b149b41ef" + "sha512": "9972b3a734736289a501f5118c06dd0ab8c5d11e3b2fec3b53605a3eec8367b2798d0d28d1afe9d98595c98b81dcbe1574b4659393cd4a8c84aa362325e653fc" }, { "path": "dist/types/context.d.ts", - "sha512": "41d170dc31b8d06fe9fe1e109a66dca74f6fd645d36365b45c2b11df655419c5c1be810520f2f3d4d35fb23ce9280a87a519bc957622fea3a42902b163a8887c" + "sha512": "2223d98134c9b721a349a179f0ed622894dbeb7f3695304d4c7fdf2c15fe6cf836476cae2457dc6c1c711904a89b7594b536e2b95a82d9a74625fcbf2c094591" }, { "path": "dist/types/contract/contract.d.ts", - "sha512": "df0ead175d90ccf047f6ea8089dcb53aa6fa40ce6a86e543a94f6845511edd2d22593f629c74aa2b0671879fd2ac63bc6200eac85eec615f81446159aa244452" + "sha512": "eb3005318d98f5da7b189f883b6d9c0284dd42f12bc5489f574e553ed25a0c12b2d98c0eb677fe2bcc0633aa3d7ba131120f7548b20b9ee284a30271ca2b3456" }, { "path": "dist/types/operations/delegate-operation.d.ts", @@ -510,16 +462,12 @@ }, { "path": "dist/types/contract/errors.d.ts", - "sha512": "540bbb3c50981887b2edaec4f5d86e9177797dd924184af913d6517e32d10c2cd8c5b2496352c1a41f76a5e4c52a24739aba9ee919945d7f217ef1f27a962a96" + "sha512": "31568915089388b0011da64c5050289d69ed3ae325f584719f652636bce45c964d81556a9ee9be4fce86798aafc266f7fd997002d21e8c702850e52f9d40158c" }, { "path": "dist/types/contract/estimate.d.ts", "sha512": "f5c74cffdda9a25bf70ca8da11096c36a5f1576f3af1cbc682538da706ef403fd078165c0178452c8bdd8278cf1ff6f676be66c53e6ca34e2d7bc1c0c2e1a0ed" }, - { - "path": "dist/types/extension/extension.d.ts", - "sha512": "8f1aae7d5d59aeb988c34408894cb8592a52ca0f09dd230293c3c615bc8d3ea953dc5ed5cbd84c01f1d7cb890c75d069c11cd65039283fac489ae24fd1ec21fe" - }, { "path": "dist/types/subscribe/filters.d.ts", "sha512": "57b603e7516d2a45f985b74dd093109a17959fe4e7e9da0feff832ef7dfa28e4e0ff4fb0f5090bcf7fd69cc50ad01c2119172b2544e7cb7ec6f16c34ed538a43" @@ -530,7 +478,7 @@ }, { "path": "dist/types/contract/index.d.ts", - "sha512": "6ba86ad78dbf03aca0e366404e46d48af5f76c6220dc482661d2cc7b58669a207d8d857444f19e7f1da9471c618f988b3f8882ff0d543a47f6bdbeddcd50b66e" + "sha512": "c375f34100aaa14436bcb6a49b86ba1ca4d308adf655ec867583503c528312b4466deeb750a612340dd2bb4541e9937eae2540aa6bb852c51ab553573d4c753c" }, { "path": "dist/types/wallet/index.d.ts", @@ -538,7 +486,7 @@ }, { "path": "dist/types/contract/interface.d.ts", - "sha512": "b58cb0228582c526431cf0509538d896c531e5140d80b333dd1fe4cb6022cb0d3975017fcab68daaae3d9911e37b4d5e941a42009f8461f5445bb842af22d6cf" + "sha512": "5add9d35be41259702dee0369584242ddd1e2a9c62d88451199f4bfbe81c743a27b03ffcb46a7e90d5b84683c84a2a81584bad5955cb023b34d47bc36ec8dc76" }, { "path": "dist/types/forger/interface.d.ts", @@ -548,10 +496,6 @@ "path": "dist/types/injector/interface.d.ts", "sha512": "8cdff3c5199787c453aaa4989d08f0b71963c44c80989deabb4ae0e5d9b9c7fb24c210be7cdc70713eba84148311179e884516b46bb6e35571441c161aa7785a" }, - { - "path": "dist/types/parser/interface.d.ts", - "sha512": "0afbbe68a239e27fa704c84ef75d36a8868f3ebc91e7eb3670c15e4f52f9f4c1699c69e7cd5298045faa380a0e744aaab4328413c4363fca7f917859cd14ac36" - }, { "path": "dist/types/signer/interface.d.ts", "sha512": "69e184d0cc6b4ef97392218842f61d21927f35b8d286e6261d770a47c9a3a31c2e97671e9228670a4811b2d9dc3b8613e6c279a3001319287a5dbe5b82c08d43" @@ -574,24 +518,16 @@ }, { "path": "dist/types/wallet/legacy.d.ts", - "sha512": "32cecca1fed884d9dc3d89c6f27b3afa09f36f6783609f390885a8f812f29a885c9cba5bfb333bd16472985843e1af9222f7ade451077ce475fdbe82c7d56989" + "sha512": "5a4e123ec940196e52dbe0975b7434cef50ac154262cda66392d5569dc49a14e46a7d2ecc140bcde38dc328a1394dd208d597056cbd7fa2270dba793af7c9707" }, { "path": "dist/types/contract/manager-lambda.d.ts", "sha512": "ef11f92f9c08aeb60af14a9007b3988787eb61fea1b7cfa090d26f9efa8ef726c4d7b170f357d1ced5469a91d3bacde56c3a3a2328dc1f426064609152e55031" }, - { - "path": "dist/types/parser/michel-codec-parser.d.ts", - "sha512": "ba630cd34072e90205c95f8160f5b6f56eb789cc499dfca912b041d89b1ddd7d7113cb2f6f8b9cb65f41369305eb78544792fbae0f73b9b115773e46363b4d0c" - }, { "path": "dist/types/contract/naive-estimate-provider.d.ts", "sha512": "603371be139f3699e8de7304301f796fb60ac8a7fa1d91456f45b55daa507854776787f843b1ae09a85f7e91d4351aaeb05200ec5ecbdcf412bcbe604b78282e" }, - { - "path": "dist/types/parser/noop-parser.d.ts", - "sha512": "cce5777b72d979d2b797b5fff586fd3c59105d52bbc8e211591fabbfc7c7991ec95eda3f189ac501746d11c7158a12e2a068af4298409af4e82f666dbc583514" - }, { "path": "dist/types/signer/noop.d.ts", "sha512": "2702d7c521c5065d2738455dc4f464c89d9c9457eff88ff65fa955e7f15176a880330a066de44fc6da84fa5c41523afd29401100a4db7dd730c0b299712ff1b8" @@ -626,7 +562,7 @@ }, { "path": "dist/types/wallet/origination-operation.d.ts", - "sha512": "45c5f3ff4bbcf355a618deeb1fcd2b1882c626e268e6b53df22bce0c44c7134baff22b99cdcead7f34e40cb29748a2cac38dc5f7a73cf50c1fa8c1a4b14fe398" + "sha512": "4130d69bc1b6c20ee1c0a2d44246257fd35a42967e05adea08a07185cb09752d2238085ebd85cc85ff5c001420e33d900cf15330f2429aa1d1598616055502e6" }, { "path": "dist/types/subscribe/polling-provider.d.ts", @@ -634,7 +570,7 @@ }, { "path": "dist/types/contract/prepare.d.ts", - "sha512": "0dcf87a5c3f28dbb8172e8398eecbea37887665464e95c62faeec2f041999a48668d3836e347f77bf32940859bbfcbb1b38cf209b1a31396e46d4539b4246756" + "sha512": "89ebaae08fc3318ead0289ffe2882304c9e37dc2d532ee2e49c6ffa6ba316143382611a1c0528285f0755f5f7e1ae3becf27cc1baaaeb90b15629436b13b4f62" }, { "path": "dist/types/wallet/receipt.d.ts", @@ -646,7 +582,7 @@ }, { "path": "dist/types/contract/rpc-contract-provider.d.ts", - "sha512": "c4802f3494b51e0608a4c32df2fdcb16795369929b3a49ec7a5ab0369ffb67617c787695486464e8b6ef7ddb01ab163518882590bf11d63f106d24320728c70d" + "sha512": "d80d7c62c02e512a3466f7ac9beac8481d23d10887180ac1466a3bc5578e3e3d3293f04d41703c76a1058d9a7bfc15ea340dbc44690657831508643f2c2c3ee5" }, { "path": "dist/types/contract/rpc-estimate-provider.d.ts", @@ -670,7 +606,7 @@ }, { "path": "dist/types/taquito.d.ts", - "sha512": "a1237c5ee9d5c54c354af9331f7c607a8516f40253c2f673b96e8287213d89f2b3ae74d56b8d5fec3a2c93cfa8e590f7a28b37ce4bc6e0932194ddf71339310a" + "sha512": "9817497495de215bae7128f637b7129ca515a4258728ad929a9389490c8969a8820bc116e90fdfc494b27b13a3c13a9c597739b64d0578268244fba068b02a9f" }, { "path": "dist/types/operations/transaction-operation.d.ts", @@ -682,7 +618,7 @@ }, { "path": "dist/types/operations/types.d.ts", - "sha512": "746537ad075a405b4072eb2d2bd141e5eb9ebf26aa9c2b17c1ed11af62c707fffb9440f52dd7f7c233b966c2af67b6743403e11e08dfd76a9a23b1ebb4bcb646" + "sha512": "2b1fb8c1cb088a524ef21512abb0c50adb42b5a8ddb0796ccb61493ddd73d965f5f92beb69843025e29532aba74593419ad4e4b42420aab588eca21f69798ea7" }, { "path": "dist/types/contract/view_lambda.d.ts", @@ -690,11 +626,7 @@ }, { "path": "dist/types/wallet/wallet.d.ts", - "sha512": "97d1acf1aed5ea106c20ca8f8259456f99e7eb06813f2a2c13ee9052935995bb82f291674032266d1259baebd718a3c520d32fde30bf4ea60b46bf2de61c4f01" - }, - { - "path": "dist/taquito.min.js.LICENSE.txt", - "sha512": "3f1d7511b4d8fb46608a36f18f2b0de5336d75dda7a2520e7f6a145a0d027e83860ff6ef6d5135a21e6082b751eb7bf04fe82a4a43d5054e94eaf8ed4984c4e0" + "sha512": "19db47c6a9fdf581097ebfa00e54178aaf99c2267eeecff4db1c572eb08341913958754ee91cf053eff12f17e392c4799bf900823f627fa44b82fa4a24366b4f" } ] } @@ -733,7 +665,7 @@ "unpkg", "version" ], - "sha512": "3027b46d19a581c7466374c7ebc9e82b8cd072a08a7fa6154b1ade19541fc912091f5960b54a76c6208a0566d642860dddd9b5c813cc08517341bbe3a69492da" + "sha512": "a21e1d7fea43ac0e135a2d05ed1df8438597c2c04c055b85e65bb1cd628e28e8d08d7d493e98e649b53443f5a929df28f306f3eed4739f348dde924b63d978ae" } }, { @@ -741,7 +673,7 @@ "value": { "packageJson": { "name": "@taquito/taquito", - "version": "8.0.4-beta.0", + "version": "7.1.0-preview.1", "description": "High level functionality that builds upon the other packages in the Tezos Typescript Library Suite.", "keywords": [ "tezos", @@ -818,24 +750,24 @@ ] }, "dependencies": { - "@taquito/http-utils": "^8.0.4-beta.0", - "@taquito/michel-codec": "^8.0.4-beta.0", - "@taquito/michelson-encoder": "^8.0.4-beta.0", - "@taquito/rpc": "^8.0.4-beta.0", - "@taquito/utils": "^8.0.4-beta.0", + "@taquito/http-utils": "^7.1.0-preview.1", + "@taquito/michel-codec": "^7.1.0-preview.1", + "@taquito/michelson-encoder": "^7.1.0-preview.1", + "@taquito/rpc": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1", "rx-sandbox": "^1.0.3", "rxjs": "^6.6.3" }, "devDependencies": { "@babel/types": "7.11.5", - "@types/jest": "^26.0.16", - "@types/node": "^14.14.10", + "@types/jest": "^26.0.14", + "@types/node": "^14.11.5", "colors": "^1.4.0", "coveralls": "^3.1.0", "cross-env": "^7.0.2", - "jest": "^26.6.3", - "jest-config": "^26.6.3", + "jest": "^26.5.2", + "jest-config": "^26.5.2", "lint-staged": "^10.4.0", "lodash.camelcase": "^4.3.0", "prettier": "^2.1.2", @@ -848,12 +780,12 @@ "rollup-plugin-typescript2": "^0.27.3", "shelljs": "^0.8.4", "terser-webpack-plugin": "^4.2.3", - "ts-jest": "^26.4.4", - "ts-node": "^9.1.1", + "ts-jest": "^26.4.1", + "ts-node": "^9.0.0", "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-config-standard": "^9.0.0", - "typescript": "^4.1.5", + "typescript": "^4.0.3", "webpack": "^4.44.2", "webpack-assets-manifest": "^3.1.1", "webpack-cli": "^3.3.12", @@ -864,5 +796,5 @@ } } ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJgN/T8CRAD9Qy5GYHsngAA+PcQAIotijM2v7hrqx2GKytZSWyG\nMHqO2G+pyhHIg1GIHBCfQ65N+yG8mfW8YBewNP2HORzhLadxz85Zdvt0DJJtO0i7\nTgB9jpQRgZ0n0RjV3AZQs9mbZ2PB9p7dfmSAP7wgmPhxvyQzWOzi5Fngi2RvEBzx\nXdLHSclhHpyWEz4VDOCTiMrnRUG3XCVktvflrxUlKzeoNdlcR4lBE5x56rVhZl9v\nnU4biERxWfJpCcXL/8JkBzilGTDgNIEr1pw1P9gyzpA5iM4YdXctKuOfm5+JFbva\nfu9au3HYyauhlbrVC/OZl9BgwUgA+w+kPa49Nm0OtIsIyRs9HsAjpoOEIZ4xZyVM\nXC7pQUNl/zFJvdjuCCRlnOdbxn8y7df2oZDP/2iJro6H4Vvwtm7tBno4jPlweJ3J\nr1meol48Ah0iHfMTfuuVhoht6HzIcPytUABdyAutxEBn/hMUQMr98xLa3xeCQST+\nGd6lFoVyx7G6yOCBMS39ED5PQvTLhkr3ASTT3Am3CpDg4rCfaszdMgmMHpze+89Z\n7ElOyqrKD+9QQhhVFLNKkWRtfd9rod2tgIt7p1o82SkqSlWc8I5wcLZRtx+pJ4RG\net983vHzJ3JseOos4m4AtF1Q9qH4yUSX2tAC1ZaWxKBj0qCcSX3RzVcMFFRCp+cY\nlk4VSjbDDbD+HRv5bAZp\n=h5zw\n-----END PGP SIGNATURE-----\n" + "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJftcSkCRAD9Qy5GYHsngAAB78QAFliAehxEWcZzjVXX94d+aU/\n4kxTapPaVWAuQPsSRDQgnmCNxQokP646hsfpEJ70pFgkhU1j4obO5K06wPubjTHv\ntXMdH3yoT87yePZzHWPWvGQOEIakEEt6RTo+e2ixH3Fgym0ZSqQF90uKts7a7Ih0\nomXcCzVYc14XFBnrkBk4AK24IolfnViEFQfN5g21n+6LPpuyARXu2N3Cj6BWzicM\n/i+89WQB5J8jT6flYYDSlwmdWm2Haar9ZMXdtp8s6AaFGf6k8/ZwKJCJfvZoj0aF\nMc7XSK5aSFg6/ImkAn+AuyOQkIft2q6h+PPoIZPYVefFSB158blWGxy069GO82FA\ndjKQL52IdvMlAPymSUzQJtrFaPUC0gguEIqUYWMB/iGIsKjLqvNV+dnKpywwBZl/\nRoxmZneGaveVsckZa4XaNrTMkTaR5Cw2tVg+4cxDHBQFVsyblf2y5pCA/DZobb1K\nqWlEqhOQ6DQ00d3OdzPD7xatSf9569AXmIjN95WJb7SEwVM5exckEOJZ01ggxES7\nqmIyFaKhQncNL30jxcwfiFnsdO6xMjeOlueDNKE0pD+6urjnB9nedMEseuHSAej3\nBAYrqxnbZHT3QSs+fA1wRzTbFIiUXxa7CVijOfXP3ZtCVv3vPuU1g2z99TiPmDM1\ntsTaS+wGpoNJYkZw0xgo\n=1rBw\n-----END PGP SIGNATURE-----\n" } \ No newline at end of file diff --git a/packages/taquito/src/batch/rpc-batch-provider.ts b/packages/taquito/src/batch/rpc-batch-provider.ts index feb160acc0..325b717030 100644 --- a/packages/taquito/src/batch/rpc-batch-provider.ts +++ b/packages/taquito/src/batch/rpc-batch-provider.ts @@ -99,10 +99,9 @@ export class OperationBatch extends OperationEmitter { ...param, }); case OpKind.ORIGINATION: - return createOriginationOperation( - await this.context.parser.prepareCodeOrigination({ + return createOriginationOperation({ ...param, - })); + }); case OpKind.DELEGATION: return createSetDelegateOperation({ ...param, diff --git a/packages/taquito/src/constants.ts b/packages/taquito/src/constants.ts index b6cfa7eb07..caadfc3250 100644 --- a/packages/taquito/src/constants.ts +++ b/packages/taquito/src/constants.ts @@ -22,32 +22,24 @@ export enum Protocols { PsBABY5H = 'PsBABY5HQTSkA4297zNHfsZNKtxULfL18y95qb3m53QJiXGmrbU', PsBabyM1 = 'PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS', PsCARTHA = 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb', - PsDELPH1 = 'PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo', - PtEdo2Zk = 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA', - PsFLorena = 'PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i' + PsDELPH1 = 'PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo' } export const protocols = { '004': [Protocols.Pt24m4xi], '005': [Protocols.PsBABY5H, Protocols.PsBabyM1], '006': [Protocols.PsCARTHA], - '007': [Protocols.PsDELPH1], - '008': [Protocols.PtEdo2Zk], // edonet v2 - '009': [Protocols.PsFLorena] + '007': [Protocols.PsDELPH1] }; export enum DefaultLambdaAddresses { MAINNET = 'KT1CPuTzwC7h7uLXd5WQmpMFso1HxrLBUtpE', CARTHAGENET = 'KT1VAy1o1FGiXYfD3YT7x7k5eF5HSHhmc1u6', - DELPHINET = 'KT19abMFs3haqyKYwqdLjK9GbtofryZLvpiK', - EDONET = 'KT1A64nVZDccAHGAsf1ZyVajXZcbiwjV3SnN', - FLORENCENET = 'KT1KCe3YqGnudsiCWb5twbe2DH5T3EMdLpSE' + DELPHINET = 'KT19abMFs3haqyKYwqdLjK9GbtofryZLvpiK' } export enum ChainIds { MAINNET = "NetXdQprcVkpaWU", CARTHAGENET = "NetXjD3HPJJjmcd", - DELPHINET = "NetXm8tYqnMWky1", - EDONET = "NetXSgo1ZT2DRUG", - FLORENCENET = "NetXxkAx4woPLyu" -} + DELPHINET = "NetXm8tYqnMWky1" +} \ No newline at end of file diff --git a/packages/taquito/src/context.ts b/packages/taquito/src/context.ts index 58c7ab6f2c..4c445f9086 100644 --- a/packages/taquito/src/context.ts +++ b/packages/taquito/src/context.ts @@ -6,20 +6,13 @@ import { Injector } from './injector/interface'; import { RpcInjector } from './injector/rpc-injector'; import { Signer } from './signer/interface'; import { NoopSigner } from './signer/noop'; -import { OperationFactory } from './wallet/operation-factory'; +import { OperationFactory } from './wallet/opreation-factory'; import { RpcTzProvider } from './tz/rpc-tz-provider'; import { RPCEstimateProvider } from './contract/rpc-estimate-provider'; import { RpcContractProvider } from './contract/rpc-contract-provider'; import { RPCBatchProvider } from './batch/rpc-batch-provider'; import { Wallet, LegacyWalletProvider, WalletProvider } from './wallet'; -import { ParserProvider } from './parser/interface'; -import { MichelCodecParser } from './parser/michel-codec-parser'; -import { Packer } from './packer/interface'; -import { RpcPacker } from './packer/rpc-packer'; -import BigNumber from 'bignumber.js'; -import { retry } from 'rxjs/operators'; -import { OperatorFunction } from 'rxjs'; export interface TaquitoProvider<T, K extends Array<any>> { new (context: Context, ...rest: K): T; @@ -33,14 +26,13 @@ export interface Config { confirmationPollingTimeoutSecond?: number; defaultConfirmationCount?: number; shouldObservableSubscriptionRetry?: boolean; - observableSubscriptionRetryFunction?: OperatorFunction<any,any>; } -export const defaultConfig: Partial<Config> = { +export const defaultConfig: Required<Config> = { + confirmationPollingIntervalSecond: 10, defaultConfirmationCount: 1, confirmationPollingTimeoutSecond: 180, - shouldObservableSubscriptionRetry: false, - observableSubscriptionRetryFunction: retry() + shouldObservableSubscriptionRetry: false }; /** @@ -49,11 +41,9 @@ export const defaultConfig: Partial<Config> = { export class Context { private _rpcClient: RpcClient; private _forger: Forger; - private _parser: ParserProvider; private _injector: Injector; private _walletProvider: WalletProvider; public readonly operationFactory: OperationFactory; - private _packer: Packer; public readonly tz = new RpcTzProvider(this); public readonly estimate = new RPCEstimateProvider(this); @@ -68,9 +58,7 @@ export class Context { private _config?: Partial<Config>, forger?: Forger, injector?: Injector, - packer?: Packer, - wallet?: WalletProvider, - parser?: ParserProvider, + wallet?: WalletProvider ) { if (typeof this._rpc === 'string') { this._rpcClient = new RpcClient(this._rpc); @@ -82,15 +70,13 @@ export class Context { this._injector = injector ? injector : new RpcInjector(this); this.operationFactory = new OperationFactory(this); this._walletProvider = wallet ? wallet : new LegacyWalletProvider(this); - this._parser = parser? parser: new MichelCodecParser(this); - this._packer = packer? packer: new RpcPacker(this); } - get config(): Partial<Config> { + get config(): Required<Config> { return this._config as any; } - set config(value: Partial<Config>) { + set config(value: Required<Config>) { this._config = { ...defaultConfig, ...value, @@ -145,22 +131,6 @@ export class Context { return this._proto; } - get parser() { - return this._parser; - } - - set parser(value: ParserProvider) { - this._parser = value; - } - - get packer() { - return this._packer; - } - - set packer(value: Packer) { - this._packer = value; - } - async isAnyProtocolActive(protocol: string[] = []) { if (this._proto) { return protocol.includes(this._proto); @@ -170,32 +140,10 @@ export class Context { } } - async getConfirmationPollingInterval() { - try { - const constants = await this.rpc.getConstants(); - let confirmationPollingInterval = BigNumber.sum(constants.time_between_blocks[0], - new BigNumber(constants.delay_per_missing_endorsement!) - .multipliedBy(Math.max(0, constants.initial_endorsers! - constants.endorsers_per_block)) - ); - - // Divide the polling interval by a constant 3 - // to improvise for polling time to work in prod, - // testnet and sandbox enviornment. - confirmationPollingInterval = confirmationPollingInterval.dividedBy(3); - this.config.confirmationPollingIntervalSecond = confirmationPollingInterval.toNumber(); - return this.config.confirmationPollingIntervalSecond; - } catch (exception) { - // Return default value if there is - // an issue returning from constants - // file. - return 10; - } - } - /** * @description Create a copy of the current context. Useful when you have long running operation and you do not want a context change to affect the operation */ clone(): Context { - return new Context(this.rpc, this.signer, this.proto, this.config, this.forger, this._injector, this.packer); + return new Context(this.rpc, this.signer, this.proto, this.config, this.forger, this._injector); } } diff --git a/packages/taquito/src/contract/big-map.ts b/packages/taquito/src/contract/big-map.ts index acf2967805..8020b0e11d 100644 --- a/packages/taquito/src/contract/big-map.ts +++ b/packages/taquito/src/contract/big-map.ts @@ -1,4 +1,4 @@ -import { Schema, BigMapKeyType } from '@taquito/michelson-encoder'; +import { Schema } from '@taquito/michelson-encoder'; import BigNumber from 'bignumber.js'; import { ContractProvider } from './interface'; import { HttpResponseError, STATUS_CODE } from '@taquito/http-utils'; @@ -6,18 +6,9 @@ import { HttpResponseError, STATUS_CODE } from '@taquito/http-utils'; export class BigMapAbstraction { constructor(private id: BigNumber, private schema: Schema, private provider: ContractProvider) {} - /** - * - * @description Fetch one value in a big map - * - * @param keysToEncode Key to query (will be encoded properly according to the schema) - * @param block optional block level to fetch the values from (head will be use by default) - * @returns Return a well formatted json object of a big map value or undefined if the key is not found in the big map - * - */ - async get<T>(keyToEncode: BigMapKeyType , block?: number) { + async get(keyToEncode: string) { try { - const id = await this.provider.getBigMapKeyByID<T>(this.id.toString(), keyToEncode, this.schema, block); + const id = await this.provider.getBigMapKeyByID(this.id.toString(), keyToEncode, this.schema); return id; } catch (e) { if (e instanceof HttpResponseError && e.status === STATUS_CODE.NOT_FOUND) { @@ -28,23 +19,6 @@ export class BigMapAbstraction { } } - /** - * - * @description Fetch multiple values in a big map - * All values will be fetched on the same block level. If a block is specified in the request, the values will be fetched at it. - * Otherwise, a first request will be done to the node to fetch the level of the head and all values will be fetched at this level. - * If one of the keys does not exist in the big map, its value will be set to undefined. - * - * @param keysToEncode Array of keys to query (will be encoded properly according to the schema) - * @param block optional block level to fetch the values from - * @param batchSize optional batch size representing the number of requests to execute in parallel - * @returns A MichelsonMap containing the keys queried in the big map and their value in a well-formatted JSON object format - * - */ - async getMultipleValues<T>(keysToEncode: Array<BigMapKeyType>, block?: number, batchSize: number = 5) { - return this.provider.getBigMapKeysByID<T>(this.id.toString(), keysToEncode, this.schema, block, batchSize); - } - toJSON() { return this.id.toString(); } diff --git a/packages/taquito/src/contract/compose.ts b/packages/taquito/src/contract/compose.ts deleted file mode 100644 index 686a4fea46..0000000000 --- a/packages/taquito/src/contract/compose.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Wallet } from '../wallet/wallet'; -import { Context } from '../context'; -import { ContractAbstraction } from './contract'; -import { ContractProvider } from './interface'; - -export function compose< - ContractAbsComposer1 extends ContractAbstraction<ContractProvider | Wallet>, - ContractAbsComposer2 extends ContractAbstraction<ContractProvider | Wallet>, - ContractAbstractionComposed ->( - functioncomposer1: (abs: ContractAbsComposer1, context: Context) => ContractAbsComposer2, - functioncomposer2: (abs: ContractAbsComposer2, context: Context) => ContractAbstractionComposed -): (abs: ContractAbsComposer1, context: Context) => ContractAbstractionComposed { - return (contractAbstraction, context) => - functioncomposer2(functioncomposer1(contractAbstraction, context), context); -} diff --git a/packages/taquito/src/contract/contract.ts b/packages/taquito/src/contract/contract.ts index e565d06068..b14061857b 100644 --- a/packages/taquito/src/contract/contract.ts +++ b/packages/taquito/src/contract/contract.ts @@ -101,7 +101,7 @@ export class ContractMethod<T extends ContractProvider | Wallet> { export class ContractView { constructor( private currentContract: ContractAbstraction<ContractProvider | Wallet>, - private provider: ContractProvider, + private provider: ContractProvider | Wallet, private name: string, private chainId: string, private callbackParametersSchema: ParameterSchema, @@ -129,10 +129,6 @@ export class ContractView { lambdaAddress = DefaultLambdaAddresses.CARTHAGENET } else if (this.chainId === ChainIds.DELPHINET) { lambdaAddress = DefaultLambdaAddresses.DELPHINET - } else if (this.chainId === ChainIds.EDONET) { - lambdaAddress = DefaultLambdaAddresses.EDONET - } else if (this.chainId === ChainIds.FLORENCENET) { - lambdaAddress = DefaultLambdaAddresses.FLORENCENET } else if (this.chainId === ChainIds.MAINNET) { lambdaAddress = DefaultLambdaAddresses.MAINNET } else { @@ -318,7 +314,7 @@ export class ContractAbstraction<T extends ContractProvider | Wallet> { * * @deprecated getBigMapKey has been deprecated in favor of getBigMapKeyByID * - * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-context-contracts-contract-id-big-map-get + * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-script */ public bigMap(key: string) { // tslint:disable-next-line: deprecation diff --git a/packages/taquito/src/contract/errors.ts b/packages/taquito/src/contract/errors.ts index 2fc3d01a30..254b95958b 100644 --- a/packages/taquito/src/contract/errors.ts +++ b/packages/taquito/src/contract/errors.ts @@ -23,13 +23,3 @@ export class InvalidDelegationSource implements Error { this.message = `Since Babylon delegation source can no longer be a contract address ${source}. Please use the smart contract abstraction to set your delegate.`; } } - -export class InvalidCodeParameter implements Error { - public name: string = 'InvalidCodeParameter'; - constructor(public message: string, public readonly data: any) { } -} - -export class InvalidInitParameter implements Error { - public name: string = 'InvalidInitParameter'; - constructor(public message: string, public readonly data: any) { } -} diff --git a/packages/taquito/src/contract/index.ts b/packages/taquito/src/contract/index.ts index eef7b5a8ad..168c6c71f5 100644 --- a/packages/taquito/src/contract/index.ts +++ b/packages/taquito/src/contract/index.ts @@ -3,5 +3,3 @@ export * from './errors'; export * from './interface'; export * from './manager-lambda'; export * from './prepare'; -export * from './view_lambda'; -export { compose } from './compose' diff --git a/packages/taquito/src/contract/interface.ts b/packages/taquito/src/contract/interface.ts index fe3c5fa712..7aa4f3632a 100644 --- a/packages/taquito/src/contract/interface.ts +++ b/packages/taquito/src/contract/interface.ts @@ -1,6 +1,4 @@ -import { BigMapKeyType, MichelsonMap, MichelsonMapKey, Schema } from '@taquito/michelson-encoder'; -import { OperationBatch } from '../batch/rpc-batch-provider'; -import { Context } from '../context'; +import { Schema } from '@taquito/michelson-encoder'; import { DelegateOperation } from '../operations/delegate-operation'; import { OriginationOperation } from '../operations/origination-operation'; import { TransactionOperation } from '../operations/transaction-operation'; @@ -81,7 +79,7 @@ export interface StorageProvider { * * @deprecated Deprecated in favor of getBigMapKeyByID * - * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-context-contracts-contract-id-big-map-get + * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-script */ getBigMapKey<T>(contract: string, key: string, schema?: ContractSchema): Promise<T>; @@ -92,25 +90,10 @@ export interface StorageProvider { * @param id Big Map ID * @param keyToEncode key to query (will be encoded properly according to the schema) * @param schema Big Map schema (can be determined using your contract type) - * @param block optional block level to fetch the value from * * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-big-maps-big-map-id-script-expr */ - getBigMapKeyByID<T>(id: string, keyToEncode: BigMapKeyType, schema: Schema, block?: number): Promise<T>; - - /** - * - * @description Fetch multiple values in a big map - * - * @param id Big Map ID - * @param keysToEncode Array of keys to query (will be encoded properly according to the schema) - * @param schema Big Map schema (can be determined using your contract type) - * @param block optional block level to fetch the values from - * @param batchSize optional batch size representing the number of requests to execute in parallel - * @returns An object containing the keys queried in the big map and their value in a well-formatted JSON object format - * - */ - getBigMapKeysByID<T>(id: string, keysToEncode: Array<BigMapKeyType>, schema: Schema, block?: number, batchSize?: number): Promise<MichelsonMap<MichelsonMapKey, T | undefined>>; + getBigMapKeyByID<T>(id: string, keyToEncode: string, schema: Schema): Promise<T>; } export interface ContractProvider extends StorageProvider { @@ -142,7 +125,7 @@ export interface ContractProvider extends StorageProvider { * * @param RegisterDelegate operation parameter */ - registerDelegate(params: RegisterDelegateParams): Promise<DelegateOperation>; + registerDelegate(params: DelegateParams): Promise<DelegateOperation>; /** * * @description Transfer tz from current address to a specific address. Will sign and inject an operation using the current context @@ -151,15 +134,6 @@ export interface ContractProvider extends StorageProvider { * * @param Transfer operation parameter */ - transfer(params: TransferParams): Promise<TransactionOperation>; - at<T extends ContractAbstraction<ContractProvider>>(address: string, contractAbstractionComposer?: (abs: ContractAbstraction<ContractProvider>, context: Context) => T): Promise<T>; - - /** - * - * @description Batch a group of operation together. Operations will be applied in the order in which they are added to the batch - * - * @param params List of operation to batch together - */ - batch(params?: ParamsWithKind[]): OperationBatch ; + at(address: string, schema?: ContractSchema): Promise<ContractAbstraction<ContractProvider>>; } diff --git a/packages/taquito/src/contract/lambda-view.ts b/packages/taquito/src/contract/lambda-view.ts index 0da1ff08ff..79bb495f10 100644 --- a/packages/taquito/src/contract/lambda-view.ts +++ b/packages/taquito/src/contract/lambda-view.ts @@ -25,8 +25,6 @@ export default class LambdaView { const failedWith = lastError.with; return failedWith; - } else { - throw ex; } } } diff --git a/packages/taquito/src/contract/prepare.ts b/packages/taquito/src/contract/prepare.ts index c13e4dbfc6..e88f3af87a 100644 --- a/packages/taquito/src/contract/prepare.ts +++ b/packages/taquito/src/contract/prepare.ts @@ -1,6 +1,6 @@ import { Schema } from '@taquito/michelson-encoder'; import { OpKind, MichelsonV1Expression } from '@taquito/rpc'; -import { Prim, Expr } from '@taquito/michel-codec'; +import { Parser, Prim, Expr } from '@taquito/michel-codec'; import { OriginateParams, RPCOriginationOperation, @@ -12,7 +12,6 @@ import { } from '../operations/types'; import { DEFAULT_FEE, DEFAULT_GAS_LIMIT, DEFAULT_STORAGE_LIMIT } from '../constants'; import { format } from '../format'; -import { InvalidCodeParameter, InvalidInitParameter } from './errors'; export const createOriginationOperation = async ({ code, @@ -23,7 +22,6 @@ export const createOriginationOperation = async ({ fee = DEFAULT_FEE.ORIGINATION, gasLimit = DEFAULT_GAS_LIMIT.ORIGINATION, storageLimit = DEFAULT_STORAGE_LIMIT.ORIGINATION, - mutez = false }: OriginateParams) => { // tslint:disable-next-line: strict-type-predicates if (storage !== undefined && init !== undefined) { @@ -32,26 +30,45 @@ export const createOriginationOperation = async ({ ); } - if(!Array.isArray(code)){ - throw new InvalidCodeParameter('Wrong code parameter type, expected an array', code); + const parser = new Parser({ expandMacros: true }); + + let contractCode: Expr[]; + if (typeof code === 'string') { + const c = parser.parseScript(code); + if (c === null) { + throw new Error('Empty Michelson source'); + } + contractCode = c; + } else { + const c = parser.parseJSON(code); + if (!Array.isArray(c)) { + throw new Error('JSON encoded Michelson script must be an array'); + } + const order = ['parameter', 'storage', 'code']; + // Ensure correct ordering for RPC + contractCode = (c as Prim[]).sort((a, b) => order.indexOf(a.prim) - order.indexOf(b.prim)); } let contractStorage: Expr | undefined; if (storage !== undefined) { - const storageType = (code as Expr[]).find((p): p is Prim => ('prim' in p) && p.prim === 'storage'); + const storageType = contractCode.find((p): p is Prim => ('prim' in p) && p.prim === 'storage'); if (storageType?.args === undefined) { - throw new InvalidCodeParameter('The storage section is missing from the script', code); + throw new Error('Missing storage section'); } const schema = new Schema(storageType.args[0] as MichelsonV1Expression); // TODO contractStorage = schema.Encode(storage); - } else if (init !== undefined && typeof init === 'object') { - contractStorage = init as Expr; - } else { - throw new InvalidInitParameter('Wrong init parameter type, expected JSON Michelson', init); + } else if (typeof init === 'string') { + const c = parser.parseMichelineExpression(init); + if (c === null) { + throw new Error('Empty initial storage value'); + } + contractStorage = c; + } else if (typeof init === 'object') { + contractStorage = parser.parseJSON(init); } const script = { - code, + code: contractCode, storage: contractStorage, }; @@ -60,9 +77,7 @@ export const createOriginationOperation = async ({ fee, gas_limit: gasLimit, storage_limit: storageLimit, - balance: mutez - ? balance.toString() - : format('tz', 'mutez', balance).toString(), + balance: format("tz", "mutez", balance).toString(), script, }; diff --git a/packages/taquito/src/contract/rpc-contract-provider.ts b/packages/taquito/src/contract/rpc-contract-provider.ts index 735367d533..9ceb42dd0c 100644 --- a/packages/taquito/src/contract/rpc-contract-provider.ts +++ b/packages/taquito/src/contract/rpc-contract-provider.ts @@ -1,8 +1,6 @@ -import { HttpResponseError, STATUS_CODE } from '@taquito/http-utils'; -import { BigMapKeyType, MichelsonMap, MichelsonMapKey, Schema } from '@taquito/michelson-encoder'; +import { Schema } from '@taquito/michelson-encoder'; import { ScriptResponse } from '@taquito/rpc'; import { encodeExpr } from '@taquito/utils'; -import { OperationBatch } from '../batch/rpc-batch-provider'; import { Context } from '../context'; import { DelegateOperation } from '../operations/delegate-operation'; import { OperationEmitter } from '../operations/operation-emitter'; @@ -11,7 +9,6 @@ import { TransactionOperation } from '../operations/transaction-operation'; import { DelegateParams, OriginateParams, - ParamsWithKind, RegisterDelegateParams, TransferParams, } from '../operations/types'; @@ -69,7 +66,7 @@ export class RpcContractProvider extends OperationEmitter * * @deprecated Deprecated in favor of getBigMapKeyByID * - * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-context-contracts-contract-id-big-map-get + * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-script */ async getBigMapKey<T>(contract: string, key: string, schema?: ContractSchema): Promise<T> { if (!schema) { @@ -98,74 +95,20 @@ export class RpcContractProvider extends OperationEmitter * @param id Big Map ID * @param keyToEncode key to query (will be encoded properly according to the schema) * @param schema Big Map schema (can be determined using your contract type) - * @param block optional block level to fetch the values from * * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-big-maps-big-map-id-script-expr */ - async getBigMapKeyByID<T>(id: string, keyToEncode: BigMapKeyType, schema: Schema, block?: number): Promise<T> { + async getBigMapKeyByID<T>(id: string, keyToEncode: string, schema: Schema): Promise<T> { const { key, type } = schema.EncodeBigMapKey(keyToEncode); - const { packed } = await this.context.packer.packData({ data: key, type }); + const { packed } = await this.context.rpc.packData({ data: key, type }); const encodedExpr = encodeExpr(packed); - const bigMapValue = block? await this.context.rpc.getBigMapExpr(id.toString(), encodedExpr, { block: String(block) }) : await this.context.rpc.getBigMapExpr(id.toString(), encodedExpr); + const bigMapValue = await this.context.rpc.getBigMapExpr(id.toString(), encodedExpr); return schema.ExecuteOnBigMapValue(bigMapValue, smartContractAbstractionSemantic(this)) as T; } - /** - * - * @description Fetch multiple values in a big map - * All values will be fetched on the same block level. If a block is specified in the request, the values will be fetched at it. - * Otherwise, a first request will be done to the node to fetch the level of the head and all values will be fetched at this level. - * If one of the keys does not exist in the big map, its value will be set to undefined. - * - * @param id Big Map ID - * @param keys Array of keys to query (will be encoded properly according to the schema) - * @param schema Big Map schema (can be determined using your contract type) - * @param block optional block level to fetch the values from - * @param batchSize optional batch size representing the number of requests to execute in parallel - * @returns A MichelsonMap containing the keys queried in the big map and their value in a well-formatted JSON object format - * - */ - async getBigMapKeysByID<T>(id: string, keys: Array<BigMapKeyType>, schema: Schema, block?: number, batchSize: number = 5): Promise<MichelsonMap<MichelsonMapKey, T | undefined>> { - const level = await this.getBlockForRequest(keys, block) - const bigMapValues = new MichelsonMap<MichelsonMapKey, T | undefined>(); - - // Execute batch of promises in series - let position = 0; - let results: Array<(T | undefined)> = []; - - while (position < keys.length) { - const keysBatch = keys.slice(position, position + batchSize); - const batch = keysBatch.map((keyToEncode) => this.getBigMapValueOrUndefined<T>(keyToEncode, id, schema, level)) - results = [...results, ...await Promise.all(batch)] - position += batchSize; - } - - for (let i = 0; i < results.length; i++) { - bigMapValues.set(keys[i], results[i]); - } - - return bigMapValues; - } - - private async getBlockForRequest(keys: Array<BigMapKeyType>, block?: number) { - return keys.length === 1 || typeof block !== 'undefined' ? block : (await this.rpc.getBlock())?.header.level - } - - private async getBigMapValueOrUndefined<T>(keyToEncode: BigMapKeyType, id: string, schema: Schema, level?: number) { - try { - return await this.getBigMapKeyByID<T>(id, keyToEncode, schema, level); - } catch (ex) { - if (ex instanceof HttpResponseError && ex.status === STATUS_CODE.NOT_FOUND) { - return - } else { - throw ex; - } - } - } - /** * * @description Originate a new contract according to the script in parameters. Will sign and inject an operation using the current context @@ -180,11 +123,10 @@ export class RpcContractProvider extends OperationEmitter const estimate = await this.estimate(params, this.estimator.originate.bind(this.estimator)); const publicKeyHash = await this.signer.publicKeyHash(); - const operation = await createOriginationOperation( - await this.context.parser.prepareCodeOrigination({ - ...params, - ...estimate, - })); + const operation = await createOriginationOperation({ + ...params, + ...estimate, + }); const preparedOrigination = await this.prepareOperation({ operation, source: publicKeyHash }); const forgedOrigination = await this.forge(preparedOrigination); const { hash, context, forgedBytes, opResponse } = await this.signAndInject(forgedOrigination); @@ -263,33 +205,11 @@ export class RpcContractProvider extends OperationEmitter return new TransactionOperation(hash, operation, source, forgedBytes, opResponse, context); } - async at<T extends ContractAbstraction<ContractProvider>>(address: string, contractAbstractionComposer: ContractAbstractionComposer<T> = x => x as any): Promise<T> { + async at(address: string): Promise<ContractAbstraction<ContractProvider>> { const script = await this.rpc.getScript(address); const entrypoints = await this.rpc.getEntrypoints(address); const blockHeader = await this.rpc.getBlockHeader(); const chainId = blockHeader.chain_id; - const abs = new ContractAbstraction(address, script, this, this, entrypoints, chainId); - return contractAbstractionComposer(abs, this.context); + return new ContractAbstraction(address, script, this, this, entrypoints, chainId); } - - /** - * - * @description Batch a group of operation together. Operations will be applied in the order in which they are added to the batch - * - * @returns A batch object from which we can add more operation or send a command to execute the batch - * - * @param params List of operation to batch together - */ - batch(params?: ParamsWithKind[]) { - const batch = new OperationBatch(this.context, this.estimator); - - if (Array.isArray(params)) { - batch.with(params); - } - - return batch; - } - } - -type ContractAbstractionComposer<T> = (abs: ContractAbstraction<ContractProvider>, context: Context) => T diff --git a/packages/taquito/src/contract/rpc-estimate-provider.ts b/packages/taquito/src/contract/rpc-estimate-provider.ts index 95152ff6d4..5fe18c47c5 100644 --- a/packages/taquito/src/contract/rpc-estimate-provider.ts +++ b/packages/taquito/src/contract/rpc-estimate-provider.ts @@ -24,7 +24,6 @@ import { createSetDelegateOperation, createTransferOperation, } from './prepare'; -import { Protocols } from '../constants' interface Limits { fee?: number; @@ -153,11 +152,10 @@ export class RPCEstimateProvider extends OperationEmitter implements EstimationP async originate({ fee, storageLimit, gasLimit, ...rest }: OriginateParams) { const pkh = await this.signer.publicKeyHash(); const DEFAULT_PARAMS = await this.getAccountLimits(pkh); - const op = await createOriginationOperation( - await this.context.parser.prepareCodeOrigination({ + const op = await createOriginationOperation({ ...rest, ...mergeLimits({ fee, storageLimit, gasLimit }, DEFAULT_PARAMS), - })); + }); return (await this.createEstimate({ operation: op, source: pkh }))[0]; } /** @@ -211,11 +209,10 @@ export class RPCEstimateProvider extends OperationEmitter implements EstimationP break; case OpKind.ORIGINATION: operations.push( - await createOriginationOperation( - await this.context.parser.prepareCodeOrigination({ + await createOriginationOperation({ ...param, ...mergeLimits(param, DEFAULT_PARAMS), - })) + }) ); break; case OpKind.DELEGATION: diff --git a/packages/taquito/src/contract/view_lambda.ts b/packages/taquito/src/contract/view_lambda.ts index eab84c8c15..814751b211 100644 --- a/packages/taquito/src/contract/view_lambda.ts +++ b/packages/taquito/src/contract/view_lambda.ts @@ -1,3 +1,5 @@ +/* istanbul ignore file */ + const code = [ { prim: 'parameter', diff --git a/packages/taquito/src/extension/extension.ts b/packages/taquito/src/extension/extension.ts deleted file mode 100644 index 50d692cf34..0000000000 --- a/packages/taquito/src/extension/extension.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Context } from "../context" - -export interface Extension { - - configureContext(context: Context): void; - -} \ No newline at end of file diff --git a/packages/taquito/src/operations/operations.ts b/packages/taquito/src/operations/operations.ts index 0c287dacfe..cfe417d150 100644 --- a/packages/taquito/src/operations/operations.ts +++ b/packages/taquito/src/operations/operations.ts @@ -146,17 +146,14 @@ export class Operation { * @param interval [10] Polling interval * @param timeout [180] Timeout */ - async confirmation(confirmations?: number, interval?: number, timeout?: number) { + confirmation(confirmations?: number, interval?: number, timeout?: number) { if (typeof confirmations !== 'undefined' && confirmations < 1) { throw new Error('Confirmation count must be at least 1'); } - const confirmationPollingIntervalSecond = this.context.config.confirmationPollingIntervalSecond !== undefined - ? this.context.config.confirmationPollingIntervalSecond - : await this.context.getConfirmationPollingInterval(); - const { defaultConfirmationCount, + confirmationPollingIntervalSecond, confirmationPollingTimeoutSecond, } = this.context.config; this._pollingConfig$.next({ @@ -166,10 +163,6 @@ export class Operation { const conf = confirmations !== undefined ? confirmations : defaultConfirmationCount; - if (conf === undefined) { - throw new Error('Default confirmation count can not be undefined!'); - } - return new Promise<number>((resolve, reject) => { this.confirmed$ .pipe( diff --git a/packages/taquito/src/operations/types.ts b/packages/taquito/src/operations/types.ts index ade092191c..8a7f23fed1 100644 --- a/packages/taquito/src/operations/types.ts +++ b/packages/taquito/src/operations/types.ts @@ -118,7 +118,6 @@ export type OriginateParamsBase = { fee?: number; gasLimit?: number; storageLimit?: number; - mutez?: boolean; }; /** diff --git a/packages/taquito/src/packer/interface.ts b/packages/taquito/src/packer/interface.ts deleted file mode 100644 index edb82b6029..0000000000 --- a/packages/taquito/src/packer/interface.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { PackDataParams, PackDataResponse } from '@taquito/rpc'; - -export interface Packer { - packData(data: PackDataParams): Promise<PackDataResponse> -} \ No newline at end of file diff --git a/packages/taquito/src/packer/michel-codec-packer.ts b/packages/taquito/src/packer/michel-codec-packer.ts deleted file mode 100644 index da03394968..0000000000 --- a/packages/taquito/src/packer/michel-codec-packer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Packer } from './interface'; -import { packDataBytes, MichelsonData, MichelsonType } from '@taquito/michel-codec' -import { PackDataResponse, PackDataParams } from '@taquito/rpc'; - -export class MichelCodecPacker implements Packer { - - async packData(data: PackDataParams): Promise<PackDataResponse> { - const { bytes } = packDataBytes(data.data as MichelsonData, data.type as MichelsonType); - return { packed: bytes } - } -} diff --git a/packages/taquito/src/packer/rpc-packer.ts b/packages/taquito/src/packer/rpc-packer.ts deleted file mode 100644 index 46009f0e96..0000000000 --- a/packages/taquito/src/packer/rpc-packer.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Packer } from './interface'; -import { Context } from '../context'; -import { PackDataParams, PackDataResponse } from '@taquito/rpc'; - -export class RpcPacker implements Packer { - constructor(private context: Context) {} - - async packData(data: PackDataParams): Promise<PackDataResponse> { - return this.context.rpc.packData(data); - } -} diff --git a/packages/taquito/src/parser/interface.ts b/packages/taquito/src/parser/interface.ts deleted file mode 100644 index 8c3c621a5d..0000000000 --- a/packages/taquito/src/parser/interface.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { OriginateParams } from '../operations/types'; - -export interface ParserProvider { - prepareCodeOrigination(params: OriginateParams): Promise<OriginateParams>; -} \ No newline at end of file diff --git a/packages/taquito/src/parser/michel-codec-parser.ts b/packages/taquito/src/parser/michel-codec-parser.ts deleted file mode 100644 index a346b67a46..0000000000 --- a/packages/taquito/src/parser/michel-codec-parser.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { Context } from '../context'; -import { ParserProvider } from './interface'; -import { Expr, Parser, Prim } from '@taquito/michel-codec'; -import { Protocols } from '../constants'; -import { OriginateParams } from '../operations/types'; -import { InvalidInitParameter, InvalidCodeParameter } from '../contract/errors'; - -export class MichelCodecParser implements ParserProvider { - constructor(private context: Context) { } - - private async getNextProto() { - const { next_protocol } = await this.context.rpc.getBlockMetadata(); - return next_protocol as Protocols; - } - - async parseScript(src: string): Promise<Expr[] | null> { - const parser = new Parser({ protocol: await this.getNextProto() }); - return parser.parseScript(src); - } - - async parseMichelineExpression(src: string): Promise<Expr | null> { - const parser = new Parser({ protocol: await this.getNextProto() }); - return parser.parseMichelineExpression(src); - } - - async parseJSON(src: object): Promise<Expr> { - const parser = new Parser({ protocol: await this.getNextProto() }); - return parser.parseJSON(src); - } - - async prepareCodeOrigination(params: OriginateParams): Promise<OriginateParams> { - const parsedParams = params; - parsedParams.code = await this.formatCodeParam(params.code); - if (params.init) { - parsedParams.init = await this.formatInitParam(params.init); - } - return parsedParams; - } - - private async formatCodeParam(code: string | object[]) { - let parsedCode: Expr[]; - if (typeof code === 'string') { - const c = await this.parseScript(code); - if (c === null) { - throw new InvalidCodeParameter('Invalid code parameter', code); - } - parsedCode = c; - } else { - const c = await this.parseJSON(code); - const order = ['parameter', 'storage', 'code']; - // Ensure correct ordering for RPC - parsedCode = (c as Prim[]).sort((a, b) => order.indexOf(a.prim) - order.indexOf(b.prim)); - } - return parsedCode; - } - - private async formatInitParam(init: string | object) { - let parsedInit: Expr; - if (typeof init === 'string') { - const c = await this.parseMichelineExpression(init); - if (c === null) { - throw new InvalidInitParameter('Invalid init parameter', init); - } - parsedInit = c; - } else { - parsedInit = await this.parseJSON(init); - } - return parsedInit; - } -} diff --git a/packages/taquito/src/parser/noop-parser.ts b/packages/taquito/src/parser/noop-parser.ts deleted file mode 100644 index 204baed3a1..0000000000 --- a/packages/taquito/src/parser/noop-parser.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { OriginateParams } from "../operations/types"; -import { ParserProvider } from "./interface"; - -export class NoopParser implements ParserProvider { - async prepareCodeOrigination(params: OriginateParams): Promise<OriginateParams> { - return params; - } -} \ No newline at end of file diff --git a/packages/taquito/src/subscribe/observable-subscription.ts b/packages/taquito/src/subscribe/observable-subscription.ts index 2f79b56c84..7ac3a1a9eb 100644 --- a/packages/taquito/src/subscribe/observable-subscription.ts +++ b/packages/taquito/src/subscribe/observable-subscription.ts @@ -1,6 +1,6 @@ -import { Observable, Subscription as RXJSSubscription, Subject, NEVER, OperatorFunction } from 'rxjs'; +import { Observable, Subscription as RXJSSubscription, Subject, of, NEVER } from 'rxjs'; import { Subscription } from './interface'; -import { takeUntil, tap, catchError, retry } from 'rxjs/operators'; +import { takeUntil, tap, retry, catchError } from 'rxjs/operators'; export class ObservableSubscription<T> implements Subscription<T> { private errorListeners: Array<(error: Error) => void> = []; @@ -8,10 +8,7 @@ export class ObservableSubscription<T> implements Subscription<T> { private closeListeners: Array<() => void> = []; private completed$ = new Subject(); - constructor(obs: Observable<T>, - private shouldRetry: boolean = false, - private operatorFunction: OperatorFunction<T,T> = retry<T>()) { - + constructor(obs: Observable<T>, private shouldRetry: boolean = false) { obs .pipe( takeUntil(this.completed$), @@ -26,7 +23,7 @@ export class ObservableSubscription<T> implements Subscription<T> { this.call(this.closeListeners); } ), - this.shouldRetry ? operatorFunction : tap(), + this.shouldRetry ? retry() : tap(), catchError(() => NEVER) ) .subscribe(); diff --git a/packages/taquito/src/subscribe/polling-provider.ts b/packages/taquito/src/subscribe/polling-provider.ts index cd77fb5fd2..aaf790eb07 100644 --- a/packages/taquito/src/subscribe/polling-provider.ts +++ b/packages/taquito/src/subscribe/polling-provider.ts @@ -1,4 +1,4 @@ -import { BlockResponse } from '@taquito/rpc'; +import { BlockResponse, OperationEntry } from '@taquito/rpc'; import { from, Observable, ObservableInput, timer } from 'rxjs'; import { concatMap, @@ -47,14 +47,10 @@ export class PollingSubscribeProvider implements SubscribeProvider { constructor(private context: Context, public readonly POLL_INTERVAL = 20000) {} subscribe(_filter: 'head'): Subscription<string> { - return new ObservableSubscription(this.newBlock$.pipe(pluck('hash')), - this.context.config.shouldObservableSubscriptionRetry, - this.context.config.observableSubscriptionRetryFunction); + return new ObservableSubscription(this.newBlock$.pipe(pluck('hash')), this.context.config.shouldObservableSubscriptionRetry); } subscribeOperation(filter: Filter): Subscription<OperationContent> { - return new ObservableSubscription(this.newBlock$.pipe(applyFilter(filter)), - this.context.config.shouldObservableSubscriptionRetry, - this.context.config.observableSubscriptionRetryFunction); + return new ObservableSubscription(this.newBlock$.pipe(applyFilter(filter)), this.context.config.shouldObservableSubscriptionRetry); } } diff --git a/packages/taquito/src/taquito.ts b/packages/taquito/src/taquito.ts index 6c9014e152..62e4e9acb5 100644 --- a/packages/taquito/src/taquito.ts +++ b/packages/taquito/src/taquito.ts @@ -1,27 +1,17 @@ -/** - * @packageDocumentation - * @module @taquito/taquito - */ - import { RpcClient } from '@taquito/rpc'; -import { RPCBatchProvider } from './batch/rpc-batch-provider'; import { Protocols } from './constants'; import { Config, Context, TaquitoProvider } from './context'; import { ContractProvider, EstimationProvider } from './contract/interface'; -import { Extension } from './extension/extension'; import { Forger } from './forger/interface'; import { RpcForger } from './forger/rpc-forger'; import { format } from './format'; -import { Packer } from './packer/interface'; -import { RpcPacker } from './packer/rpc-packer'; import { Signer } from './signer/interface'; import { NoopSigner } from './signer/noop'; import { SubscribeProvider } from './subscribe/interface'; import { PollingSubscribeProvider } from './subscribe/polling-provider'; import { TzProvider } from './tz/interface'; -import { VERSION } from './version'; import { LegacyWalletProvider, Wallet, WalletProvider } from './wallet'; -import { OperationFactory } from './wallet/operation-factory'; +import { OperationFactory } from './wallet/opreation-factory'; export { MichelsonMap, UnitValue } from '@taquito/michelson-encoder'; export * from './constants'; @@ -44,13 +34,6 @@ export { SubscribeProvider } from './subscribe/interface'; export { PollingSubscribeProvider } from './subscribe/polling-provider'; export * from './tz/interface'; export * from './wallet'; -export { Extension } from './extension/extension'; -export * from './parser/interface'; -export * from './parser/michel-codec-parser'; -export * from './parser/noop-parser'; -export * from './packer/interface'; -export * from './packer/michel-codec-packer'; -export * from './packer/rpc-packer'; export interface SetProviderOptions { forger?: Forger; @@ -60,12 +43,6 @@ export interface SetProviderOptions { signer?: Signer; protocol?: Protocols; config?: Config; - packer?: Packer; -} - -export interface VersionInfo { - commitHash: string; - version: string; } /** @@ -78,29 +55,21 @@ export class TezosToolkit { private _options: SetProviderOptions = {}; private _rpcClient: RpcClient private _wallet: Wallet; - private _context: Context; - /** - * @deprecated TezosToolkit.batch has been deprecated in favor of TezosToolkit.contract.batch - * - */ - public batch: RPCBatchProvider['batch']; public readonly format = format; constructor( - private _rpc: RpcClient | string + private _rpc: RpcClient | string, + private _context: Context = new Context(_rpc) ) { if (typeof this._rpc === 'string') { this._rpcClient = new RpcClient(this._rpc); } else { this._rpcClient = this._rpc; } - this._context = new Context(_rpc); this._wallet = new Wallet(this._context); this.setProvider({ rpc: this._rpcClient }); - // tslint:disable-next-line: deprecation - this.batch = this._context.batch.batch.bind(this._context.batch); - } + } /** * @description Sets configuration on the Tezos Taquito instance. Allows user to choose which signer, rpc client, rpc url, forger and so forth @@ -112,16 +81,15 @@ export class TezosToolkit { * */ - setProvider({ rpc, stream, signer, protocol, config, forger, wallet, packer }: SetProviderOptions) { + setProvider({ rpc, stream, signer, protocol, config, forger, wallet }: SetProviderOptions) { this.setRpcProvider(rpc); this.setStreamProvider(stream); this.setSignerProvider(signer); this.setForgerProvider(forger); this.setWalletProvider(wallet); - this.setPackerProvider(packer); this._context.proto = protocol; - this._context.config = config as Partial<Config>; + this._context.config = config as Required<Config>; } /** @@ -215,20 +183,6 @@ export class TezosToolkit { } } - /** - * @description Sets Packer provider on the Tezos Taquito instance - * - * @param options packer to use to interact with the Tezos network - * - * @example Tezos.setPackerProvider(new MichelCodecPacker()) - * - */ - setPackerProvider(packer?: SetProviderOptions['packer']){ - const p = typeof packer === 'undefined' ? this.getFactory(RpcPacker)() : packer; - this._options.packer = p; - this._context.packer = p; - } - /** * @description Provide access to tezos account management */ @@ -251,6 +205,8 @@ export class TezosToolkit { return this._context.operationFactory; } + public batch = this._context.batch.batch.bind(this._context.batch); + /** * @description Provide access to operation estimation utilities */ @@ -279,27 +235,9 @@ export class TezosToolkit { return this._context.signer; } - /** - * @description Allow to add a module to the TezosToolkit instance. This method adds the appropriate Providers(s) required by the module to the internal context. - * - * @param module extension to add to the TezosToolkit instance - * - * @example Tezos.addExtension(new Tzip16Module()); - */ - addExtension(module: Extension) { - module.configureContext(this._context); - } - getFactory<T, K extends Array<any>>(ctor: TaquitoProvider<T, K>) { return (...args: K) => { return new ctor(this._context, ...args); }; } - - /** - * @description Gets an object containing the version of Taquito library and git sha of the commit this library is compiled from - */ - getVersionInfo(): VersionInfo { - return VERSION; - } } diff --git a/packages/taquito/src/version.ts b/packages/taquito/src/version.ts deleted file mode 100644 index de239ed098..0000000000 --- a/packages/taquito/src/version.ts +++ /dev/null @@ -1,8 +0,0 @@ - -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = { - "commitHash": "a34c1b8fea3594fb5a02699bf98933df10e2225c", - "version": "9.0.0-beta-RC.0" -}; -/* tslint:enable */ diff --git a/packages/taquito/src/wallet/operation.ts b/packages/taquito/src/wallet/operation.ts index 25df3bdce7..7441524f7a 100644 --- a/packages/taquito/src/wallet/operation.ts +++ b/packages/taquito/src/wallet/operation.ts @@ -144,10 +144,6 @@ export class WalletOperation { const conf = confirmations !== undefined ? confirmations : defaultConfirmationCount; - if (conf === undefined) { - throw new Error('Default confirmation count can not be undefined!'); - } - return combineLatest([this._includedInBlock, this.newHead$]).pipe( distinctUntilChanged(([, previousHead], [, newHead]) => { return previousHead.hash === newHead.hash; diff --git a/packages/taquito/src/wallet/operation-factory.ts b/packages/taquito/src/wallet/opreation-factory.ts similarity index 70% rename from packages/taquito/src/wallet/operation-factory.ts rename to packages/taquito/src/wallet/opreation-factory.ts index b7e2715d9a..74acd848e7 100644 --- a/packages/taquito/src/wallet/operation-factory.ts +++ b/packages/taquito/src/wallet/opreation-factory.ts @@ -50,12 +50,7 @@ export const createNewPollingBasedHeadObservable = ( sharedHeadOb: Observable<BlockResponse>, context: Context, scheduler?: SchedulerLike -): Observable<BlockResponse> => { - - if (context.config.confirmationPollingTimeoutSecond === undefined) { - throw new Error('Confirmation polling timeout second can not be undefined!'); - } - +): Observable<BlockResponse> => { return pollingTimer.pipe( switchMap(() => sharedHeadOb), distinctUntilKeyChanged('hash'), @@ -83,12 +78,9 @@ export class OperationFactory { cacheUntil(timer(0, 1000)) ); - private async createNewHeadObservable() { - const confirmationPollingIntervalSecond = this.context.config.confirmationPollingIntervalSecond !== undefined - ? this.context.config.confirmationPollingIntervalSecond - : await this.context.getConfirmationPollingInterval(); + private createNewHeadObservable() { return createNewPollingBasedHeadObservable( - timer(0, confirmationPollingIntervalSecond * 1000), + timer(0, this.context.config.confirmationPollingIntervalSecond * 1000), this.sharedHeadObs, this.context ); @@ -111,56 +103,56 @@ export class OperationFactory { ); } - private async createHeadObservableFromConfig({ blockIdentifier }: OperationFactoryConfig) { + private createHeadObservableFromConfig({ blockIdentifier }: OperationFactoryConfig) { const observableSequence: Observable<BlockResponse>[] = []; if (blockIdentifier) { observableSequence.push(this.createPastBlockWalker(blockIdentifier)); } - observableSequence.push(await this.createNewHeadObservable()); + observableSequence.push(this.createNewHeadObservable()); return concat(...observableSequence); } - async createOperation(hash: string, config: OperationFactoryConfig = {}): Promise<WalletOperation> { + createOperation(hash: string, config: OperationFactoryConfig = {}): WalletOperation { return new WalletOperation( hash, this.context.clone(), - await this.createHeadObservableFromConfig(config) + this.createHeadObservableFromConfig(config) ); } - async createTransactionOperation( + createTransactionOperation( hash: string, config: OperationFactoryConfig = {} - ): Promise<TransactionWalletOperation> { + ): TransactionWalletOperation { return new TransactionWalletOperation( hash, this.context.clone(), - await this.createHeadObservableFromConfig(config) + this.createHeadObservableFromConfig(config) ); } - async createDelegationOperation( + createDelegationOperation( hash: string, config: OperationFactoryConfig = {} - ): Promise<DelegationWalletOperation> { + ): DelegationWalletOperation { return new DelegationWalletOperation( hash, this.context.clone(), - await this.createHeadObservableFromConfig(config) + this.createHeadObservableFromConfig(config) ); } - async createOriginationOperation( + createOriginationOperation( hash: string, config: OperationFactoryConfig = {} - ): Promise<OriginationWalletOperation> { + ): OriginationWalletOperation { return new OriginationWalletOperation( hash, this.context.clone(), - await this.createHeadObservableFromConfig(config) + this.createHeadObservableFromConfig(config) ); } } diff --git a/packages/taquito/src/wallet/wallet.ts b/packages/taquito/src/wallet/wallet.ts index bd10b1889b..556361af00 100644 --- a/packages/taquito/src/wallet/wallet.ts +++ b/packages/taquito/src/wallet/wallet.ts @@ -1,6 +1,5 @@ -import { Protocols } from '../constants'; import { Context } from '../context'; -import { ContractAbstraction, ContractMethod } from '../contract'; +import { ContractAbstraction, ContractMethod, WalletContract } from '../contract'; import { OpKind, withKind } from '../operations/types'; import { WalletDelegateParams, @@ -8,6 +7,7 @@ import { WalletProvider, WalletTransferParams, } from './interface'; +import { OperationFactory } from './opreation-factory'; export interface PKHOption { forceRefetch?: boolean; @@ -21,7 +21,7 @@ export type WalletParamsWithKind = export class WalletOperationBatch { private operations: WalletParamsWithKind[] = []; - constructor(private walletProvider: WalletProvider, private context: Context) {} + constructor(private walletProvider: WalletProvider, private operationFactory: OperationFactory) {} /** * @@ -67,25 +67,23 @@ export class WalletOperationBatch { } private async mapOperation(param: WalletParamsWithKind) { - switch (param.kind) { - case OpKind.TRANSACTION: - return this.walletProvider.mapTransferParamsToWalletParams({ - ...param - }); - case OpKind.ORIGINATION: - return this.walletProvider.mapOriginateParamsToWalletParams( - await this.context.parser.prepareCodeOrigination({ - ...param - }) - ); - case OpKind.DELEGATION: - return this.walletProvider.mapDelegateParamsToWalletParams({ - ...param - }); - default: - throw new Error(`Unsupported operation kind: ${(param as any).kind}`); - } - } + switch (param.kind) { + case OpKind.TRANSACTION: + return this.walletProvider.mapTransferParamsToWalletParams({ + ...param, + }); + case OpKind.ORIGINATION: + return this.walletProvider.mapOriginateParamsToWalletParams({ + ...param, + }); + case OpKind.DELEGATION: + return this.walletProvider.mapDelegateParamsToWalletParams({ + ...param, + }); + default: + throw new Error(`Unsupported operation kind: ${(param as any).kind}`); + } + } /** * @@ -127,7 +125,7 @@ export class WalletOperationBatch { const opHash = await this.walletProvider.sendOperations(ops); - return this.context.operationFactory.createOperation(opHash); + return this.operationFactory.createOperation(opHash); } } @@ -169,19 +167,14 @@ export class Wallet { * @param originateParams Originate operation parameter */ originate(params: WalletOriginateParams) { - return this.walletCommand(async () => { - const mappedParams = await this.walletProvider.mapOriginateParamsToWalletParams( - await this.context.parser.prepareCodeOrigination({ - ...params - }) - ); - const opHash = await this.walletProvider.sendOperations([ mappedParams ]); - if (!this.context.proto) { - this.context.proto = (await this.context.rpc.getBlock()).protocol as Protocols; - } - return this.context.operationFactory.createOriginationOperation(opHash); - }); - } + return this.walletCommand(async () => { + const mappedParams = await this.walletProvider.mapOriginateParamsToWalletParams({ + ...params, + }); + const opHash = await this.walletProvider.sendOperations([mappedParams]); + return this.context.operationFactory.createOriginationOperation(opHash); + }); + } /** * @@ -240,13 +233,9 @@ export class Wallet { * * @param params List of operation to initialize the batch with */ - batch(params?: Parameters<WalletOperationBatch['with']>[0]) { - const batch = new WalletOperationBatch(this.walletProvider, this.context); - - if (Array.isArray(params)) { - batch.with(params); - } - + batch(params: Parameters<WalletOperationBatch['with']>[0]) { + const batch = new WalletOperationBatch(this.walletProvider, this.context.operationFactory); + batch.with(params); return batch; } @@ -257,12 +246,11 @@ export class Wallet { * * @param address Smart contract address */ - async at<T extends ContractAbstraction<Wallet>>(address: string, contractAbstractionComposer: (abs: ContractAbstraction<Wallet>, context: Context) => T = x => x as any): Promise<T> { + async at(address: string): Promise<WalletContract> { const script = await this.context.rpc.getScript(address); const entrypoints = await this.context.rpc.getEntrypoints(address); const blockHeader = await this.context.rpc.getBlockHeader(); const chainId = blockHeader.chain_id; - const abs = new ContractAbstraction(address, script, this, this.context.contract, entrypoints, chainId); - return contractAbstractionComposer(abs, this.context); + return new ContractAbstraction(address, script, this, this.context.contract, entrypoints, chainId); } -} \ No newline at end of file +} diff --git a/packages/taquito/test/context.spec.ts b/packages/taquito/test/context.spec.ts deleted file mode 100644 index 0ff59f8837..0000000000 --- a/packages/taquito/test/context.spec.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { Context } from '../src/context'; - -describe('Taquito context class', () => { - - let mockRpcClient: any; - - beforeEach(() => { - mockRpcClient = { - getConstants: jest.fn() - }; - }); - - it('getConfirmationPollingInterval should return polling interval for sandbox environment', async () => { - mockRpcClient.getConstants.mockResolvedValue({ - "proof_of_work_nonce_size": 8, - "nonce_length": 32, - "max_anon_ops_per_block": 132, - "max_operation_data_length": 16384, - "max_proposals_per_delegate": 20, - "preserved_cycles": 3, - "blocks_per_cycle": 2048, - "blocks_per_commitment": 16, - "blocks_per_roll_snapshot": 128, - "blocks_per_voting_period": 4096, - "time_between_blocks": [ - "2", - "3" - ], - "endorsers_per_block": 32, - "hard_gas_limit_per_operation": "1040000", - "hard_gas_limit_per_block": "10400000", - "proof_of_work_threshold": "70368744177663", - "tokens_per_roll": "8000000000", - "michelson_maximum_type_size": 1000, - "seed_nonce_revelation_tip": "125000", - "origination_size": 257, - "block_security_deposit": "512000000", - "endorsement_security_deposit": "64000000", - "baking_reward_per_endorsement": [ - "1250000", - "187500" - ], - "endorsement_reward": [ - "1250000", - "833333" - ], - "cost_per_byte": "250", - "hard_storage_limit_per_operation": "60000", - "test_chain_duration": "61440", - "quorum_min": 2000, - "quorum_max": 7000, - "min_proposal_quorum": 500, - "initial_endorsers": 1, - "delay_per_missing_endorsement": "1" - }); - const pollingInterval = await new Context(mockRpcClient).getConfirmationPollingInterval(); - expect(pollingInterval).toBe(2/3); - }); - - it('getConfirmationPollingInterval should return polling interval for production environment', async () => { - mockRpcClient.getConstants.mockResolvedValue({ - "proof_of_work_nonce_size": 8, - "nonce_length": 32, - "max_anon_ops_per_block": 132, - "max_operation_data_length": 16384, - "max_proposals_per_delegate": 20, - "preserved_cycles": 3, - "blocks_per_cycle": 2048, - "blocks_per_commitment": 16, - "blocks_per_roll_snapshot": 128, - "blocks_per_voting_period": 4096, - "time_between_blocks": [ - "30", - "20" - ], - "endorsers_per_block": 32, - "hard_gas_limit_per_operation": "1040000", - "hard_gas_limit_per_block": "10400000", - "proof_of_work_threshold": "70368744177663", - "tokens_per_roll": "8000000000", - "michelson_maximum_type_size": 1000, - "seed_nonce_revelation_tip": "125000", - "origination_size": 257, - "block_security_deposit": "512000000", - "endorsement_security_deposit": "64000000", - "baking_reward_per_endorsement": [ - "1250000", - "187500" - ], - "endorsement_reward": [ - "1250000", - "833333" - ], - "cost_per_byte": "250", - "hard_storage_limit_per_operation": "60000", - "test_chain_duration": "61440", - "quorum_min": 2000, - "quorum_max": 7000, - "min_proposal_quorum": 500, - "initial_endorsers": 24, - "delay_per_missing_endorsement": "4" - }); - const pollingInterval = await new Context(mockRpcClient).getConfirmationPollingInterval(); - expect(pollingInterval).toBe(10); - - }); - - - it('getConfirmationPollingInterval should return polling interval when rpc call to get constants file fails', async () => { - mockRpcClient.getConstants.mockImplementation(() => { - throw new Error(); - }); - const pollingInterval = await new Context(mockRpcClient).getConfirmationPollingInterval(); - expect(pollingInterval).toBe(10); - }); -}); diff --git a/packages/taquito/test/contract/big-map.spec.ts b/packages/taquito/test/contract/big-map.spec.ts deleted file mode 100644 index 1a53540721..0000000000 --- a/packages/taquito/test/contract/big-map.spec.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { HttpResponseError, STATUS_CODE } from '@taquito/http-utils'; -import BigNumber from 'bignumber.js'; -import { MichelsonMap, Schema } from '@taquito/michelson-encoder'; -import { BigMapAbstraction } from '../../src/contract/big-map'; - -/** - * BigMapAbstraction test - */ -describe('BigMapAbstraction test', () => { - let rpcContractProvider: { - getBigMapKeysByID: jest.Mock<any, any>; - getStorage: jest.Mock<any, any>; - getBigMapKey: jest.Mock<any, any>; - getBigMapKeyByID: jest.Mock<any, any>; - }; - - beforeEach(() => { - rpcContractProvider = { - getBigMapKeysByID: jest.fn(), - getStorage: jest.fn(), - getBigMapKey: jest.fn(), - getBigMapKeyByID: jest.fn() - }; - }); - - describe('BigMapAbstraction getMultipleValues method', () => { - it('throws error if error is not 404 from key lookup in BigMap', async (done) => { - const expectedError = new HttpResponseError( - 'fail', - STATUS_CODE.FORBIDDEN, - 'err', - 'test', - 'https://test.com' - ); - rpcContractProvider.getBigMapKeysByID.mockRejectedValue(expectedError); - const bigMap = new BigMapAbstraction( - new BigNumber('1'), - new Schema({ - prim: 'big_map', - args: [{ prim: 'address' }, { prim: 'nat' }] - }), - rpcContractProvider as any - ); - await expect( - bigMap.getMultipleValues([ - 'tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwNtest', - 'tz2gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwNtest' - ]) - ).rejects.toEqual(expectedError); - done(); - }); - - it('returns value for 1 key', async (done) => { - rpcContractProvider.getBigMapKeysByID.mockResolvedValue(MichelsonMap.fromLiteral({ - tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN: new BigNumber(3), - })); - const bigMap = new BigMapAbstraction( - new BigNumber('1'), - new Schema({ - prim: 'big_map', - args: [{ prim: 'address' }, { prim: 'nat' }] - }), - rpcContractProvider as any - ); - const result = await bigMap.getMultipleValues(['tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN']) - expect(result.get('tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN')).toEqual(new BigNumber(3)); - done(); - }); - - it('returns values for 2 keys', async (done) => { - rpcContractProvider.getBigMapKeysByID.mockResolvedValue(MichelsonMap.fromLiteral({ - tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn: undefined, - tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN: new BigNumber(3) - })); - const bigMap = new BigMapAbstraction( - new BigNumber('1'), - new Schema({ - prim: 'big_map', - args: [{ prim: 'address' }, { prim: 'nat' }] - }), - rpcContractProvider as any - ); - const result = await bigMap.getMultipleValues([ - 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn', - 'tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN' - ]); - expect(result.get('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn')).toBeUndefined(); - expect(result.get('tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN')).toEqual(new BigNumber(3)); - done(); - }); - }); - - describe('BigMapAbstraction get method', () => { - it('The get method accepts a parameter of type number', async (done) => { - rpcContractProvider.getBigMapKeyByID.mockResolvedValue('test'); - const schema = new Schema({ - prim: 'big_map', - args: [{ prim: 'int' }, { prim: 'string' }] - }) - const bigMap = new BigMapAbstraction( - new BigNumber('1'), - schema, - rpcContractProvider as any - ); - expect(await bigMap.get(23)).toEqual('test'); - expect(rpcContractProvider.getBigMapKeyByID).toHaveBeenCalledWith('1', 23, schema, undefined) - done(); - }); - - it('The get method accepts a parameter of type string', async (done) => { - rpcContractProvider.getBigMapKeyByID.mockResolvedValue('test'); - const schema = new Schema({ - prim: 'big_map', - args: [{ prim: 'int' }, { prim: 'string' }] - }) - const bigMap = new BigMapAbstraction( - new BigNumber('1'), - schema, - rpcContractProvider as any - ); - expect(await bigMap.get('23')).toEqual('test'); - expect(rpcContractProvider.getBigMapKeyByID).toHaveBeenCalledWith('1', '23', schema, undefined) - done(); - }); - - it('The get method accepts a parameter of type string and a level', async (done) => { - rpcContractProvider.getBigMapKeyByID.mockResolvedValue('test'); - const schema = new Schema({ - prim: 'big_map', - args: [{ prim: 'int' }, { prim: 'string' }] - }) - const bigMap = new BigMapAbstraction( - new BigNumber('1'), - schema, - rpcContractProvider as any - ); - expect(await bigMap.get('23', 123456)).toEqual('test'); - expect(rpcContractProvider.getBigMapKeyByID).toHaveBeenCalledWith('1', '23', schema, 123456) - done(); - }); - - it('includes type argument when calling the get method', async (done) => { - rpcContractProvider.getBigMapKeyByID.mockResolvedValue('test'); - const schema = new Schema({ - prim: 'big_map', - args: [{ prim: 'int' }, { prim: 'string' }] - }) - const bigMap = new BigMapAbstraction( - new BigNumber('1'), - schema, - rpcContractProvider as any - ); - expect(await bigMap.get<string>('23')).toEqual('test'); - expect(rpcContractProvider.getBigMapKeyByID).toHaveBeenCalledWith('1', '23', schema, undefined) - done(); - }); - - - it('The get method accepts an object as parameter', async (done) => { - rpcContractProvider.getBigMapKeyByID.mockResolvedValue('test'); - const schema = new Schema({ - prim: 'big_map', - args: [{ "prim": "pair", "args": [{ "prim": "string", annots: ["%test"] }, { "prim": "string", annots: ["%test2"] }] }, { prim: 'string' }] - }) - const bigMap = new BigMapAbstraction( - new BigNumber('1'), - schema, - rpcContractProvider as any - ); - expect(await bigMap.get({ 'test': 'test2', 'test2': 'test3' }, 123456)).toEqual('test'); - expect(rpcContractProvider.getBigMapKeyByID).toHaveBeenCalledWith('1', { 'test': 'test2', 'test2': 'test3' }, schema, 123456) - done(); - }); - }); -}); diff --git a/packages/taquito/test/contract/contract-abstraction-composer.spec.ts b/packages/taquito/test/contract/contract-abstraction-composer.spec.ts deleted file mode 100644 index 5fb852e9b7..0000000000 --- a/packages/taquito/test/contract/contract-abstraction-composer.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { TezosToolkit } from '../../src/taquito'; -import { ContractAbstraction } from '../../src/contract/contract'; -import { ContractProvider } from '../../src/contract/interface' -import { script } from './data-lambda-view-class'; - -class ContractAbstractionTest { - constructor(private abs: ContractAbstraction<ContractProvider>) {} - - helloWorld(): string { - return 'Hello World!'; - } -} - -function composeContractAbstractionTest<T extends ContractAbstraction<ContractProvider>>(abs: T) { - return Object.assign(abs, { - constractAbstractionTest (this: ContractAbstraction<ContractProvider>) { - return new ContractAbstractionTest(this); - } - }); -} - -describe('Contract abstraction composer test', () => { - let mockRpcClient: any; - let toolkit: TezosToolkit; - - beforeEach(() => { - - mockRpcClient = { - getScript: jest.fn(), - getEntrypoints: jest.fn(), - getBlockHeader: jest.fn() - }; - - mockRpcClient.getScript.mockResolvedValue(script); - mockRpcClient.getEntrypoints.mockResolvedValue({ - entrypoints: { - mint: { prim: 'pair', args: [ { prim: 'key' }, { prim: 'nat' } ] } - } - }); - mockRpcClient.getBlockHeader.mockResolvedValue({ hash: 'test' }); - - toolkit = new TezosToolkit('url'); - toolkit['_context'].rpc = mockRpcClient; - }); - - it('Should add a helloWorld method on the contract abstraction', async (done) => { - const result = await toolkit.contract.at('test', composeContractAbstractionTest); - expect(result.constractAbstractionTest().helloWorld()).toEqual('Hello World!'); - done(); - }); -}); diff --git a/packages/taquito/test/contract/rpc-contract-provider.spec.ts b/packages/taquito/test/contract/rpc-contract-provider.spec.ts index 62a31b82c2..b2f4902725 100644 --- a/packages/taquito/test/contract/rpc-contract-provider.spec.ts +++ b/packages/taquito/test/contract/rpc-contract-provider.spec.ts @@ -23,13 +23,10 @@ import { DEFAULT_FEE, DEFAULT_GAS_LIMIT, } from '../../src/constants'; -import { InvalidCodeParameter, InvalidDelegationSource, InvalidInitParameter } from '../../src/contract/errors'; +import { InvalidDelegationSource } from '../../src/contract/errors'; import { preapplyResultFrom } from './helper'; import { MichelsonMap, Schema } from '@taquito/michelson-encoder'; import { BigMapAbstraction } from '../../src/contract/big-map'; -import { OpKind, ParamsWithKind } from '../../src/operations/types'; -import { NoopParser } from '../../src/taquito'; -import { OperationBatch } from '../../src/batch/rpc-batch-provider'; /** * RPCContractProvider test @@ -37,7 +34,6 @@ import { OperationBatch } from '../../src/batch/rpc-batch-provider'; describe('RpcContractProvider test', () => { let rpcContractProvider: RpcContractProvider; let mockRpcClient: { - // deepcode ignore no-any: any is good enough getScript: jest.Mock<any, any>; getStorage: jest.Mock<any, any>; getBigMapExpr: jest.Mock<any, any>; @@ -56,19 +52,16 @@ describe('RpcContractProvider test', () => { }; let mockSigner: { - // deepcode ignore no-any: any is good enough publicKeyHash: jest.Mock<any, any>; publicKey: jest.Mock<any, any>; sign: jest.Mock<any, any>; }; let mockEstimate: { - // deepcode ignore no-any: any is good enough originate: jest.Mock<any, any>; transfer: jest.Mock<any, any>; setDelegate: jest.Mock<any, any>; registerDelegate: jest.Mock<any, any>; - batch: jest.Mock<any, any>; }; const revealOp = (source: string) => ({ @@ -111,7 +104,6 @@ describe('RpcContractProvider test', () => { transfer: jest.fn(), registerDelegate: jest.fn(), setDelegate: jest.fn(), - batch: jest.fn() }; // Required for operations confirmation polling @@ -123,7 +115,6 @@ describe('RpcContractProvider test', () => { }); rpcContractProvider = new RpcContractProvider( - // deepcode ignore no-any: any is good enough new Context(mockRpcClient as any, mockSigner as any), mockEstimate as any ); @@ -187,485 +178,6 @@ describe('RpcContractProvider test', () => { }); }); - describe("getBigMapKeyByID", () => { - it("should call getBigMapKeyByID", async (done) => { - mockRpcClient.packData.mockResolvedValue({ - packed: "050a00000016000035e993d8c7aaa42b5e3ccd86a33390ececc73abd", - }); - mockRpcClient.getBigMapExpr.mockResolvedValue({ int: "3" }); - - const result = await rpcContractProvider.getBigMapKeyByID( - "133", - "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn", - new Schema({ - prim: "big_map", - args: [{ prim: "address" }, { prim: "nat" }], - }) - ); - expect(result).toEqual(new BigNumber(3)); - expect(mockRpcClient.packData.mock.calls[0][0]).toEqual({ - data: { - bytes: "000035e993d8c7aaa42b5e3ccd86a33390ececc73abd", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][1]).toEqual( - "expruc6BZL8Lz2pipLAwGEqGwUjbdMzbVikNvD589fhVf4tKSG58ic" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][2]).toBeUndefined(); - done(); - }); - - it("should call getBigMapKeyByID when a block level is specified", async (done) => { - mockRpcClient.packData.mockResolvedValue({ - packed: "050a00000016000035e993d8c7aaa42b5e3ccd86a33390ececc73abd", - }); - mockRpcClient.getBigMapExpr.mockResolvedValue({ int: "3" }); - - const result = await rpcContractProvider.getBigMapKeyByID( - "133", - "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn", - new Schema({ - prim: "big_map", - args: [{ prim: "address" }, { prim: "nat" }], - }), - 123456 - ); - expect(result).toEqual(new BigNumber(3)); - expect(mockRpcClient.packData.mock.calls[0][0]).toEqual({ - data: { - bytes: "000035e993d8c7aaa42b5e3ccd86a33390ececc73abd", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][1]).toEqual( - "expruc6BZL8Lz2pipLAwGEqGwUjbdMzbVikNvD589fhVf4tKSG58ic" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][2]).toEqual({ - block: "123456", - }); - done(); - }); - }); - - describe("getBigMapKeysByID", () => { - it("should call getBigMapKeysByID", async (done) => { - mockRpcClient.getBlock.mockResolvedValue({ header: { level: 123456 } }); - mockRpcClient.packData.mockResolvedValueOnce({ - packed: "050a00000016000035e993d8c7aaa42b5e3ccd86a33390ececc73abd", - }); - mockRpcClient.getBigMapExpr.mockResolvedValueOnce({ int: "3" }); - mockRpcClient.packData.mockResolvedValueOnce({ - packed: "050a000000160000e7670f32038107a59a2b9cfefae36ea21f5aa63c", - }); - mockRpcClient.getBigMapExpr.mockResolvedValueOnce({ int: "7" }); - mockRpcClient.packData.mockResolvedValueOnce({ - packed: "050a00000016000002298c03ed7d454a101eb7022bc95f7e5f41ac78", - }); - mockRpcClient.getBigMapExpr.mockResolvedValueOnce({ int: "6" }); - mockRpcClient.packData.mockResolvedValueOnce({ - packed: "050a000000160000eadc0855adb415fa69a76fc10397dc2fb37039a0", - }); - mockRpcClient.getBigMapExpr.mockResolvedValueOnce({ int: "5" }); - mockRpcClient.packData.mockResolvedValueOnce({ - packed: "050a000000160000cf49f66b9ea137e11818f2a78b4b6fc9895b4e50", - }); - mockRpcClient.getBigMapExpr.mockResolvedValueOnce({ int: "4" }); - mockRpcClient.packData.mockResolvedValueOnce({ - packed: "050a0000001600001bc28a6b8fb2fb6af99fe3bba054e614539e5f12", - }); - mockRpcClient.getBigMapExpr.mockResolvedValueOnce({ int: "1" }); - - const result = await rpcContractProvider.getBigMapKeysByID( - "133", - [ - "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn", - "tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN", - "tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx", - "tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY", - "tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh", - 'tz1NAozDvi5e7frVq9cUaC3uXQQannemB8Jw' - ], - new Schema({ - prim: "big_map", - args: [{ prim: "address" }, { prim: "nat" }], - }) - ); - expect(result.get('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn')).toEqual(new BigNumber(3)); - expect(result.get('tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN')).toEqual(new BigNumber(7)); - expect(result.get('tz1KqTpEZ7Yob7QbPE4Hy4Wo8fHG8LhKxZSx')).toEqual(new BigNumber(6)); - expect(result.get('tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY')).toEqual(new BigNumber(5)); - expect(result.get('tz1eY5Aqa1kXDFoiebL28emyXFoneAoVg1zh')).toEqual(new BigNumber(4)); - expect(result.get('tz1NAozDvi5e7frVq9cUaC3uXQQannemB8Jw')).toEqual(new BigNumber(1)); - - expect(mockRpcClient.packData.mock.calls[0][0]).toEqual({ - data: { - bytes: "000035e993d8c7aaa42b5e3ccd86a33390ececc73abd", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.packData.mock.calls[1][0]).toEqual({ - data: { - bytes: "0000e7670f32038107a59a2b9cfefae36ea21f5aa63c", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.packData.mock.calls[2][0]).toEqual({ - data: { - bytes: "000002298c03ed7d454a101eb7022bc95f7e5f41ac78", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.packData.mock.calls[3][0]).toEqual({ - data: { - bytes: "0000eadc0855adb415fa69a76fc10397dc2fb37039a0", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.packData.mock.calls[4][0]).toEqual({ - data: { - bytes: "0000cf49f66b9ea137e11818f2a78b4b6fc9895b4e50", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.packData.mock.calls[5][0]).toEqual({ - data: { - bytes: "00001bc28a6b8fb2fb6af99fe3bba054e614539e5f12", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][1]).toEqual( - "expruc6BZL8Lz2pipLAwGEqGwUjbdMzbVikNvD589fhVf4tKSG58ic" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][2]).toEqual({ - block: "123456", - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[1][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[1][1]).toEqual( - "exprvPCPwzweu2FnFYTpZJoAM2vEWmPtHDXvsvNsrsKM6ZHMzeahE7" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[1][2]).toEqual({ - block: "123456", - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[2][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[2][1]).toEqual( - "expruH3qgknRBJVLVkwdzf6wfBxd7Y1uqNxr7zuMFxTC12e5PacLfv" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[2][2]).toEqual({ - block: "123456", - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[3][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[3][1]).toEqual( - "exprvEVwRjW3or3tGBSmpyXeqxzzp6XSJGRiKdxV5W1m4s5CceC83b" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[3][2]).toEqual({ - block: "123456", - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[4][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[4][1]).toEqual( - "exprvPo6agtDv551oeRrjSDcETVHBi8TkRvFy7W6f3fGvygU6Un8NX" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[4][2]).toEqual({ - block: "123456", - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[5][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[5][1]).toEqual( - "exprtzAeDbQY935rEquwCdbZaaTYgXttwjkBNAVkRGck1EY6smmFUF" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[5][2]).toEqual({ - block: "123456", - }); - - done(); - }); - - it("getBigMapKeysByID should set value to undefined for key that does not exist", async (done) => { - mockRpcClient.getBlock.mockResolvedValue({ header: { level: 123456 } }); - mockRpcClient.packData.mockResolvedValueOnce({ - packed: "050a00000016000035e993d8c7aaa42b5e3ccd86a33390ececc73abd", - }); - const expectedError = new HttpResponseError( - 'fail', - STATUS_CODE.NOT_FOUND, - 'err', - 'test', - 'https://test.com' - ); - mockRpcClient.getBigMapExpr.mockRejectedValueOnce(expectedError); - mockRpcClient.packData.mockResolvedValueOnce({ - packed: "050a000000160000e7670f32038107a59a2b9cfefae36ea21f5aa63c", - }); - mockRpcClient.getBigMapExpr.mockResolvedValueOnce({ int: "3" }); - - const result = await rpcContractProvider.getBigMapKeysByID( - "133", - [ - "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn", // this is not a key of the big map - "tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN", - ], - new Schema({ - prim: "big_map", - args: [{ prim: "address" }, { prim: "nat" }], - }) - ); - expect(result.get('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn')).toBeUndefined(); - expect(result.get('tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN')).toEqual(new BigNumber(3)); - - expect(mockRpcClient.packData.mock.calls[0][0]).toEqual({ - data: { - bytes: "000035e993d8c7aaa42b5e3ccd86a33390ececc73abd", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.packData.mock.calls[1][0]).toEqual({ - data: { - bytes: "0000e7670f32038107a59a2b9cfefae36ea21f5aa63c", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][1]).toEqual( - "expruc6BZL8Lz2pipLAwGEqGwUjbdMzbVikNvD589fhVf4tKSG58ic" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][2]).toEqual({ - block: "123456", - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[1][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[1][1]).toEqual( - "exprvPCPwzweu2FnFYTpZJoAM2vEWmPtHDXvsvNsrsKM6ZHMzeahE7" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[1][2]).toEqual({ - block: "123456", - }); - done(); - }); - - it("getBigMapKeysByID should accept a level has a parameter and don't fetch the level form the rpc", async (done) => { - mockRpcClient.packData.mockResolvedValueOnce({ - packed: "050a00000016000035e993d8c7aaa42b5e3ccd86a33390ececc73abd", - }); - mockRpcClient.getBigMapExpr.mockResolvedValueOnce({ int: "34" }); - mockRpcClient.packData.mockResolvedValueOnce({ - packed: "050a000000160000e7670f32038107a59a2b9cfefae36ea21f5aa63c", - }); - mockRpcClient.getBigMapExpr.mockResolvedValueOnce({ int: "3" }); - - const result = await rpcContractProvider.getBigMapKeysByID( - "133", - [ - "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn", - "tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN", - ], - new Schema({ - prim: "big_map", - args: [{ prim: "address" }, { prim: "nat" }], - }), - 654321 - ); - expect(result.get('tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn')).toEqual(new BigNumber(34)); - expect(result.get('tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN')).toEqual(new BigNumber(3)); - - expect(mockRpcClient.getBlock.mock.calls[0]).toBeUndefined(); - expect(mockRpcClient.packData.mock.calls[0][0]).toEqual({ - data: { - bytes: "000035e993d8c7aaa42b5e3ccd86a33390ececc73abd", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.packData.mock.calls[1][0]).toEqual({ - data: { - bytes: "0000e7670f32038107a59a2b9cfefae36ea21f5aa63c", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][1]).toEqual( - "expruc6BZL8Lz2pipLAwGEqGwUjbdMzbVikNvD589fhVf4tKSG58ic" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][2]).toEqual({ - block: "654321", - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[1][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[1][1]).toEqual( - "exprvPCPwzweu2FnFYTpZJoAM2vEWmPtHDXvsvNsrsKM6ZHMzeahE7" - ); - expect(mockRpcClient.getBigMapExpr.mock.calls[1][2]).toEqual({ - block: "654321", - }); - done(); - }); - - it("getBigMapKeysByID should set value to undefined if only 1 key to fetch and that it does not exist", async (done) => { - mockRpcClient.packData.mockResolvedValue({ - packed: "050a000000160000e7670f32038107a59a2b9cfefae36ea21f5aa63c", - }); - const expectedError = new HttpResponseError( - 'fail', - STATUS_CODE.NOT_FOUND, - 'err', - 'test', - 'https://test.com' - ); - mockRpcClient.getBigMapExpr.mockRejectedValue(expectedError); - - const result = await rpcContractProvider.getBigMapKeysByID( - "133", - [ - "tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN", - ], - new Schema({ - prim: "big_map", - args: [{ prim: "address" }, { prim: "nat" }], - }) - ); - - expect(result.get('tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN')).toBeUndefined(); - - expect(mockRpcClient.getBlock.mock.calls[0]).toBeUndefined(); - expect(mockRpcClient.packData.mock.calls[0][0]).toEqual({ - data: { - bytes: "0000e7670f32038107a59a2b9cfefae36ea21f5aa63c", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][1]).toEqual( - "exprvPCPwzweu2FnFYTpZJoAM2vEWmPtHDXvsvNsrsKM6ZHMzeahE7" - ); - done(); - }); - - it("getBigMapKeysByID should not call getBlock when there is only 1 key to fetch", async (done) => { - mockRpcClient.packData.mockResolvedValue({ - packed: "050a000000160000e7670f32038107a59a2b9cfefae36ea21f5aa63c", - }); - mockRpcClient.getBigMapExpr.mockResolvedValue({ int: "3" }); - - const result = await rpcContractProvider.getBigMapKeysByID( - "133", - [ - "tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN", - ], - new Schema({ - prim: "big_map", - args: [{ prim: "address" }, { prim: "nat" }], - }) - ); - - expect(result.get('tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN')).toEqual(new BigNumber(3)); - - expect(mockRpcClient.getBlock.mock.calls[0]).toBeUndefined(); - expect(mockRpcClient.packData.mock.calls[0][0]).toEqual({ - data: { - bytes: "0000e7670f32038107a59a2b9cfefae36ea21f5aa63c", - }, - type: { - prim: "bytes", - }, - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][1]).toEqual( - "exprvPCPwzweu2FnFYTpZJoAM2vEWmPtHDXvsvNsrsKM6ZHMzeahE7" - ); - done(); - }); - - it("getBigMapKeysByID with a pair as key and a pair as value", async (done) => { - mockRpcClient.packData.mockResolvedValue({ - packed: "0507070100000005746573743201000000057465737433", - }); - mockRpcClient.getBigMapExpr.mockResolvedValue({ prim: "Pair", args: [{ int: "2" }, { string: "3" }] }); - - const result = await rpcContractProvider.getBigMapKeysByID( - "133", - [ - { 'test': 'test2', 'test2': 'test3' }, - ], - new Schema({ - prim: "big_map", - args: [{ "prim": "pair", "args": [{ "prim": "string", annots: ["%test"] }, { "prim": "string", annots: ["%test2"] }] }, { "prim": "pair", "args": [{ "prim": "int" }, { "prim": "int" }] }], - }) - ); - expect(result.has({ 'test': 'test2', 'test2': 'test3' })).toBeTruthy(); - expect(result.get({ 'test': 'test2', 'test2': 'test3' })).toEqual({ - 0: new BigNumber(2), - 1: new BigNumber(3) - }); - expect(mockRpcClient.getBlock.mock.calls[0]).toBeUndefined(); - expect(mockRpcClient.packData.mock.calls[0][0]).toEqual({ - data: { - prim: "Pair", args: [{ string: "test2" }, { string: "test3" }] - }, - type: { - prim: "pair", args: [{ prim: "string" }, { prim: "string" }] - }, - }); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][0]).toEqual("133"); - expect(mockRpcClient.getBigMapExpr.mock.calls[0][1]).toEqual( - "exprteZPr9h8pkyKKw9PMFEXqG1jbMBkj4A2KC9Mp5cAAjSrDWvfXs" - ); - done(); - }); - - it("getBigMapKeysByID unexpected exception", async (done) => { - mockRpcClient.getBlock.mockResolvedValue({ header: { level: 123456 } }); - const expectedError = new HttpResponseError( - 'fail', - STATUS_CODE.UNAUTHORIZED, - 'err', - 'test', - 'https://test.com' - ); - mockRpcClient.packData.mockRejectedValue(expectedError); - - try { - await rpcContractProvider.getBigMapKeysByID( - "133", - [ - "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn", - "tz1gjaF81ZRRvdzjobyfVNsAeSC6PScjfQwN", - ], - new Schema({ - prim: "big_map", - args: [{ prim: "address" }, { prim: "nat" }], - }) - ) - } catch (err) { - expect(err).toBeInstanceOf(HttpResponseError); - } - done(); - }); - }); - describe('BigMapAbstraction', () => { it('returns undefined on bad key in BigMap', async done => { const expectedError = new HttpResponseError( @@ -746,48 +258,6 @@ describe('RpcContractProvider test', () => { }); done(); }); - - it('should not convert balance to mutez when mutez flag is set to true', async done => { - const result = await rpcContractProvider.originate({ - delegate: 'test_delegate', - balance: '200', - code: miStr, - init: miInit, - fee: 10000, - gasLimit: 10600, - storageLimit: 257, - mutez: true, - }); - const res = JSON.parse(JSON.stringify(result.raw)); // Strip symbols - expect(res).toEqual({ - counter: 0, - opOb: { - branch: 'test', - contents: [ - revealOp('test_pub_key_hash'), - { - balance: '200', - counter: '2', - delegate: 'test_delegate', - fee: '10000', - gas_limit: '10600', - kind: 'origination', - script: { - code: miSample, - storage: miStorage, - }, - source: 'test_pub_key_hash', - storage_limit: '257', - }, - ], - protocol: 'test_proto', - signature: 'test_sig', - }, - opbytes: 'test', - }); - done(); - }); - it('estimate when no fees are specified', async done => { const estimate = new Estimate(1000, 1000, 180, 1000); mockEstimate.originate.mockResolvedValue(estimate); @@ -874,7 +344,6 @@ describe('RpcContractProvider test', () => { balance: '200', code: miSample .concat() - // deepcode ignore no-any: any is good enough .sort((a: any, b: any) => order1.indexOf(a.prim) - order1.indexOf(b.prim)), init: { int: '0' }, fee: 10000, @@ -1239,103 +708,4 @@ describe('RpcContractProvider test', () => { done(); }); }); - - describe('originate with noop parser', () => { - it('should throw InvalidCodeParameter', async done => { - rpcContractProvider['context'].parser = new NoopParser(); - try { - await rpcContractProvider.originate({ - delegate: 'test_delegate', - balance: '200', - code: miStr, // needs to be JSON Michelson - init: miInit, - fee: 10000, - gasLimit: 10600, - storageLimit: 257, - }); - } catch (err) { - expect(err).toBeInstanceOf(InvalidCodeParameter); - expect(err.message).toEqual('Wrong code parameter type, expected an array'); - } - done(); - }); - - it('should throw InvalidCodeParameter when missing storage part', async done => { - rpcContractProvider['context'].parser = new NoopParser(); - try { - await rpcContractProvider.originate({ - delegate: 'test_delegate', - balance: '200', - code: [ - { prim: 'parameter', args: [{ prim: 'int' }] }, - { - prim: 'code', - args: [[{ prim: 'DUP' }]] - } - ], - storage: 'test', - fee: 10000, - gasLimit: 10600, - storageLimit: 257, - }); - } catch (err) { - expect(err).toBeInstanceOf(InvalidCodeParameter); - expect(err.message).toEqual('The storage section is missing from the script'); - } - done(); - }); - - it('should throw InvalidInitParameter', async done => { - rpcContractProvider['context'].parser = new NoopParser(); - try { - await rpcContractProvider.originate({ - delegate: 'test_delegate', - balance: '200', - code: [ - { prim: 'parameter', args: [{ prim: 'int' }] }, - { - prim: 'code', - args: [[{ prim: 'DUP' }]] - }, - { prim: 'storage', args: [{ prim: 'pair', args: [{ prim: 'int' }, { prim: 'address' }] }] } - ], - init: 'test', - fee: 10000, - gasLimit: 10600, - storageLimit: 257, - }); - } catch (err) { - expect(err).toBeInstanceOf(InvalidInitParameter); - expect(err.message).toEqual('Wrong init parameter type, expected JSON Michelson'); - } - done(); - }); - - describe('batch', () => { - it('should produce a batch operation', async done => { - - const opToBatch: ParamsWithKind[] = [ - { - kind: OpKind.TRANSACTION, - to: 'test', - amount: 2 - }, - { - kind: OpKind.TRANSACTION, - to: 'test', - amount: 2 - } - ]; - - const opBatch = new OperationBatch(rpcContractProvider['context'], mockEstimate); - - expect(rpcContractProvider.batch()).toBeInstanceOf(OperationBatch); - expect(rpcContractProvider.batch()).toEqual(opBatch); - - expect(rpcContractProvider.batch(opToBatch)).toEqual(opBatch.with(opToBatch)); - - done(); - }); - }); - }); }); diff --git a/packages/taquito/test/operations/origination-operation.spec.ts b/packages/taquito/test/operations/origination-operation.spec.ts index 50e3d0dbdc..d35388ba2e 100644 --- a/packages/taquito/test/operations/origination-operation.spec.ts +++ b/packages/taquito/test/operations/origination-operation.spec.ts @@ -1,4 +1,4 @@ -import { Context, defaultConfig } from '../../src/context'; +import { defaultConfig } from '../../src/context'; import { OriginationOperation } from '../../src/operations/origination-operation'; import { ForgedBytes } from '../../src/operations/types'; import { OperationContentsAndResult } from '@taquito/rpc'; @@ -72,7 +72,6 @@ describe('Origination operation', () => { getBlock: jest.fn(), }, config: { ...defaultConfig }, - getConfirmationPollingInterval: jest.fn() }; fakeContext.rpc.getBlock.mockResolvedValue({ @@ -81,7 +80,6 @@ describe('Origination operation', () => { level: 200, }, }); - fakeContext.getConfirmationPollingInterval.mockResolvedValue(10); }); describe('Status', () => { diff --git a/packages/taquito/test/packer/michel-codec-packer.spec.ts b/packages/taquito/test/packer/michel-codec-packer.spec.ts deleted file mode 100644 index fdd206c368..0000000000 --- a/packages/taquito/test/packer/michel-codec-packer.spec.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { MichelCodecPacker } from '../../src/packer/michel-codec-packer'; - -describe('MichelCodecPacker test', () => { - it('is instantiable', () => { - expect(new MichelCodecPacker()).toBeInstanceOf(MichelCodecPacker); - }); - - describe('packData', () => { - it('calls packDataBytes from the michel-codec package', async done => { - const localPacker = new MichelCodecPacker(); - const result = await localPacker.packData({ - data: { string: "2019-09-26T10:59:51Z" }, - type: { prim: "timestamp" } - }); - console.log(result) - expect(result).toEqual({ packed: "0500a7e8e4d80b" }); - done(); - }); - }); -}); diff --git a/packages/taquito/test/packer/rpc-packer.spec.ts b/packages/taquito/test/packer/rpc-packer.spec.ts deleted file mode 100644 index bf6e1e04b0..0000000000 --- a/packages/taquito/test/packer/rpc-packer.spec.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { RpcPacker } from '../../src/packer/rpc-packer'; -import { Context } from '../../src/context'; - -describe('RpcPacker test', () => { - it('is instantiable', () => { - expect(new RpcPacker(new Context('url'))).toBeInstanceOf(RpcPacker); - }); - - describe('packData', () => { - it('calls packData from the rpc client', async done => { - const mockRpcClient = { - packData: jest.fn(), - }; - - mockRpcClient.packData.mockResolvedValue({ packed: "0500a7e8e4d80b" }); - - const rpcPacker = new RpcPacker(new Context(mockRpcClient as any)); - const result = await rpcPacker.packData({ - data: { string: "2019-09-26T10:59:51Z" }, - type: { prim: "timestamp" } - }); - - expect(mockRpcClient.packData).toHaveBeenCalledWith({ - data: { string: "2019-09-26T10:59:51Z" }, - type: { prim: "timestamp" } - }); - expect(mockRpcClient.packData).toHaveBeenCalledTimes(1); - expect(result).toEqual({ packed: "0500a7e8e4d80b" }); - - done(); - }); - }); -}); diff --git a/packages/taquito/test/parser/michel-codec-parser.spec.ts b/packages/taquito/test/parser/michel-codec-parser.spec.ts deleted file mode 100644 index 02de671614..0000000000 --- a/packages/taquito/test/parser/michel-codec-parser.spec.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { OriginateParams } from '../../src/operations/types'; -import { Context, MichelCodecParser, Protocols, InvalidCodeParameter } from '../../src/taquito'; - -describe('MichelCodec parser', () => { - const mockRpcClient = { - getBlockMetadata: jest.fn() - }; - - mockRpcClient.getBlockMetadata.mockResolvedValue({ - next_protocol: 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA' - }); - - it('is instantiable', () => { - expect(new MichelCodecParser(new Context('url'))).toBeInstanceOf(MichelCodecParser); - }); - - describe('getNextProto', () => { - it('calls getBlockMetadata from the rpc client', async (done) => { - const parser = new MichelCodecParser(new Context(mockRpcClient as any)); - const result = await parser['getNextProto'](); - expect(result).toStrictEqual(Protocols.PtEdo2Zk); - done(); - }); - }); - - describe('prepareCodeOrigination', () => { - it('prepares code and init parameters when they are in Michelson', async (done) => { - const code = `parameter int; storage (pair int address); code { DUP; };`; - const init = '(Pair 0 "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn")'; - const originateParams: OriginateParams = { code, init }; - const parser = new MichelCodecParser(new Context(mockRpcClient as any)); - const result = await parser.prepareCodeOrigination(originateParams); - - expect(JSON.stringify(result)).toEqual( - JSON.stringify({ - code: [ - { prim: 'parameter', args: [{ prim: 'int' }] }, - { prim: 'storage', args: [{ prim: 'pair', args: [{ prim: 'int' }, { prim: 'address' }] }] }, - { - prim: 'code', - args: [[{ prim: 'DUP' }]] - } - ], - init: { prim: 'Pair', args: [{ int: '0' }, { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }] } - }) - ); - - done(); - }); - - it('prepares code and init parameters when they are in JSON Michelson', async (done) => { - const code = [ - { prim: 'parameter', args: [{ prim: 'int' }] }, - { prim: 'storage', args: [{ prim: 'pair', args: [{ prim: 'int' }, { prim: 'address' }] }] }, - { - prim: 'code', - args: [[{ prim: 'DUP' }]] - } - ]; - const init = { prim: 'Pair', args: [{ int: '0' }, { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }] }; - const originateParams: OriginateParams = { code, init }; - const parser = new MichelCodecParser(new Context(mockRpcClient as any)); - const result = await parser.prepareCodeOrigination(originateParams); - - expect(JSON.stringify(result)).toEqual( - JSON.stringify({ - code: [ - { prim: 'parameter', args: [{ prim: 'int' }] }, - { prim: 'storage', args: [{ prim: 'pair', args: [{ prim: 'int' }, { prim: 'address' }] }] }, - { - prim: 'code', - args: [[{ prim: 'DUP' }]] - } - ], - init: { prim: 'Pair', args: [{ int: '0' }, { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }] } - }) - ); - - done(); - }); - - it(`Ensures correct ordering for RPC: 'parameter', 'storage', 'code'`, async (done) => { - const code = [ - { prim: 'parameter', args: [{ prim: 'int' }] }, - { - prim: 'code', - args: [[{ prim: 'DUP' }]] - }, - { prim: 'storage', args: [{ prim: 'pair', args: [{ prim: 'int' }, { prim: 'address' }] }] } - ]; - const init = { prim: 'Pair', args: [{ int: '0' }, { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }] }; - const originateParams: OriginateParams = { code, init }; - const parser = new MichelCodecParser(new Context(mockRpcClient as any)); - const result = await parser.prepareCodeOrigination(originateParams); - - expect(JSON.stringify(result)).toEqual( - JSON.stringify({ - code: [ - { prim: 'parameter', args: [{ prim: 'int' }] }, - { prim: 'storage', args: [{ prim: 'pair', args: [{ prim: 'int' }, { prim: 'address' }] }] }, - { - prim: 'code', - args: [[{ prim: 'DUP' }]] - } - ], - init: { prim: 'Pair', args: [{ int: '0' }, { string: 'tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn' }] } - }) - ); - - done(); - }); - - it('Throws InvalidMichelsonCode when code is an empty string', async (done) => { - const code = ``; - const init = '(Pair 0 "tz1QZ6KY7d3BuZDT1d19dUxoQrtFPN2QJ3hn")'; - const originateParams: OriginateParams = { code, init }; - const parser = new MichelCodecParser(new Context(mockRpcClient as any)); - - try { - await parser.prepareCodeOrigination(originateParams); - } catch (err) { - expect(err).toBeInstanceOf(InvalidCodeParameter); - expect(err.message).toBe('Invalid code parameter'); - } - - done(); - }); - }); -}); diff --git a/packages/taquito/test/taquito.spec.ts b/packages/taquito/test/taquito.spec.ts index 5ac7c073cc..096ba63427 100644 --- a/packages/taquito/test/taquito.spec.ts +++ b/packages/taquito/test/taquito.spec.ts @@ -1,6 +1,7 @@ import { TezosToolkit, SetProviderOptions } from '../src/taquito'; import { RpcTzProvider } from '../src/tz/rpc-tz-provider'; import { RpcContractProvider } from '../src/contract/rpc-contract-provider'; +import { InMemorySigner } from '@taquito/signer'; import { PollingSubscribeProvider } from '../src/subscribe/polling-provider'; import { NoopSigner } from '../src/signer/noop'; import { RpcClient } from '@taquito/rpc'; @@ -92,10 +93,4 @@ describe('TezosToolkit test', () => { expect(toolkit.stream).toEqual(instance); }); }); - - test('getVersionInfo returns well formed response', () => { - const versionInfo = toolkit.getVersionInfo(); - expect(versionInfo.commitHash).toBeTruthy(); - expect(versionInfo.version).toBeTruthy(); - }); }); diff --git a/packages/taquito/test/wallet/contract-abstraction-composer-wallet.spec.ts b/packages/taquito/test/wallet/contract-abstraction-composer-wallet.spec.ts deleted file mode 100644 index 7ce1beca66..0000000000 --- a/packages/taquito/test/wallet/contract-abstraction-composer-wallet.spec.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { TezosToolkit } from '../../src/taquito'; -import { ContractAbstraction } from '../../src/contract/contract'; -import { Wallet } from '../../src/wallet/wallet' -import { script } from '../contract/data-lambda-view-class'; - -class ContractAbstractionTest { - constructor(private abs: ContractAbstraction<Wallet>) {} - - helloWorld(): string { - return 'Hello World!'; - } -} - -function composeContractAbstractionTest<T extends ContractAbstraction<Wallet>>(abs: T) { - return Object.assign(abs, { - constractAbstractionTest (this: ContractAbstraction<Wallet>) { - return new ContractAbstractionTest(this); - } - }); -} - -describe('Contract abstraction composer test', () => { - let mockRpcClient: any; - let toolkit: TezosToolkit; - - beforeEach(() => { - - mockRpcClient = { - getScript: jest.fn(), - getEntrypoints: jest.fn(), - getBlockHeader: jest.fn() - }; - - mockRpcClient.getScript.mockResolvedValue(script); - mockRpcClient.getEntrypoints.mockResolvedValue({ - entrypoints: { - mint: { prim: 'pair', args: [ { prim: 'key' }, { prim: 'nat' } ] } - } - }); - mockRpcClient.getBlockHeader.mockResolvedValue({ hash: 'test' }); - - toolkit = new TezosToolkit('url'); - toolkit['_context'].rpc = mockRpcClient; - }); - - it('Should add a helloWorld method on the contract abstraction', async (done) => { - const result = await toolkit.wallet.at('test', composeContractAbstractionTest); - expect(result.constractAbstractionTest().helloWorld()).toEqual('Hello World!'); - done(); - }); -}); diff --git a/packages/taquito/test/wallet/operation-factory.spec.ts b/packages/taquito/test/wallet/operation-factory.spec.ts index 8c783a5cda..ab24be1b2e 100644 --- a/packages/taquito/test/wallet/operation-factory.spec.ts +++ b/packages/taquito/test/wallet/operation-factory.spec.ts @@ -4,7 +4,7 @@ import { Context } from '../../src/context'; import { createNewPollingBasedHeadObservable, cacheUntil, -} from '../../src/wallet/operation-factory'; +} from '../../src/wallet/opreation-factory'; import { switchMap } from 'rxjs/operators'; describe('createNewPollingBasedHeadObservable', () => { const createFakeBlock = (level: number) => ({ hash: `test_${level}` }); diff --git a/packages/taquito/version-stamping.js b/packages/taquito/version-stamping.js deleted file mode 100644 index 8b43128acc..0000000000 --- a/packages/taquito/version-stamping.js +++ /dev/null @@ -1,39 +0,0 @@ -const { resolve, relative } = require('path'); -const { writeFileSync } = require('fs-extra'); -const { version } = require('./package.json'); -let commitHash = process.env.GIT_COMMIT; -const { exec } = require("child_process"); - -if (commitHash) { - writeData(commitHash, version); -} else { - exec("git rev-parse HEAD", (error, stdout, stderr) => { - if (error) { - console.log(`error: ${error.message}`); - return; - } - if (stderr) { - console.log(`stderr: ${stderr}`); - return; - } - commitHash = stdout.replace(/\r?\n|\r/g, ""); - writeData(commitHash, version); - }); -} - -function writeData(commitHash, version) { - const versionInfo = { - commitHash, - version - } - - const file = resolve('.', 'src', 'version.ts'); - const content = ` -// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN! -/* tslint:disable */ -export const VERSION = ${JSON.stringify(versionInfo, null, 4)}; -/* tslint:enable */ -` - console.log(content) - writeFileSync(file, content) -} \ No newline at end of file diff --git a/signature.json b/signature.json deleted file mode 100644 index 22d056a0bd..0000000000 --- a/signature.json +++ /dev/null @@ -1,2638 +0,0 @@ -{ - "entries": [ - { - "entry": "files/v1alpha2", - "value": { - "files": [ - { - "path": ".editorconfig", - "sha512": "1867df8b430a180a441a4489b41f7013e2b708fff806c1a140f313bbbdd7a91d8938d3853a5b12f39810455e7372e985861bde739cd10a836cef68be6cd7a520" - }, - { - "path": ".history/.zsh_history", - "sha512": "42c249c53860e6a43572dc1e02ed6ab68feb4bf56e4c20a507157cbfd97f518890403e419f550f1caeb0eef825e69afe21c3e30860e2719befbff533b3ddb55f" - }, - { - "path": ".devcontainer/Dockerfile", - "sha512": "4987cbf983d166c87d8282d6a6ac62ce739705358006868ab8152f06639b47b5dd5d997c930873308d9e67e11c0ec5c9a405bce9db7bc3761a12481f363b18a7" - }, - { - "path": "LICENSE", - "sha512": "951623b074e279207d8f16fafc19380b5c9064e47864119134dfc6f95bdebfe53d16510e805f37a1e8ed700db99df7c880b57a746b8a360d7bb457700da7bbd3" - }, - { - "path": "website/src/css/custom.css", - "sha512": "269c7dbcc2724aeb1ce7074e6abf885d2859212426787d8f6e5c40ac479152d167867154452047bf4b1ae182838be5c46ec7d839282dc3150042c07922eb785f" - }, - { - "path": "website/src/pages/styles.module.css", - "sha512": "fea9f716d6ea7f4b6f3bafa448cb71a34a45c78209ef485c97b55cefb69e1ca9626ba359bf26f2e799a286f49a8fcb8dece24ec8a5f1f3d1248e56c41bd44ac9" - }, - { - "path": "website/src/theme/CodeBlock/styles.module.css", - "sha512": "6e7bc8179f43c5b59f26b58818b1383276e2097539e711295a8be2fb881145a1186e6218bda080c93429ff81e4a1a29cc2fef3b9eba210f893968998f8c65caa" - }, - { - "path": "website/src/theme/Footer/styles.module.css", - "sha512": "4c2d08784a9caeec7cbcfc28aa3c0cf32f97706eb5ee4138a34fb44e35c677c1116c6d4f378f2d030391d66cbb8fede1c324ba4793fcfa68998741995d9213cb" - }, - { - "path": "website/src/theme/Playground/styles.module.css", - "sha512": "1896d350d3244fdccc92b954df660d0689c099a7fac57c8adfd8d9162312e1a4f847c5f399e1497f6d87b0cd4296b16f3cc3d10bb08b2973ae573f2c7453f4f9" - }, - { - "path": ".prettierrc.js", - "sha512": "644de898b2ca07dbd4222bea5743aefdaa4b9b33af8517448df05327549a2528621a6c1be9a80100f16c2bf1a565d44e3a5e7dc0d8e0d60cc861263178b41785" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/address.js", - "sha512": "7f57b9618960e1bc2f38aeee886f575d1f812523f6ddfc5ab66ca6d33ccc2184a06e5200b70c9fe87033315e580cab66f7a8841c065763d374f1614b2a68e031" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/base58.js", - "sha512": "9783d1d58adfc0bf9863004939fb25b87891ba7882cf705f803181012ee99f6bf9296a11e11d03dffae6915f987ffaa815d0704b997bb83a565bd61c34a1adf0" - }, - { - "path": "packages/taquito/dist/lib/operations/batch-operation.js", - "sha512": "8ad47e9b83b3ea48f436e7279af79ab835013325a9846ff634246a93c87ba1cefd868750b7c09f1c0849e482b24d16de0f4a42eed7b6e2d037915527eddf88b1" - }, - { - "path": "packages/taquito/dist/lib/contract/big-map.js", - "sha512": "8a23a14333d639e62c8bb3dade149ed167c6eb2d18dad384eb4542676b3a14c4193d54f590d919a105b2139958d4a37f06d84c4ece4fed363bb1c2410fec5705" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/bigmap.js", - "sha512": "366d55ff0a31039759a05c99f2859d904b1b05a7ed87cf30d94853b13906e26fdf43c9e9461bcf3533af8a1ace8f5372beee102d2e1c991a55642c761df43d56" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/bool.js", - "sha512": "044188b4f1b081787b095e07abd59acfebd6aeea78fade24053f1c80c7ed36f62205040f3f3f77545e0974e5810326690a5adad01d90105822c4e13d6fd081de" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/bytes.js", - "sha512": "5b32ec11deaaff922fd39979d9d613f52f1f0264018af36e23dc396b5f77b86f7bf9d9b8a7610e609c1b99813b5f9bccd4df15e6e356a0403cdbbc442b1f5887" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/chain-id.js", - "sha512": "cb047de23ea174b1c72bcf55e0d22b4627afc39c67fce1bd83d09be65edfd9bea797ae2b0380b2a037320b546e40b4903c53a8b703f19884b445f58f6f4810c8" - }, - { - "path": "packages/taquito-local-forging/dist/lib/codec.js", - "sha512": "90a2afb1c93d47794fc9682a4ae9c8b4e9cae52919f5ac0ec23e1efb19e64c3b7aadaa7c1b84ab3cf1489630e60dd10e49c55f7517fb7426d23fb2e2c271f180" - }, - { - "path": "packages/taquito-local-forging/dist/lib/michelson/codec.js", - "sha512": "139c4dbc4320487178df1f661d570dbfd657b1e39f84f597fa968e3a3b74f2b27fba3f607cd2c047c79369f65486b3b7cceb937455242110ff6c0e2e3bef709c" - }, - { - "path": "packages/taquito/dist/lib/forger/composite-forger.js", - "sha512": "50c141fc83a6f16998cb0c3b852e08d93fc70e7fa239d30c2fed2d98aec3d2c2425f0012cdf29bffb78968456cb06e792d0c6d81dca28a8de10526e8e42fb419" - }, - { - "path": "packages/taquito-local-forging/dist/lib/constants.js", - "sha512": "7c07a5a5d002e4561e310054fc90ac05615f37a6796f3ed413f24d691162bbf5d365503c694edac0594d325dbba7cd7164b6db10a9be214646a4085924b7ed0a" - }, - { - "path": "packages/taquito-utils/dist/lib/constants.js", - "sha512": "f90631a1855f27c26b2d3e9d2e7077b4e4bb3cbcb5c942f1c62b5410e26e9594e50493b958e29dd9a9993efc26b0313e51e82e0ab848042bbd376ef1242d85ac" - }, - { - "path": "packages/taquito/dist/lib/constants.js", - "sha512": "e2145d797097bef6d4390d933370a51d4869252153a618fcb209cbdeb464fc8974490c5c898ba18de69e5176af4d7c7480bd2acc74f0afa38646f708cf8da803" - }, - { - "path": "packages/taquito/dist/lib/context.js", - "sha512": "11e9f879e61f78b4704e564db218734a8945a1343a544347bf47a6a5464ef017965af481e88e16d14d0ce8a8ab73c601cda0f4c34daf5647b0d7fb497e155608" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/contract.js", - "sha512": "35d7c4b03af898fe01a6709b68dcc8cc8521b8ea1cfb53f8b57decdc705c1a0b8da7854122a1d1b11b628d8eaed55633bd9d1df4a0c3daad41ccc956197b8899" - }, - { - "path": "packages/taquito/dist/lib/contract/contract.js", - "sha512": "e7818061333a3d1fd9790308edf57c513a490cb8654d11762aa5dcf1c73e3826ead4df459eb22b39aeefd3aba2a938d1359762c2f0742a96fe3a0d927c265e56" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/createToken.js", - "sha512": "f5e6485b623567cdd4f1740605ea455b2e84885efbdeee5cce2bcb67802b424f177628aa0efb5f98c4af311af39886944706b08c43e80404617fd09c2957c798" - }, - { - "path": "packages/taquito-local-forging/dist/lib/decoder.js", - "sha512": "568674645c5fa90e53164e200c81a0e894d30a36481d74575706673db948ad929556fa46a4593a93f9dd4e4ca2fc5921386d8cea0ba0c8ea2cee23b19a8e285f" - }, - { - "path": "packages/taquito/dist/lib/operations/delegate-operation.js", - "sha512": "b3b7e5965734f5a85851bf1a96251fab2869e87171196d23278cf9d48ad8102187e1b4920c7815aa8d56f88894f68fd85c1316cf52abc77e84b7ca6de4e810ff" - }, - { - "path": "packages/taquito/dist/lib/wallet/delegation-operation.js", - "sha512": "9d07a1a4183c7b6fa4a2efc3069f0e70507f353efbbb8a72b3c04252dcbbc3df692d0347eca7a2c6333058101030405d8ca4962aaa171365b00874f350f9423c" - }, - { - "path": "website/docusaurus.config.js", - "sha512": "2e17a78d284ea7bd34830d8b176e40b4ef0fe12b0c48cd0b009973b0198557c1bccc76e3f6725ddd45906b7952b093c647826b6cecf58040cb97028f6ca60e27" - }, - { - "path": "packages/taquito-signer/dist/lib/ec-key.js", - "sha512": "9c07bfd146fb307548d528795213d75310a85cae21b0726b51ca367ae9b720e399bc0c28d43aee65129a153345f3253c6e5895bae209a2b7e4edffc82e5c26b7" - }, - { - "path": "packages/taquito-signer/dist/lib/ed-key.js", - "sha512": "62dbdb23883fd4a4c9b67c0381356595bda46fee720be189d963daabe3506a69a3b464821652f478460e7d8ca51a270f6f84c20818aec4d511b1d560a4dd1b11" - }, - { - "path": "packages/taquito-local-forging/dist/lib/encoder.js", - "sha512": "837d92d943c2fefee563a885117027a10ed75a0c3d23d673fcca369a0b4054508c7ec0c7f1bcbbb92085f3fcafde09d2381f365c9fe37657b577f7e50813fcb6" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/errors.js", - "sha512": "0d923aba1f8141c7c345f257b9ce37af2f9e2f2f8338aae214b29f7c6e34d1f68a1c35c1ff7847ca8d70bd84494a12e9367cfb33144a06be5b27c1f30385491e" - }, - { - "path": "packages/taquito-remote-signer/dist/lib/errors.js", - "sha512": "39828cca93764951baa4adb003a11374653599621445d1e5d75172aa018634605832cb0374d08b69ff5d7a7a522ec37f33717af9956c00d6b6371b791ec967e6" - }, - { - "path": "packages/taquito/dist/lib/contract/errors.js", - "sha512": "3aaf6e823212b359ec81694d79c0065d93675116a992c46d903ea692690fb9ca31a5fbcc8f492066daaee6cae2ee0580b0617eba1155b5373dcf6b8ed516b04c" - }, - { - "path": "packages/taquito/dist/lib/contract/estimate.js", - "sha512": "9aa043bcbcc9651bbb50f64235ad65b6de4900b5590b2eecaacc99dfc9cb6de7a4ab38ead13b931f7d6411a7abb4437efa7c64aae0b247999ef95ad1e0b93441" - }, - { - "path": "packages/taquito/dist/lib/subscribe/filters.js", - "sha512": "4454580b6c49b0d1ba8470d96a64ce4c070c402d7df0855721e557cbfee8b28205ba8af5a1941ab6feeee26ab25a8b9e2f046ae854f6fbc3d9a902a90bb3da64" - }, - { - "path": "packages/taquito/dist/lib/format.js", - "sha512": "e99a8fe024d205a9b516e8ea00c18f1578e71f579349d0b19462b49defb334137653730b645b11e63401719a7629f58cc8930e697205daa34604c9626827948b" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/formatters.js", - "sha512": "cb0319e6e80fafa5b05db9984b410f9617f2f05b9f842d517e8afda6b8d5ddd9cddb1c0445e7edc2e35acf89402548b0c613010962cb6d5b3172fa254579f4fc" - }, - { - "path": "packages/taquito-signer/dist/lib/import-key.js", - "sha512": "4e1fad91017a63adf08343b4bc12b4916bcad9d6ae5fc4dc4df8ae5c6cd1a1d88340b2e1e17171e8a86cc2295e82d897ef53b5f296ed6cb3e44186d0e6de5228" - }, - { - "path": "packages/taquito/dist/lib/contract/index.js", - "sha512": "27fcbefbe93e56f27b486d02bf0308361c3179a1175212bca72e25f7f54d1d5b656984267f9907211d946dc7a9dbf6a42b7b1f23765fde0738a5af36b9a76785" - }, - { - "path": "packages/taquito/dist/lib/wallet/index.js", - "sha512": "58c9a03d548fd4f8d9b05da2572721d0a415243f5bbb6ec9a0a1c0f73ea07afcc7ad7480284c4015303c4dc11c05e032143c2492e52f403ca48c2010d6ed5316" - }, - { - "path": "website/src/pages/index.js", - "sha512": "4bf7ebd75ea92de62cd8d0d27bec362d0cdf3280e91fc695aaab953981223c9f19b7e6407644b1b175184a8f623ebc833a762541ed930562536eb967e12ffd70" - }, - { - "path": "website/src/theme/CodeBlock/index.js", - "sha512": "106d9b053f8a4b298888e78b8bfd4dcaf94b60771be0e880bbd1e494eabc704bdf823e7b488120ca516e2dc078188cd6399048712d7879e9cd4c5e07c31dccab" - }, - { - "path": "website/src/theme/Footer/index.js", - "sha512": "fac8a83464a22250e82689a90eaf6dbb605356fe1adb2309cb55f8688ae96e91987779c85a58d6e0a1f8eb1b3ce443eeb031ab273d25860cc978f0e159c4e075" - }, - { - "path": "website/src/theme/Playground/index.js", - "sha512": "d9d2cee1e60c0d92560fa0170d73ae4c8802a79d1d9a062e4709cb777f820716a167df78c87cf55339b8528f8e8d5fbcd1b8a54e3e98e511337958df80e95b97" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/int.js", - "sha512": "f1ae58b655dacf0dd04cba86964286ccf55ade76a098dcded065843f19c40141684f3cede75dc6791036511ce59aad88df707cec30f3920859f35d6dd7916acf" - }, - { - "path": "packages/taquito/dist/lib/contract/interface.js", - "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" - }, - { - "path": "packages/taquito/dist/lib/forger/interface.js", - "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" - }, - { - "path": "packages/taquito/dist/lib/injector/interface.js", - "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" - }, - { - "path": "packages/taquito/dist/lib/signer/interface.js", - "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" - }, - { - "path": "packages/taquito/dist/lib/subscribe/interface.js", - "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" - }, - { - "path": "packages/taquito/dist/lib/tz/interface.js", - "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" - }, - { - "path": "packages/taquito/dist/lib/wallet/interface.js", - "sha512": "84f5c8ae6d7a701b8b1694326d9791c726a48902a29042d5cbe85ed3d00adf4bd8aaa61efeac4998102d6b1960235ae8f3991f409641b9fb3096e1e0942933a1" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/key_hash.js", - "sha512": "a661649b042e793786548cde97226ced958832311f01067d21dc2f565e5477b6743a87000cd0fdf9bb81866305154517fd66165630b3e7a40c39ea9d27a1cc22" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/key.js", - "sha512": "b8443e1451342d703ba4155fc000feb0663236d7ce25905bb5808c14394da3f2531827271ea727cc64bce075f0387aed5fecbb2384cf376730567304b962e9c0" - }, - { - "path": "packages/taquito/dist/lib/contract/lambda-view.js", - "sha512": "db0211441d5ea4c5c4b122092896e557f56d137a8e21312eeb94e6eec7b8edb41a4c166307b0f84e81671d82b12bb4cd5095dddc07c9a8c0590804bfb97086c3" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/lambda.js", - "sha512": "cdb681dbfdef5aad6c88a907a59d129b2027073a61f7a2111885fac58f47734a6407a2799d065af5b4765a7dde3ee3f010f4383514d648b567d89d9b73088c9c" - }, - { - "path": "packages/taquito/dist/lib/wallet/legacy.js", - "sha512": "7570f72f4ad2e0e5754adf7cb62bba8d56e8f9b5d4a7b22e2413cac5a07f59bad54b25f6881498c58796886c41370492755208dcecb8d3dc999917bb91879f25" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/list.js", - "sha512": "997f294663a5add2e2ced73f52795695992ffd0a82af4e778d894599cf3611fdd9f7047fd7fcaef8d5086d29b662bafd351ca31286273ce35d7ddec0a90c7b8c" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/macros.js", - "sha512": "71767970e60c3df2cf2142882edae72078bfc78da82d0f5ae5260b90b5bbe113c836e4a6b6ec80ac3d44dec34d43facc23fb76bb6c4e3532d54f9c277bd32a1c" - }, - { - "path": "packages/taquito/dist/lib/contract/manager-lambda.js", - "sha512": "6ac111dfad0a4f2edf7f05106526276250b7b1eff855eb5726b03b7d6190286287a2c2d5ecc53edf7b4a549854ee69ddea1e0fa0d2043acaa39916fa270c10d6" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/map.js", - "sha512": "fee2e0f02d57461f364ece0a95860bb7716008e7f604be12145f80fee4f5b64b9d3524c414d7e6232ebb6f4debb08c579cf9acad3f6a1a404cb0973eaa6292c4" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/micheline-emitter.js", - "sha512": "3b580f3b6514603e2061c1ffc6180fd7983ab38902fe556d097b1e2cb2781a66b038a80974c1258efee415333a3d7f016e7b5eff2f329ddd4f29e3ec17b8b28c" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/micheline-parser.js", - "sha512": "891b0ff5122ef246d04f07772ec4495eeed9822d3b2062a6b3caa90524c3758bbad06d68f1c5e2a7090cc83af8daaedade64ffef536823fc539cffe5a0b1c1a7" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/micheline.js", - "sha512": "769739b48ab6bd971c7108fcb1d56ddf856281a42ad3b3333cab8c4c2128602d025cb7b347cc2e203725169c52b90df802af9407a24b2693f11b5c9ce06087fd" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/michelson-contract.js", - "sha512": "845b36fabe1c3085f3e8709fa3597d08578b49dc5faa333fde175517cbae7114be4f9b2b855c27087e965dde60e0fbeba0f048d4b445f20c1b35ffda21c36bac" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/michelson-map.js", - "sha512": "c1aff8acbeb047d4fa975854204740aca201c76b2d07267aa94821034516a6d7242ef1d64b3148ee984505dae7f1a476af912db1a2e8e8bda872281d7d4c6e40" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/michelson-typecheck.js", - "sha512": "ad2dc78c76291e2eae63d41e27d6ea16730f6bb0a3033538f09f6080fa1822b8e2ca74943ca7560f3aa182a5b267c1d6ab41d76b7494b86ecd6e65d5902078a1" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/michelson-types.js", - "sha512": "0134f50a60267d8f886f345274ec4736850f93b4cc09195b920a9da6420c0c8ee6fe40eee6a711f4a1f4753c762475de0df34268e7dbce24f687de71a1ada259" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/michelson-validator.js", - "sha512": "587b88b16acaacd2a8d966d0a20a7e9329f016fb3de273961f09f55438e7935b22a10db5f0462f0613bf4ea4b8bd08fd2de939c98f181df47011cabe0e95738b" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/schema/model.js", - "sha512": "1693ab9af8a3ffe231a898d22cb3484b2beb3f030ab42f941c1e960f6deb89a1bf959c6c5c9067b9a02df732af1e258ea0e0c101000b3fa9303d65720b4a2fe3" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/mutez.js", - "sha512": "65e44f25687c7afd7346ab0732c2d8359c46ef567a61984a75c0734d093de8251ed4a9424a3f6137e5a13f0e293f8831e801a1cfbbc27bd2dfced88339d38b44" - }, - { - "path": "packages/taquito/dist/lib/contract/naive-estimate-provider.js", - "sha512": "ff72aa8bf7424ce8c8c8d114b506e55a2e5c0c7f21bc79283d3b377e708e420e9232ed800e5abcdd68c61dde274e88d26d1e7a026dfc1a9d108d6976fe0d24b8" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/nat.js", - "sha512": "74fe9f67662e20e62d239534805d6f6954de462b458a810dd49f62d100807a8f80c757841213a7198ca45711649823d5ba23775586015c9fa496928bba1c1e3f" - }, - { - "path": "packages/taquito/dist/lib/signer/noop.js", - "sha512": "2a46130c1999ca368789e3a44eb79d4bb353f8bbdf4acf03d911b2a5beb5a4a7a1a2d55390402afec3d165b56c5071c3ccda59780bba2d97d61ae00ea21534c1" - }, - { - "path": "packages/taquito/dist/lib/subscribe/observable-subscription.js", - "sha512": "669c2859a9411476c2035f82c9040cd93d68afaccb5d364158fb3ea60e9c4f1558d5edca270a220b819231c17c2ad90afe825e9fe27c84462fe56a592f1301ab" - }, - { - "path": "packages/taquito/dist/lib/operations/operation-emitter.js", - "sha512": "20ade2539b6a88ef71ba0292ba1b613d4914f408380f5c6e27f6415a251d4014ddec933f969c3e29745b25bdfdd7d5de4f8bebee3e1f3795f2b3e809ed631aa2" - }, - { - "path": "packages/taquito/dist/lib/operations/operation-errors.js", - "sha512": "e3600d1da1afe145a7606904c3d40e6e9ac516d41d6cfde57cf60f4c5e24e469c642ba0f6d8876705a4ec258b5d8e1bfad690f0f102fff102c011f41f6d43123" - }, - { - "path": "packages/taquito-local-forging/dist/lib/schema/operation.js", - "sha512": "4c874b398d21a6749634fd547070b74b46f1413610c1d04966c96812acb0d0d7c0d69c7551924d7348c668b190cf8c1b745c4ec8c2651fc6216d5e19fbe323d8" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/operation.js", - "sha512": "8ca1c722f1fbe921eb8dfcb1645a91d1b86cdee77d7c4d89f7277960ec3e87b1725bb6bb5b6d63aa679cd516072631341bdadaeaf38e7c7a2871583cdd4b3371" - }, - { - "path": "packages/taquito/dist/lib/wallet/operation.js", - "sha512": "1355a6614e2db2a1d70db57dd98f08f62f534eece825886f0ac7543220bbfe9356d0c60a2ef4a7cdabaa6fa40e655a109a249be0e083b5c497d37af33a0cc466" - }, - { - "path": "packages/taquito/dist/lib/operations/operations.js", - "sha512": "4241627012300df6926f6f0f3804396d7300697e2cbdccea99e8be56cf9d71c49c0b358c3bc4b61023edcc5226af0402bcd871b052420555d1585d976ae16eb9" - }, - { - "path": "packages/taquito-rpc/dist/lib/opkind.js", - "sha512": "0e60d8f65513650e544e857ef89c748fd0974a7cf0cc35caff5a5b07a631d4596f08b6dec30c8bf1a9bfc489dd935fd6268e0b2498dcd3b5fcff919f37020e78" - }, - { - "path": "packages/taquito/dist/lib/wallet/opreation-factory.js", - "sha512": "838309d9f5f8263937b471fe801138c227820ddf74bd8713795bfb872e08f49cb93ff94d1065a2d4aef821162a7d889812e65a1b2e6042e4d9aa3584fe236708" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/option.js", - "sha512": "051accb3cec6035d56dddead2ac2546c9bf3817a5552a711acee9298266f82e214483b38780d7a47de9558aca8e34edb157b7a0379d5090b98e9c2e3ff0782e8" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/or.js", - "sha512": "c0b6dc22c64ce71fc638e4bd95537239a19f162f3c974f15e45cb98e3c363ea980c1582bf841fbb0ca3945e2552a1e40196f85e12dc39eedd52cced67f5c174b" - }, - { - "path": "packages/taquito/dist/lib/operations/origination-operation.js", - "sha512": "70e30df7e04dd4a0ab0b153269e27022d904a6f3c1e9608cb19622bb3bbf9c3e261c660f5ab2ab8bdaecfb78144b240779075937130b87a40f8e2c1dfe737f7d" - }, - { - "path": "packages/taquito/dist/lib/wallet/origination-operation.js", - "sha512": "91d7c11c7f1953ae96b6d137d7d359afc3839b68d18e459d72add18d21d9a8f64f9a709a31e8e2a2804d262d4a06f0896223eae5e6c20cd647a0464c469c72ad" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/pair.js", - "sha512": "c6d05b39e7a3aad02d215dc3276ae80389631194ec0761ef0968c27812d42962a60422b37ee794ae4beaf2a166372f0d9e0a9743d548dad25fa14c5fea8541fa" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/schema/parameter.js", - "sha512": "acc4a32a4439ca5766a0ee1b46d9c8102c152751d7c5afdeaedb1bb22defd0392e3d06c59f68d85f95e144574dea90318a575722126b66839797563a72433e01" - }, - { - "path": "packages/taquito/patch.js", - "sha512": "4d5849e342eb5c791d14849d4e2060c9698f5f5fee706479d99b5851da11c9ec33769645eb19ec862ec9202ede07f1a6e45326773e54bb0d920f2ceef4679fa4" - }, - { - "path": "packages/taquito/dist/lib/subscribe/polling-provider.js", - "sha512": "386627ac8d23f34df3bab2e1d5fda53d1080c1255b1280d6dd72269b271afd84fb4d8869d88ee866cc27185e51a70e480460c150f3bef4e8d21a8c5f86cfefea" - }, - { - "path": "packages/taquito/dist/lib/contract/prepare.js", - "sha512": "134652c6e57afa5cf9e679bda86d55b00d624b881f292d6405e1e5a4d085c21fb3e043359a9d4f4e5850cbe7a77731b545cfb8d6a6ce70c363e3ce630c611f0c" - }, - { - "path": "packages/taquito/dist/lib/wallet/receipt.js", - "sha512": "a934d2ca1a2c70f36fa1beb0545a2cb544bdcd3e0d9653fea95760851d046221d64e1cf22aa2b0ce8246d5e595d4874538251d56442a3f3221de89fbafc88b4d" - }, - { - "path": "packages/taquito/dist/lib/batch/rpc-batch-provider.js", - "sha512": "fa94132230bfde48c5e8ee337dfb272f00ec79c9525b710cd26dd0e90b5d5f031de4d3abe6c03b0b5bb75d07790b86f66324d44cb831857937e1991137fbc062" - }, - { - "path": "packages/taquito/dist/lib/contract/rpc-contract-provider.js", - "sha512": "e9f12a3daea41c9d397629b82479d3d3e9051e83c4cf55dfb0600ec9e898927c06adfea4fe1d243f04f3533d767f78347d8ba991c620658e34361f809c80ae31" - }, - { - "path": "packages/taquito/dist/lib/contract/rpc-estimate-provider.js", - "sha512": "9798813f68860997624efdce26cbd1615cb1da895d05f6567c82ac261557a03e960a42c2e72dbfe73b8b70bd0d6a96a7ade5622e22d9cbf8a8db7c6843c8dbaa" - }, - { - "path": "packages/taquito/dist/lib/forger/rpc-forger.js", - "sha512": "33876d2cd943486c957d2a388df90e743e7b3efa916a9f034a649274ccf6f00f74f6712be44246e5d15c5538b53c53e897252fa56cf8bbd2e42a446bffcb702a" - }, - { - "path": "packages/taquito/dist/lib/injector/rpc-injector.js", - "sha512": "33439e5d63a2fd57b5fcdb9a94d7ad0860cc18dd7e7457cee6093e1b4f9f23126e5931e78cc6350f0667bb845ba791fd98b807bdadb49d44da2826927dbfdb33" - }, - { - "path": "packages/taquito/dist/lib/tz/rpc-tz-provider.js", - "sha512": "b8973f5b6808aa2a199286481f51c6f9e8edf5970b9fb25f7768aac0319f4614b82adf2ab6d3189636c182cd922473971aed71a409669a801b7696d8b3e394d4" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/scan.js", - "sha512": "0688fa100679dd93e764a8068e22ab6b58225602ad77328d728e44257db5bda57b7864f0f8420b7e84b9a4c8965a722b501eaec01c45ae8502ddde7ed402874e" - }, - { - "path": "packages/taquito/dist/lib/contract/semantic.js", - "sha512": "a86fb625f714446ea0fe67fe56502fd4c4be31dd4395ab4874a9b28cfbebf47ba6b826a4883ab17ce34dc2211f5035dab9e3f6ba5387bc6fbe535a59384410a1" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/set.js", - "sha512": "4ab0aaf4affbb0928c698f77e0ecbda4736798db063ac25362acd0cdf105c43cec5ba7a89cb51d60a7f6f3ba08b1640802ab212339a8c938e06d61415fc60e65" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/signature.js", - "sha512": "7c8b1a2889760b0b2c38a741906950356589ea532ab63e8d1eabf9b20e1279039350c6bead2c5fab32d4cc7526f16ddf28347dfdeafdbbf5e25830db9ba6ae90" - }, - { - "path": "packages/taquito-http-utils/dist/lib/status_code.js", - "sha512": "673748bebf088f7222ad49ced652687a27f923316a770f0b26f5b032545a2fba3311be1f48133fa786c44e2845aefe9210c6011164b56ec984d1385eb8e7b7fc" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/schema/storage.js", - "sha512": "69c35a030fcaa0f1d9dba5f40b68d122cee15051daa13543c8849e47f224878bca9797458837b6d6a0f214c75a5b17c5d4ccca8edc653706929d849b6486e843" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/string.js", - "sha512": "724e24749b68c0b5212ad88e6468bfdb7ae3f2df5cd7e2daa71229443c6d5229d2765dca3356339c6db15e7bd5987790a3151b4f9b6f545b43ff2c91f98f94e3" - }, - { - "path": "packages/taquito-beacon-wallet/dist/taquito-beacon-wallet.es5.js", - "sha512": "cc71205eedfdb568832e702c421c61447cc2697ab736eea1291bec550421fe5b9157993830cdc77ee29cc24bbca442bc9f2a66a9efccdc5aa6ebba14c1f343c8" - }, - { - "path": "packages/taquito-beacon-wallet/dist/lib/taquito-beacon-wallet.js", - "sha512": "55f0381f01332df18b58c8a8f6c3e9a42d3417b6c369393cea712a23c7c3f2b430d51313270c78b628d22cbcd737e0cbda5f949896949b876fbcad908d82a240" - }, - { - "path": "packages/taquito-beacon-wallet/dist/taquito-beacon-wallet.umd.js", - "sha512": "2c5198d6efcd320c92ccd8802f816f1c4e8aa54b61b27b83a624bc0abc63462b810b84a069065a044b933502eeec68ee6e103b9b52f6f5af6817e9de467d5707" - }, - { - "path": "packages/taquito-http-utils/dist/taquito-http-utils.es5.js", - "sha512": "e6edd4b8afea8dc55685c427bda9141758b8f842000bab217e4ce6695285b9e830b08d2ca1dba89c9712b493ba94ba38f70d6780e91f938eb3ea7e208fa76634" - }, - { - "path": "packages/taquito-http-utils/dist/lib/taquito-http-utils.js", - "sha512": "a5fcedd1c17ae43b67aa458ec882c03c8ee75982aa6599469dee803845d680fa75fe4d865fc04548c9b3cb41ae92db7e7c82dbb5b922b09043ca5bbc4ad86ef9" - }, - { - "path": "packages/taquito-http-utils/dist/taquito-http-utils.umd.js", - "sha512": "9e372842707aa15a970c32c032d382a118820984d03cbfd5841d7180f0680cca75df5ae2f9a82c7ba5273e71ed2aadc2de2e855a3e802a0369da948bcc19d98d" - }, - { - "path": "packages/taquito-ledger-signer/dist/taquito-ledger-signer.es5.js", - "sha512": "73d9e17390c35f138e76f766de178eedf2aa088212c8b44aa9feba4a2bfa775e01276c96dcc8c425866ccac9dd9da7eb68c4698a5582442859ad7e26e39b5e9c" - }, - { - "path": "packages/taquito-ledger-signer/dist/lib/taquito-ledger-signer.js", - "sha512": "5ce0faf495123e631c294465296f37be09b4f9ff01853a2d7b83907dd6050b0d2652b6c191624c40698b40531b621838630eddb8139350c1fee624d45d71f520" - }, - { - "path": "packages/taquito-ledger-signer/dist/taquito-ledger-signer.umd.js", - "sha512": "02392079be706ef29d0e14d2c3cd10de3097fcb3384bd422c71e1a0c378d66e3e20470695409d8c14000da0d36f6b39211b99eb73b7a4603436b541d306737fb" - }, - { - "path": "packages/taquito-local-forging/dist/taquito-local-forging.es5.js", - "sha512": "93d21506f507bcc6ecd595c2f5cbd5be97de385e8962e63a8fd19a88067d149452858b0205fa82cb131e44c00e79b05a5dbb409c7f77cee310a30d2c7eda47b5" - }, - { - "path": "packages/taquito-local-forging/dist/lib/taquito-local-forging.js", - "sha512": "0cdb476e185d9c9be482f6a9740c14b89967ae3b1530ff8ce2f1b6dd42e516f84e82e7113aec6be9a83c6bac6c5b61ceb7e37b6646e76d527e7146424702f5c7" - }, - { - "path": "packages/taquito-local-forging/dist/taquito-local-forging.umd.js", - "sha512": "f9c5365cd96bb6a7fa09cb3c8c1c42bd86fe23642c92a3962e1a27554abeb79c9b3f70aac778ade9d99eeef7ca5253b4252691802c07238650df79125498f751" - }, - { - "path": "packages/taquito-michel-codec/dist/taquito-michel-codec.es5.js", - "sha512": "6a1b22392248c443eef676a290b640e5366f52cc133cf0ae6376cfb19c914ea06ebdcf762f08a478c2f6c9329e3f3c1e36d09b774d7c2568b21c48920739d0dd" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/taquito-michel-codec.js", - "sha512": "c58d417f064dac7d608ac96dca038be7f1956ab985a0e62dfb7265e5a62e117d8c0a8affe82afd21d62962568082a37b5fa736e028ac38374599482a8c0960e8" - }, - { - "path": "packages/taquito-michel-codec/dist/taquito-michel-codec.umd.js", - "sha512": "fcd446cb76d44ef1621f71ce2f236e4cf4807a4ab0995ce3bfbd7c788f0a1ab174af558ee37bfab60f5cb229e3ff589cf708dd6e867d3834102d46bb35e1a2d4" - }, - { - "path": "packages/taquito-michelson-encoder/dist/taquito-michelson-encoder.es5.js", - "sha512": "d9be43e3224a8c55aed6fdbb5e2379589a3eae1c51f3f16fd27ae1918dc0da63dee85d769af4d41a0adb5ee9cf40a42d00ec864bedfb375151c1950db055297f" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/taquito-michelson-encoder.js", - "sha512": "d54217084d5744dc34ea3ec016e652e30ef4288bfb08db15056e9597db8e71f67dc639dc85c4c882a37ca6ca2d5079691d3ec5382f30be3f88e996797327cd04" - }, - { - "path": "packages/taquito-michelson-encoder/dist/taquito-michelson-encoder.umd.js", - "sha512": "50020172019046ea5b49869e29e72e7c41f708b81c18f72353a2f51cb13fa6ade4d6b0d16a7c7713528c7a0b179dd6e2f529c8dc5a2e27fd0e797de7894cbfa2" - }, - { - "path": "packages/taquito-remote-signer/dist/taquito-remote-signer.es5.js", - "sha512": "0dd6d4e4a5b8c69f9f051ca47cb34bcd088a5bcec427cab5c419033657fe378ef8035afaaa80f7d42d6521d1c1b45674444a23d8ca2ddad417d075556ec2f857" - }, - { - "path": "packages/taquito-remote-signer/dist/lib/taquito-remote-signer.js", - "sha512": "c4983718ded5a359e04b7a89b9d64e0945fe55aa9d22bd6ea181e2e1a80ee83caf47e8b7090358fba362075448161075d9b5634fd9962a2d7a12856c1f9fdf13" - }, - { - "path": "packages/taquito-remote-signer/dist/taquito-remote-signer.umd.js", - "sha512": "53f66dc41fd7793793914797043bea8501421d242e5bd0d1b232866bb2985805f6756d307da2fef267c80dc2c0b2e8375768e537e330733f5bc74d987373d294" - }, - { - "path": "packages/taquito-rpc/dist/taquito-rpc.es5.js", - "sha512": "241a128d56f2e04528de3818fc4fce85e23aaaf0638f3a5e487e07d69578e77c040670e2e0b4c3e62f38b14d0fc5ecb9bfc7f4545383ba6b477da2588d883663" - }, - { - "path": "packages/taquito-rpc/dist/lib/taquito-rpc.js", - "sha512": "5d3280b826545079ae808dc9cfcfa11ca051112f0a1af31429333eebf55ce02f7cb2c8fbc7353542c4cef390a5a609bd5333bfac9a10f3cbe055383447c87f2e" - }, - { - "path": "packages/taquito-rpc/dist/taquito-rpc.umd.js", - "sha512": "d1607db6505957c846c2ed19618f650fedda86b240a31cf63357f6d54b882a58ceef7734dd2fe3a0b0dc1aa7e454598bb8d27615bbad018e600caad2e5959563" - }, - { - "path": "packages/taquito-signer/dist/taquito-signer.es5.js", - "sha512": "a18843a908e102443c1a359b0500d02f322c2b17e69804d1d06c7a7117f1a3adfcf886f8607c63cee4717a9b28107e05eb3a803e057af544b9ee3283fdfae4ea" - }, - { - "path": "packages/taquito-signer/dist/lib/taquito-signer.js", - "sha512": "8393ae84654047172e7425c38a657ea1947e6ef7fdc61cd03cf2dbdce23a47f3cae7db277b067c2acaab1036be53a3729f2949daea5f289b7cd500e1113ae2ad" - }, - { - "path": "packages/taquito-signer/dist/taquito-signer.umd.js", - "sha512": "cb78a93ca519f8e1a05f573326fd7cf966db4eb5a5366dc48403ddd0c7480a7a5527debbbd72d14e32923df620354e03164b7357dba5acc9003cc35c939f07b9" - }, - { - "path": "packages/taquito-tezbridge-signer/dist/taquito-tezbridge-signer.es5.js", - "sha512": "a07612a8efc37ad4195d158f2ae7eedac203a7026e711474a8a64ea90d54d4ba0e371a7faa06d8feb83d777289a8ec97077a5dc3d08913b682f63e0bad8479af" - }, - { - "path": "packages/taquito-tezbridge-signer/dist/lib/taquito-tezbridge-signer.js", - "sha512": "51619498bf0f0708904aa7edf787b26086af08393d0d8f3d438f0c8ded42350e7caf26f091d71c7b293b96c0f14e05baec1948708641dad7f589edf5e87a4556" - }, - { - "path": "packages/taquito-tezbridge-signer/dist/taquito-tezbridge-signer.umd.js", - "sha512": "33e6e8847649d09eaaaa515ebf5c9eba8e942e0ae6e2f72f48b142baca9328de1ffe6a835e375ef9e4a46cda9194d85cd51df08cd0b9f2c14148799ae112f854" - }, - { - "path": "packages/taquito-tezbridge-wallet/dist/taquito-tezbridge-wallet.es5.js", - "sha512": "0ba6c0f1f2e43774ee8a3109d452acc38ceaf4bd88ca41849cb5e0ae16ef56924a0a3f1adf6244176ee9868461fb61e7fa1cfe9b3446f3fb6bef192534492c6b" - }, - { - "path": "packages/taquito-tezbridge-wallet/dist/lib/taquito-tezbridge-wallet.js", - "sha512": "d18d49ee3da6527e785570611a7ec1e7cde2bee54c67ac0bf289e56bb0189df0602c0948c69065201b60324c84ca183dd7de2eb3e9580181c594782d2795f6f8" - }, - { - "path": "packages/taquito-tezbridge-wallet/dist/taquito-tezbridge-wallet.umd.js", - "sha512": "e67cf2bd9e68a129c0c710476d965945dc382d4ea06e0484bd286645e21a65db7c5482a1236f6ac23de3b4866737cfde2d3a067cfb503706243a00d092e3b2d1" - }, - { - "path": "packages/taquito-utils/dist/taquito-utils.es5.js", - "sha512": "9f47e8fc5fe90abe937f3d46bfab7ea1ddced7991cfd8b4fdac5c6ceda0691162de7a4a70524c086b251630be22ec37083a8ccdf5852c6790a066b5aefec5643" - }, - { - "path": "packages/taquito-utils/dist/lib/taquito-utils.js", - "sha512": "77a13f9115ad12d6fce14b472b9b8a0b09c2dabdac86891fd36a9e45128e63001d7ec468abfd47cba5b59de9c114fec555333059bbdf450e099b9864c98f6049" - }, - { - "path": "packages/taquito-utils/dist/taquito-utils.umd.js", - "sha512": "57d8962dd5dc91ddbee3c907f975110cc3c5a3c06d794bef755461ca757abebb474083da98b469196159a0951fd7061ec8d4b3e6418e9e5a3618dc8895950cd3" - }, - { - "path": "packages/taquito/dist/taquito.es5.js", - "sha512": "ee5b58ab6a0e9b3c7cc29644b582d474f79d25c426c0365f46a87cb630f6e9a4c11349a73e307a9d1d1aeed7b7780f4928f96d5ebc476ebd0c9f262c7f36ce2b" - }, - { - "path": "packages/taquito/dist/lib/taquito.js", - "sha512": "5b183728525b9b6bcb772d42a2a2a3952aabcbc29e7a08cb3ca943631045e5b6b461d9b0d94cef1e160ce0034083e1067d070d309714296aeabcc5eb6dbd5222" - }, - { - "path": "packages/taquito/dist/taquito.umd.js", - "sha512": "6391a2e9e0505f03ffb7470ec3951d7aa3917ebc8770c68fc73ba26a7c973191934544f6cea736bbd88b2316adc67e88d14b71cf592748c46473c1d3053de9f1" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/timestamp.js", - "sha512": "18cb38af9de799d8ef6db25386963fa950cc7fd8b325db367d5c07fe5df638619bbe3d13f9123889a16f4080829035f90c0a841a0810b107df30f0e305f1f90d" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/token.js", - "sha512": "2c21e29a5e4a7b750d34069cef12fb559d9cb04b9bf3b729f5fab3c95bbb38668cff76ed002153863f74a862893cb3a22087ec85e5bceddf55c1981b7e37054c" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/tokens.js", - "sha512": "48368b7a899fdc320d038d534a6d6bf0272500c71743d1d9bf3e29758d2db7f8bce32f794bc4694c57175400fc76c6856c023429f574827101f2f4ef67775e4b" - }, - { - "path": "packages/taquito/dist/lib/operations/transaction-operation.js", - "sha512": "8069646f4efd8b426f962aa947f028735059b0ed24df1445e6d42eb86005c1a9feb9ef5caa7a50d5e69980b1bdbab146b1aff100e6d301b81dbd7d3050af52f5" - }, - { - "path": "packages/taquito/dist/lib/wallet/transaction-operation.js", - "sha512": "f8b1b51a4cbf79ecbf57f13789b6443495bfcfb9cbd7921103617854ebfc47cdc3bf3bfdafa4bbb091bb4b527d8e1e739320e6dd375f46002d02cc54f4b160ee" - }, - { - "path": "typedoc.js", - "sha512": "0f57726261a3f8f27ce676222b170d8b429fb891e6eb7061a21631282709758d122ef5aaa56c5227e1866fc47444ae719ccf467ce409642b31d5aa03ec555096" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/schema/types.js", - "sha512": "9e153af0176a3eb9c340bc30c016b6fc5410466e8f4cd5ce09a73fdb98265c937c30677fbacf526ff7555c93e7da855c8a170fd76798a74693e3fdbcc182380a" - }, - { - "path": "packages/taquito-rpc/dist/lib/types.js", - "sha512": "9e153af0176a3eb9c340bc30c016b6fc5410466e8f4cd5ce09a73fdb98265c937c30677fbacf526ff7555c93e7da855c8a170fd76798a74693e3fdbcc182380a" - }, - { - "path": "packages/taquito/dist/lib/operations/types.js", - "sha512": "f8b8c08e25845ab975633e0e6722f7b5bcc1a78c22250daaf701fd873f666bbd172cc34613cfa443359b170f2646ec725b82a88dbd178e73313aaab496896d1d" - }, - { - "path": "packages/taquito-local-forging/dist/lib/uint8array-consumer.js", - "sha512": "749d1e30b76a0c16f40b4f85daefd4993413619b4ddf03614289d5cec4bfef8c7fac84bc2c337f00e098ecf3b8d7ba4b2d9ddaf3e49a3b671fd3366ac849af2c" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/unit.js", - "sha512": "6b39954154d775aea0492825c9e3ca39934e38c4e47d7fe83616d837d89dc76afeff08f492618f01710bdaa2d5e14e2b0b99daf8b8f25a6deb4be8bf12fd897f" - }, - { - "path": "packages/taquito-ledger-signer/dist/lib/utils.js", - "sha512": "d94d4535614e84973e42b398ddc32fde3fc5cb373cd887d19cadf33e94748283a58ecd82661defe4746525b1681d93aafaebf8059b6934cf1ea0befc96dc6cf3" - }, - { - "path": "packages/taquito-local-forging/dist/lib/utils.js", - "sha512": "92eda230f95b8d0b907507dd02afc8edf99b5ca31c3d34f0b22e9fa5714050c3815a8d5af9256b70e5abd2d6aa7915a5e9521985044fe7cb1dd9bb594865725a" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/utils.js", - "sha512": "e200bb2a11b7864e106e13e7f88b0e9bb5f599efb3fcca2d6d730ffb2983c211325c1bf28fe97d01d08593dc23fff70fa9af454a24be28713780094dadf810e8" - }, - { - "path": "packages/taquito-rpc/dist/lib/utils/utils.js", - "sha512": "368fc6e948d268cf36adcadf6f95f3bec041b242ccd334381e6491ae0566f59b3f8d7b4688c2dc29220efa2cb1f38ec523c5815c042e351aa967086e9e80521c" - }, - { - "path": "packages/taquito-utils/dist/lib/validators.js", - "sha512": "7a7c491e86b6571b67cc2c4def71b7322f5a09302a434256f0a7c3c9d751bb029b1627079ee4485095ca580582bb79a63b3f88308dc499925c0df1cc9f4d684a" - }, - { - "path": "packages/taquito/dist/lib/contract/view_lambda.js", - "sha512": "d910a500f1e21352d1f42a2f03856a353715457173c836330a63d88eaea4068c2d6d297a10d16d23b70f5a3745dfa8da21b1a56e99b23c7922fd0d8b50c25962" - }, - { - "path": "packages/taquito/dist/lib/wallet/wallet.js", - "sha512": "816eec0fb4c79ad66adcf39273c5a1662f08b8635f890d9df6bcd2e90724b670f9bb8f411e13c522f7ff35a6de0d964226118d9ed2b64e9cb4b55afffd8650a8" - }, - { - "path": ".devcontainer/devcontainer.json", - "sha512": "0824a8ecee36391a315e77f3fcec0f5d068e8ba2bbfd4a223ff5b646608008770cc044018cffbb47403bc971cea4f19599c934193b7e355b40d5a8455ed6ed0d" - }, - { - "path": ".vscode/extensions.json", - "sha512": "8d9470210bb86776755a564ee81ec117675c088f5efa519ba708cb60a7f18015e1684942855b4347412413325e522cccc646e12604478364375efbfc46e2cdaa" - }, - { - "path": "lerna.json", - "sha512": "37a5f6387c67fd13195a90a8c10f740f249997a4a954c729f0d2e7e3205a3d1b4c7bae3ed8670a3d7b422388b640eb846d55ac5b33745854d092776b1b74aff5" - }, - { - "path": "example/package-lock.json", - "sha512": "f7144301e24bd46bdf3ab1f023c9fc123c85601d397bbdcf355986d30daddd1bb95edb10e08ab5a3aadeb4a1474b1a1f9b87e373e152b74ff3d0461f5b115e6f" - }, - { - "path": "integration-tests/package-lock.json", - "sha512": "f0f746305bfa290ac3718cd0b5f6724823415e8d5b3398911b51b6884e490eaa8d53df1e033ade90f2f629309ce9183df65f4c687f0c70dcbe71c9f07b7519f6" - }, - { - "path": "packages/taquito-ledger-signer/package-lock.json", - "sha512": "b4c2bbdc0a25dd629ea6c1d0b837e90ba52d49030d8aa978c9a199f70dddaccfa082af1b6e3d573af349fa9b3784628a09919f3ba678b9f2629327f5b863f45c" - }, - { - "path": "website/package-lock.json", - "sha512": "540eb3bd6e7a5b8a5a42f056a3d51b5fa94a3f9fa2b7c0583d172ddf7faffc058b93d2ab6ecce55ba76d644e112ddcc6e2e56f6fe6fcab91b283edede931e7a5" - }, - { - "path": "example/package.json", - "sha512": "8d9e2d1ea53072f3fd59c8b2dfc5c1a540cef87f97a20ed3212f2402e5ca08bd709bbb26fb762b0ff146ead06b198e25b6f5044508ee091ea5a21578d701182c" - }, - { - "path": "integration-tests/package.json", - "sha512": "0c204334d136fe270ad9ab43216658841edd85d9fc980f957217d7f744884a92c8617535b9fd938eb2ad6b4ba26f47300e5a1bbfec4542f49e9ca74ce8ea3e2f" - }, - { - "path": "packages/taquito-beacon-wallet/package.json", - "sha512": "25fae90ee760f52a858382400bc2848931ad0c9417d28836d8d7df7d60de0013c508181bd617b9e9ddbd7f41b1c35e1328187c5cb238a1792e2f1606f07cd7bf" - }, - { - "path": "packages/taquito-http-utils/package.json", - "sha512": "ebfaa78f9c7cfae799e00968f5561e85920918d0b808935bb69a7c88420d7368ba637f1e618d4a66bed14c2e824c3706d1fa8f83c2b8f90fb294d8fb1528810e" - }, - { - "path": "packages/taquito-ledger-signer/package.json", - "sha512": "a7e6297e3e24f74ec7b6209c45459aa5a3e93ca4dee188500ea6815effe7310e18d0aa11c99a7bfcb7a8121b9bd46443c7c25c79a89eb25dcc8559a44ca5a45e" - }, - { - "path": "packages/taquito-local-forging/package.json", - "sha512": "45e077e68b016b6f1782d3ccb0b3c6cba98a4e838091a92fce8307617871b97086f64ab7909161280ea03b1f2553d882212d3d8610ad0fe7fc8cfaefd8a69252" - }, - { - "path": "packages/taquito-michel-codec/package.json", - "sha512": "a178af26745b995f680ed8ee5fe7a15048895d0afe0b1cca401c103574f4ca3b210bdeab6e39dc65093affc65d830123647f111f941951d91308ac7549094df8" - }, - { - "path": "packages/taquito-michelson-encoder/package.json", - "sha512": "ef47797a5b1ab2598df9d79b6068f406f733cf51369f50b99ff401239d03979c7af02241282d496e31e5b1d9e286a4809fdc87c1f8e7bafabb3a0210fdc2e28e" - }, - { - "path": "packages/taquito-remote-signer/package.json", - "sha512": "14686ec318360cb25ec3dd3453d2280d4c0a46133ca756409d973aeeadc8357174f98b5c39ccbe15ffcc46841289d91e0874b2227dc5be6cce22adbb6f197d44" - }, - { - "path": "packages/taquito-rpc/package.json", - "sha512": "7e5e876080f483b28a43ddb39569ff7bc444c7cd7fa18fb0ec91190054b8e35efe3682c8eef30e5d5141bb57f373241b320d18184a30241aca45fdda3f8e6860" - }, - { - "path": "packages/taquito-signer/package.json", - "sha512": "681b11552a9d3be1a494372891b5c46ef2841649f2f786e7c01fe6988bcda32d5629f47389baf57a597ba2eb14124689c2bedb477259b7a6836f92e13a0d0aaa" - }, - { - "path": "packages/taquito-tezbridge-signer/package.json", - "sha512": "f25e4cec475f7fd3ba6f5e2a1c2856487512956b77c5ee10f4b1806668db5ee6edbbe99fc34ea55caa5ca64552e8c24d673ca5a6c5b13034f71ce884d3727b52" - }, - { - "path": "packages/taquito-tezbridge-wallet/package.json", - "sha512": "7fdb1615bd880ca703b2d2dc31d73240ad783b2c193adda7e21a3f000a8c2897895c58409c6faf9bde542edcb66b93b4ed924a8c2cad5bf6f577371fb1859ece" - }, - { - "path": "packages/taquito-utils/package.json", - "sha512": "66df55b5cc6dae2c012adf1e31ce1e7075112f527a63a5090a11d1cb4caa7c6c32e323faf8ee46e1de5ca0007a04a27379ff168a75d7ec79e4376e4899f526c3" - }, - { - "path": "packages/taquito/package.json", - "sha512": "bdaa9e5c12c7d13ab03daf276f449a36e7820fb419038594cef6b4ecfabece68772c89980a46e524c2f0c38ff397b8f6c1a117e7d4ef161b6ca4b324dbbc7d22" - }, - { - "path": "website/package.json", - "sha512": "73b3aefc70eba4e7a4955e5517df9cf5c46a74d5e73dbe4d306b23f24f1c46d4aaef25b4155982b5bb8666f722ae55d27887eb7588a7d10d6ff023d90f15efed" - }, - { - "path": "website/sidebars.json", - "sha512": "a5c819d130b6150070d7790d68e02b75163026317014804bab00c115cd1091266bbddbdee6adcb96598bb9a6e1369aedcc51f84ea6542e58a6ea968bbf518e46" - }, - { - "path": "packages/taquito-beacon-wallet/signature.json", - "sha512": "c55668ca7dbd0c76d43fb896cd0e0a7be5650128e37ce543be6636e1d19efa622b095ffc929bf72a250c5df50370746edc7a81be36a23c87e96cfd6cb293658a" - }, - { - "path": "packages/taquito-http-utils/signature.json", - "sha512": "a805d743f5bcea7ca9e61a1c06cb59dcb140f2501b081c2afd494c48371063e1851aaabb50ba461cdacd3b19112386167a86da6dedacf82c3419a6c7332e94cf" - }, - { - "path": "packages/taquito-ledger-signer/signature.json", - "sha512": "97129810b28fe84f9b266fff14cd225d190df61cf8d756befb8ba6ed4f7fdcd789824565d1c5a04b51491d61fa76bba226d6b32f8a03ef3da1819ddde03865bb" - }, - { - "path": "packages/taquito-local-forging/signature.json", - "sha512": "939ea43b82dafb12a2c439e57414e8da5382dc03ab1e002ba283b49f8fb2bd524b97996931349f7838af0077a8db9450c54bfb5e0b3a816b8e76467125eb52bc" - }, - { - "path": "packages/taquito-michel-codec/signature.json", - "sha512": "48f4e072d53b81c4a407e24a68513c7b1f42fb86e7755f6cceca9d0bf03cc3eb548f21c786fe5cca89305774e86376826fc1d0c532ab56817975538add5517eb" - }, - { - "path": "packages/taquito-michelson-encoder/signature.json", - "sha512": "f7ea72809e25b315baa5256a8ebd981ad8b22cc51cba88b853ec66817d91b680d54192f576be02d43366ba426b68bec4a470748da8dc333de0d98e3323079b6a" - }, - { - "path": "packages/taquito-remote-signer/signature.json", - "sha512": "e9cba88e9145742accb350ac40d61066e680ed1c0f088624486c4d691d86ca5e30c244a9494dd7cd1e7a4b033934116d31aef95d6f135e1582e1ce2d06604b57" - }, - { - "path": "packages/taquito-rpc/signature.json", - "sha512": "0d83096151f92a379939382220043b4ebcf971ee147b0fc8fe9044814ecacbf10b116792e9b0538e183c0a66257f0b79d9266c8b87636acfa922234f154ffe6a" - }, - { - "path": "packages/taquito-signer/signature.json", - "sha512": "c6d2a309e8656cb13339319695140039935b5078a7fb66fb6a2d8007e73511566f9a7b568e946f0aab8a4dd4ad7f227cf89979fe986743d1a1e9a484036a8f4d" - }, - { - "path": "packages/taquito-tezbridge-signer/signature.json", - "sha512": "6105b803f44bd03500523d504ed3af61596dfc2f8b4c2e32b53b91328dc1361773209963d30711cbd7001375f2b51ba072ecc9a605885ba8ddf9b4f078f36507" - }, - { - "path": "packages/taquito-tezbridge-wallet/signature.json", - "sha512": "f8902983bde9340ce78239c2764eeb4a21206dc8ae9bc6ceda5a4e6ff6594a2d24e052063eb7c5f696d5284c22716234decda085df150cd6bc21263b2043e574" - }, - { - "path": "packages/taquito-utils/signature.json", - "sha512": "0e970ee2ff43310f66e9d3363d4b680d3487808dc509ead0fa38f1065ebac112b564085303ff193c61c23cce3924405221d547ddbd181a8268f6f8badb040111" - }, - { - "path": "packages/taquito/signature.json", - "sha512": "0435a5c60d689c4ef56395963cefa851f79831a5558809740aeb613c4de50dd48056b39eceb14e76e6decc7674aa556b4f012a47972ef2557f7e41402a8479e5" - }, - { - "path": "tsconfig.base.json", - "sha512": "344246cb27646e06fc8538b7d86e9b4e506079a3becedb65eac53fba5a705864af91fed90a1055a09735b1719ba58c8c3efe3f2a716777d07544b47fb60db7e1" - }, - { - "path": "example/tsconfig.json", - "sha512": "3741e89c9c7469ec86500e02523870646bc7afe74bcb967dcae6777d0ae39af7e15c412f4d5e4904629c9577eda5f5cb02e2bae567d3a41886fd0f256b30e1d3" - }, - { - "path": "integration-tests/tsconfig.json", - "sha512": "87d1b9bff18267a535f1fc150df8ecfdabd8aa07ec325f3de8ab9bedb922527d8b6f546ad9bb5d38ba7f57d5d450b4dfc36ece3ea060a9f10fc32f2ee0728e1b" - }, - { - "path": "packages/taquito-ledger-signer/tsconfig.json", - "sha512": "dc1726b9bdf8a3aa303d7562b73327dafca5305a1dc4c2a666bd92a74e5e06ba2363d05e25f46111695c5bfe647e4dc90352d1a9c398158b9c598ec55909a594" - }, - { - "path": "tsconfig.json", - "sha512": "c1a2fecc4ef2c3bc5ac38de6bd3e07fcecbef45519369f9a0b3340b239fb678fdc4702c83553d53ca7087e4beeb4d004e4f56204a62440f13615408f689d766f" - }, - { - "path": "packages/taquito-ledger-signer/tsconfig.prod.json", - "sha512": "6f9928704743d6aadadc25fdf791083fad58262f7837a7e00a9353b264bcf023963e5474aed209b69e3b36ff91fc2497ec47a62a39c7c1cb036ef34ff1b6f7c6" - }, - { - "path": "tsconfig.prod.json", - "sha512": "a5c8efb29907ac1399112f22628324168c9a778b06c7fbba08b1e4ca6d474282e5127c3117d070cb8bd4afdc3991261d5444d4f47ed5adcc86420dabae3afb7e" - }, - { - "path": "packages/taquito-ledger-signer/tslint.json", - "sha512": "f33eefc26af1bc19e47a6cd1ac52f8a65bebfa55b1113330b66871c40c9ce7675720f20018799b394a34a6aaccafe9644ffa94306988f0a8e3f242d7f0b864ba" - }, - { - "path": "tslint.json", - "sha512": "30d8b4289f07ac71cedaf2f6f87c9d8464df5692741ee6e335cd11292ea530737a7e20af683e6beea880246021cbd7152e59107b81451ae30156d8b4e1035543" - }, - { - "path": "website/yarn.lock", - "sha512": "538150107182f6811b5d2e37e78bc206310f3b738791d822a0dcb4fc003b2c0f856276212f4a716e3ffc3494926b5d6cc022bd135c7add012faa604885731d90" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/address.js.map", - "sha512": "eb01296013c3bc8498598343c827ad2b56ebb89c2c5b0b1f97585abfecfad77c98904229fcb6f8eea1f3c5f3cfbdb7ead6d22eda8b3b4f4408cf4b897830abd3" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/base58.js.map", - "sha512": "e0517d428078af62e19e39f0483d2634ed89a8da771bdf2d6df8f86edb6bb1cc54784d8e07c320b3575f023f530213ca1bdca24bbb281e55c6ce91ade994e588" - }, - { - "path": "packages/taquito/dist/lib/operations/batch-operation.js.map", - "sha512": "027d34f383645839c0fc3293476f82b5678335852de77678a230e94a0eb51d43649b30ff9d0dfe743dfe1d6bd935b294782b97eeb525c99bce3811114b5ddf9a" - }, - { - "path": "packages/taquito/dist/lib/contract/big-map.js.map", - "sha512": "cd3bbd208f73e26c4572a55a9581508ad196bfaa863aaa6c906e556122a4f98b0b43ea77d1945b8b24a937d524a783cee8b7fd206fa218d18adab200afae8fe0" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/bigmap.js.map", - "sha512": "0ab2496567ca950d5f9b4f5b2f26b2e7ee0afb272ee98d8a4fb146dd4b248b12f4fca8e64d0e1f41c395fdfdc82c991cf2297e74d3361679921189b779d23d65" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/bool.js.map", - "sha512": "762448d2830cb0e5cbc00b63d38864209252458c8c26fec596a9bd39e29366ee072432ab949501d9721ce6369652b0d77399191bd0d694d85ea671a063234c1f" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/bytes.js.map", - "sha512": "14274f4d5fbc38f549c605077f4c51cb26e44047835dc0162e77920e7a2025e08f53f8e46ad2a8d7d5efe0657a6b8335ad732430babf723dfa01e9c6dbf39fcb" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/chain-id.js.map", - "sha512": "bb3ccd0c78ea2b28ab770a5d5bd28ae40f905efb84eac4e1edb4717e2108d743ad23ca25630ed4e283553f4a4eb7d22ee8b579683463e72b29b56e617cef3190" - }, - { - "path": "packages/taquito-local-forging/dist/lib/codec.js.map", - "sha512": "d9f000de63fc3bd62328318db50ffdd5000f6839e9a2da3e09df03c0ebce52137918340cc724d2fe8a9a2c903b82df990d07203c15680d51c6b6e6f83005c2ab" - }, - { - "path": "packages/taquito-local-forging/dist/lib/michelson/codec.js.map", - "sha512": "d8f7b1d7b6acbcd69fe396066cd597c94bb66039df43311b8bee53c336fae43ba97c730631537e1031dd706e4c7856cf0d8d3f694d57bff8da88ff7e0c7987f3" - }, - { - "path": "packages/taquito/dist/lib/forger/composite-forger.js.map", - "sha512": "151c4aaaaed805b1c0fb0c39fa11640128b67172fabaae94abba3390763e6845e4738a5f8cf7b8d00a013fe464945607c9f7892f2716dc2d0a399bff4c15303f" - }, - { - "path": "packages/taquito-local-forging/dist/lib/constants.js.map", - "sha512": "9af33533459c79ba9cb053223ce76be6bf92f9237dc25c35e6068e1a453e84f0a178bb95c0d2d3ba73982411d4bfb9a915efa10fd3c3ffbd6cde1d88d7e0e85f" - }, - { - "path": "packages/taquito-utils/dist/lib/constants.js.map", - "sha512": "60386bfe60bb0dd477fda291b40cbaf2528fabc0b7d94e87f724715c9e22f202537c675069658e610a928cb450843f40fc4dc18660388d22a1dd34c9c4bc4aab" - }, - { - "path": "packages/taquito/dist/lib/constants.js.map", - "sha512": "39a80c1b341c8f3d27954cd39a02f62dbe4b17b38259b9fa9bb1bdfe74040fdbf2efbe8122deff276381bed589500b2b57996cca1ac09c5212d90e3b9b5303e8" - }, - { - "path": "packages/taquito/dist/lib/context.js.map", - "sha512": "29b7fbe024228fe486b711e0ac2e0050c7c543e849df7fabfa9cdf8293ffc0dda8e4087eafef18bdc077c64ab3315814b996a79909d39d058b6d2c797f82eea8" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/contract.js.map", - "sha512": "c421a5d4f2d400b7f9c0fa0cb0515b3b083df4e1911aece274985bccb0b660a2e97e8d238e81205e0ea59188a8f1b8449ab21238d37938553fd746f1f9278bfa" - }, - { - "path": "packages/taquito/dist/lib/contract/contract.js.map", - "sha512": "714e002c09802c78abc59e0b2e7d7a378d05f3533deab68a10e6dd43644762dd6c580f06cfa6502a1abfe71ce6f222eef0eb1188ad74df37b1aa57d692ad7adb" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/createToken.js.map", - "sha512": "5b2e899771f27852bb3b78400d121b5b13f3ad11782b34e65a690c6a72cf69e759ba3682fff34c3b76b8421937fef08cdec22a42eff260aa2fb35a6d5f961717" - }, - { - "path": "packages/taquito-local-forging/dist/lib/decoder.js.map", - "sha512": "457c1b9df7ba6c7676af154d4a841a5de4a32bf07c02f282e7ba3bb44f35e4c933fa1572c54b01248317322a052e2c46eee3551915e02fe5a59fa5bcf6bd9145" - }, - { - "path": "packages/taquito/dist/lib/operations/delegate-operation.js.map", - "sha512": "d411072e6fc8b5a59f88612be39f0f4109ad233d3cdd37052057dfabf5c52784e3e7f668a8ae636094081a71035251a6a98ef50c7f88f3ba31e6282dc8ba0711" - }, - { - "path": "packages/taquito/dist/lib/wallet/delegation-operation.js.map", - "sha512": "eeaa43d768c315b842d5e3fe9bdecff133b21bc88ec6a43a2e5da6635d384ddcc8a610ecc6da5e2cbc959084d8cf099aa2881f0731560b7ec32f16a48def968b" - }, - { - "path": "packages/taquito-signer/dist/lib/ec-key.js.map", - "sha512": "32e91cb313e87cad9448236e3d3b0056a8914e0c4ccf504769f053ef085cfeac6ae8fafca691b73bdb165f5549269591f80e56c29d912e13d49987c1ae7564a5" - }, - { - "path": "packages/taquito-signer/dist/lib/ed-key.js.map", - "sha512": "dc4ef8620f17657569480234eb94ef74081f6c2e6666f978230fc086091c03b52a1f3cb1a0a30143a7ba92d540a4b84dbf060ba02c41a1412c8bda311c93a508" - }, - { - "path": "packages/taquito-local-forging/dist/lib/encoder.js.map", - "sha512": "f445b1d2e47e4a3e7450c4d6c009d5f5e41791e111b9e1f2f99dc47b76dd88f9f2fbb9c5d996ccb5736db60bf13a3b09efefe664f0a878ac2831e9f4967c4161" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/errors.js.map", - "sha512": "333db8e9683e9d0a1d9ab34d0d2d90ce81d9a6ab1a892d1d26163a4f6b92c969ba56a03ada2d998dafdf27c7422da02f3948126e1a17cd0275b8cea4f81ae323" - }, - { - "path": "packages/taquito-remote-signer/dist/lib/errors.js.map", - "sha512": "13fc6522b1b3668a421903e8a3c828bc0da7b760bbebac8e72fadbaac5d0fb40b5506835174c33c8585a76f8588475429b4e105ab34173be681383bb443e2379" - }, - { - "path": "packages/taquito/dist/lib/contract/errors.js.map", - "sha512": "b63becceaaeefe3f367912ab3ebb828470c36787f0d728dd9554e0d3161b6cd3fdc1c8e2c3938434ec2dbff666e2eeefdbfe1010ea488128db511a1ffaaeceae" - }, - { - "path": "packages/taquito/dist/lib/contract/estimate.js.map", - "sha512": "1b899fbc5e95674b5c1409a03dbe6a735a03947aa54c02cb44dd669c0102df0045239e505af22c8d5b256d80068a54e79a01f9440bcad52bc369ce4780d18e7b" - }, - { - "path": "packages/taquito/dist/lib/subscribe/filters.js.map", - "sha512": "d491d1d7a23ea23db9c8d84f5a026901763e98f2d88da2ad5551ee634c5707b78a860119111b859893915be4ea009a0bc0ef1b546d4d18cf31bf079e29425c13" - }, - { - "path": "packages/taquito/dist/lib/format.js.map", - "sha512": "341bb719f476177583ff4e13d014cd28b2938993ad291ee35825b0f7fc923b4211f674daf2a7062093f5c2d196dfabc443f9ed34d769e44b4d5b332b3b1fec39" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/formatters.js.map", - "sha512": "fcbfac897bc58470130ff45defc95d6a63a4f7f91b835afcd111cfd8cf5a097ae90523ef8aa31eaa190e3e0bad60d177546469862c39a76d30071520c4329dbe" - }, - { - "path": "packages/taquito-signer/dist/lib/import-key.js.map", - "sha512": "b47c65b6d699ee44f223dc49d24703282ff8d68dedc9a4cead222fd84b52812e82f4a4f265b98ab8653370ce8b6f7ad71c9b68bbe9d62ca91da7694895667b02" - }, - { - "path": "packages/taquito/dist/lib/contract/index.js.map", - "sha512": "0b2d3e671192acdb2aed53f063b27ed7d65cc86632e105623fc87f12a1968dc0f4cacbec19466951f7ce6cde7ee45250c10fc1d2fa430abb2f4270e5376e5451" - }, - { - "path": "packages/taquito/dist/lib/wallet/index.js.map", - "sha512": "d1c31804f7e217651ae6868d2e9592fee25227c3792f9aa93a0bf445852de98fe1d5443e3c6aa76ee4e17c1cb1e094057d3274a1a41b668854a64e0fb0f43d25" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/int.js.map", - "sha512": "16c677d6a212cd1a9cd19ac04070dbdb8d295b4bb06aa7cd483d5fdb00c784b9a780c9de9bda98149d79730897d3bbc0966c6ffe3078387b3f005d1fb6fafd44" - }, - { - "path": "packages/taquito/dist/lib/contract/interface.js.map", - "sha512": "8d480f101a811c5bd29cd1f6af12026ce88cceab676ab92f6d260e96b4012113d8ac8dca95f5c6bdee512d05ac5693c25df104a9702c2320962911e86e131669" - }, - { - "path": "packages/taquito/dist/lib/forger/interface.js.map", - "sha512": "db2c047d320ba003fc6958bbdefc3a2492157184b6a99703d5ae944e16de66dbbd953bcd341491069e6f9c91efeee63867d7dd6c1acd470a6efa9294b68a344d" - }, - { - "path": "packages/taquito/dist/lib/injector/interface.js.map", - "sha512": "171806b75371f64c23d793f920b121a422046c53cc6961331a3bed9af4d114d8bcd70003fcbfafff44b212ed56e774b32f38e9a1b80e8a85a817ce3897550d5a" - }, - { - "path": "packages/taquito/dist/lib/signer/interface.js.map", - "sha512": "3c1d4317a69f95e1ad45c2c6036a8249041f66acc0e3334b515ac58dd4069a5c279a5cd21d6901ba9a4647bf3c9f6bf453a9cf02aa15121005f8f4b095556960" - }, - { - "path": "packages/taquito/dist/lib/subscribe/interface.js.map", - "sha512": "57a0eea1891bb36f2340d3150393ee83b785b413e856c3ac95855d6be8c237077944e7eba4f40f48f7cb7afa4c04cadaa2225e0021c110c6269ad9bba2dccfbe" - }, - { - "path": "packages/taquito/dist/lib/tz/interface.js.map", - "sha512": "7e1d733b30ca5894d403fe5f046d3af6a6760705f2545a653902b2af96c4e40f0c187b1203912510a76f9e0d5dfafb1e61a21af629dd907667d84202a974b434" - }, - { - "path": "packages/taquito/dist/lib/wallet/interface.js.map", - "sha512": "65fe5ce265d4590493990e5f186555990a03819e9e958e4a70f4b940be4f88e71ed282784848521aeb85f2b25ebf3f79bb400f499ff5b41bc833886717097492" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/key_hash.js.map", - "sha512": "14eda18b2939af77f9b78fe5e27282b631b2fc7d84ddcc05ac954f703a10822017d971fc82c8ada39cf149bbfaddcf7984ac30603c2d017bcbd558ffbb34dec7" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/key.js.map", - "sha512": "503b6db60981be4ece17eb8d051d76f3c1e4f2d82eaf9485367088805f2252f11f0fbc6f302476723a15e6f5ae4f1dc02f808ba379e2221e07fbeb1119fc313a" - }, - { - "path": "packages/taquito/dist/lib/contract/lambda-view.js.map", - "sha512": "f3181aa2959aad891dceb2b96357d74488cf7569e6b71349fcb262dd72cc8912ca213dfa8567527acd9a5898dd853bb606628877f87d5287d826e8378a232bd1" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/lambda.js.map", - "sha512": "665e751d1b1ce1949cd4787b0c7eb09248829e00bf37671a12a6ed989ce25feb6d361798b8a230188a015857ffb55e753fd98600820c0e7e053b4e04a357deb7" - }, - { - "path": "packages/taquito/dist/lib/wallet/legacy.js.map", - "sha512": "41645888f91f1e53409c464572c2721b57caea00efd901c1956dc8f031f149f2fecaf6408702cc0ac7e638a4c75c2a5e3e8580cd21ab4a38fe69396d6faedbf8" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/list.js.map", - "sha512": "0c9f4a23cf5cb6586c5276a5847d612a7b57d9dfacad8d9eb02adefa04b0fc39e697f3d09c02e1dca706470de4854e3485eb379d63b07c965a3d1b21c1e41d2a" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/macros.js.map", - "sha512": "79c861a84173276d15a59789b164231ecd6cf0ab7be29a8e4eed01dc42d63a4e65b26a6bfcb9c479198986a3cfdd2c639b4ed21196d179bf9a72296dec1ecb62" - }, - { - "path": "packages/taquito/dist/lib/contract/manager-lambda.js.map", - "sha512": "ab4bcecd7c004048b57ab9c44ad6ff0cb08d78e6ba819306587d2a528729b698d1ec5468c5a097b6d106d73dd1925578fcfc08dd72da0709c26a9431911ec5e6" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/map.js.map", - "sha512": "33d3259a744db20821dcd0142937a7bf4db44599dc5a76cd400a8ce51e18d9e1694dc27ea2058d2f8325a11c509de6cc4a9292a13f8677227ab32e22b69a04d7" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/micheline-emitter.js.map", - "sha512": "ec51a8ce1e8e11f4b5332554fbd175b89811683541b7ac87ddf106963d270dfea8e28906109293c7bcd0f63d0a463c66fac6647b50b27a5662449b365df8f85c" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/micheline-parser.js.map", - "sha512": "b8c27424d589d38ba6d5c5616aad2be23bd44743bbcd5ab0e7d87e3cb4f16a36a51c45735bf8e694841d2ae5a4699da9dc7cbda876a1bc3c529fa52843f41363" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/micheline.js.map", - "sha512": "aa0811ebfa33e72860bf7e15eaadae1aeba198e42cfaf22256f18456c9caa9b5a49c59bcece25ccf84f5cdf9a8a13329ae1dca9bd0d13a80e2766cbeb4bef79c" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/michelson-contract.js.map", - "sha512": "b6af24fbff09d63bad132c34f987784f235be3d964967a29e266e1b3da0ed2dddb4577780ddf67d2f295352851b7b1ad39f164d9e9a70cc31af37c7873f5fb9a" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/michelson-map.js.map", - "sha512": "fa513da7ada1e7607ac30afd9d0ba011f2f3e776d8a49d74bfb2e01cfab8c02777475acef7ac2566c1811e710cf10b0e39dad23159c4658c200cc2872d432219" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/michelson-typecheck.js.map", - "sha512": "3163cfe625fa7e2c85ecbe3201fe81442a1df3961c1685935424219d308517f53a28f79af65672618ae0bebe064438687f1f447b7642dd26cc5d08171e5f66d6" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/michelson-types.js.map", - "sha512": "70f169e4653b21f17d4bffa6741281eac445eb1408ffa77d9e67b6b91ae92dd519ac55ed2311884628be69ac4adf6bf50aac8f0387f33ad45de3ea973ecdf5db" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/michelson-validator.js.map", - "sha512": "c2268d917685ee39e18393a4853a22ff57cab0c8ae9788b0cb6494c564c68dacbc15acb373834345f1c963b60805e15be2543477103cd3b86a12681b11ddb96e" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/schema/model.js.map", - "sha512": "bc8a09a1550381f1d2eaa75374f678e1c27febc482db147d679e46056741e287965ce45427426950ed0a5326ab0432507a664844b4277c4aeae1d3273eb241eb" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/mutez.js.map", - "sha512": "5da59d85126ca23dbf7b2be5819d96440c4c812460a3464ea235ecc40cd4b8092ed465444fa4af07e6ebb9b02ad9ee4929d03be0c195a6f9c709baa282d39ad3" - }, - { - "path": "packages/taquito/dist/lib/contract/naive-estimate-provider.js.map", - "sha512": "d1bc1aa7205045ee92fd75349f6eb2551804ad864a358894994c098e1af8a8550d1c8cde7c9ded25bccee01b71b737b686f499ba9c42dcfc75eae3cc28a5870c" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/nat.js.map", - "sha512": "f38b938ba21f79866ca157000723ed382cdadf24c4627c97815483c8accd9768bb516ddff075297140ae152c33698573ebcc700550b32a4fa6764d7290bde53f" - }, - { - "path": "packages/taquito/dist/lib/signer/noop.js.map", - "sha512": "52d660af748298dd1e8a4cf9d09fc0934cca10f67641ccdcd18233c0333b5cc23c5f849f94b93566b650cc11fff381b6cab5e701d0db106762a932b6691c17d3" - }, - { - "path": "packages/taquito/dist/lib/subscribe/observable-subscription.js.map", - "sha512": "29f1810747d5d53012e7dcff0c0a4072d11e7581a65b65c4568c0ab1f42a5f14fe26b8471383265b8de2c78469f8053acda99548b85d6f6936044c4db359091c" - }, - { - "path": "packages/taquito/dist/lib/operations/operation-emitter.js.map", - "sha512": "2bb1b8cb60c0ab413454384480874860e4d4b85d910275fc4031bc0c2cb6650ca7f97470eec51dc6189c344d53603f4dddeca473b76318ab1075e405c39f0ab8" - }, - { - "path": "packages/taquito/dist/lib/operations/operation-errors.js.map", - "sha512": "b1c5b41b1b6ffdbbe826a398b6ca0be0001e765dcfce6a24a9177733ce34eb386469ef14814fc73963381da504bf6440b70bd6b3d5a9bbea95c94c7ea9b117ed" - }, - { - "path": "packages/taquito-local-forging/dist/lib/schema/operation.js.map", - "sha512": "0bb0ac22a7299a3d24ab6520d5548921fbd1e274bc30411422e17826943f96d61ab1d4de1829129f7fac097a9cc2c2d44bb79a62dced1a7838dd80af575c38dc" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/operation.js.map", - "sha512": "94b3371106426d1f1dd5fadbdd2e45e11c48e43e10cf931199bc728c2839121119b0521c1086837126a318ab126553b8a7fdd8b5f54c7df96607e362324edc8b" - }, - { - "path": "packages/taquito/dist/lib/wallet/operation.js.map", - "sha512": "5dd317cac2bfbb6f2624d38c8c2f96a04d977dc731f887d7f7d4dbff12103adc3fdc1e1588f227243eac118c8224b114809e23b320b096c7013df3a1e5378e54" - }, - { - "path": "packages/taquito/dist/lib/operations/operations.js.map", - "sha512": "9fdbfddbf8741612932c89d7649ebf85567744d18cdb1baf9665c58d11e4e0c840f069572b17222ddc2908cf1a7219d67668bdb2fe80a71237025d55a6b21a37" - }, - { - "path": "packages/taquito-rpc/dist/lib/opkind.js.map", - "sha512": "08c6f08341a04d079da0a7cf6b5d063892f7b4de8ae863725846c6bf38dd01607b750047ec065bb8764a2b66ed1c86bfc6313b4cc3b8bc817d0333b055c27c25" - }, - { - "path": "packages/taquito/dist/lib/wallet/opreation-factory.js.map", - "sha512": "f2c2785f42fa3ab75258293dc6bd372ca6fc1d799db89bf660883d1da4f00d109a2e15d4c386d8bb9ffa18e6aac64ecb0db4c300772d18a978c1ffd7d46ac048" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/option.js.map", - "sha512": "77956b380bf3025a5f87100809780b94fee611062e570d4dffa79c3ca55e4b7685823017675636a44f5b376e3fee5921fb19955ff431c3045fe59ff461e96969" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/or.js.map", - "sha512": "38bc1203e3bb1e398fe5c7fa2c7a691d9d72d1aadb70f93b2d66e389a30c7af650d4b4b5bcbce9aabfbc53b1108b09959a68178e8d66d1276e45b19858707d27" - }, - { - "path": "packages/taquito/dist/lib/operations/origination-operation.js.map", - "sha512": "de829e3a1f00250da246b543c19ae1889bb2a142a97b530aca82c2c258c2c14866ce349834ba3bf17104ff47f374b0b3c5d55a8290685bed67ad30a276fed631" - }, - { - "path": "packages/taquito/dist/lib/wallet/origination-operation.js.map", - "sha512": "d7a915d34af2dd3d901cbc1ad5f0f1b0e786502f5c1ba9ce1b8677c5613c6f123eab57dcd33f8e95c98d3d876bab3033f5077bdb70503daeff31b223d9ac4e5d" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/pair.js.map", - "sha512": "f7c4cbf4510eae7448501f60fb41c91981416c01faacfdaa47cbd056491cf759616fa3f33cc1a0beda18b5db2e8f7d3fd7893c2a70bfbc1f0e6e9a62e70de173" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/schema/parameter.js.map", - "sha512": "5f64cd28842cafebf369d1aedf71b731cb23fe49ef526448f31fddab7b4fd996e3974761dec405dae00259ac0aade5200e20409bb325ed0d71fc3384ea00a122" - }, - { - "path": "packages/taquito/dist/lib/subscribe/polling-provider.js.map", - "sha512": "5f896b29af70fcc6db739174b4aee4d3000e088ff2cf4bbd40f0c3b6ce46f77378d38eace612ddb5cbefc278b3bf367b07d0490a84900893d8241a9849894290" - }, - { - "path": "packages/taquito/dist/lib/contract/prepare.js.map", - "sha512": "26ce52d0900bb5eace8c14ff21a1ee2e20a65d7c2f343727e0f8f9014fe0e8404d1496e08ca66f9231fa1f38922cac8bc6b922285d8f3a35e290e9f649560294" - }, - { - "path": "packages/taquito/dist/lib/wallet/receipt.js.map", - "sha512": "f30e5aa3c5bf7ec79d1a9ea6c2f60742c68d2399e3c88e29a6e1bea2ae0278e0f29130d6660f99b7147746f5fa467cbbc3b5f2b896ce53e1eae52403d3e64397" - }, - { - "path": "packages/taquito/dist/lib/batch/rpc-batch-provider.js.map", - "sha512": "f8c64de62a0e1aa36f2b67ed9961b7f77139001db2d9ac457cff85d2b89f17e6859fb33e4f92a5444b20072c93a1643c3ac1661fbeb1f3ec2257a701569019bb" - }, - { - "path": "packages/taquito/dist/lib/contract/rpc-contract-provider.js.map", - "sha512": "1382b585c7b3fe56befb5ef2ee9be61414f6a09dd509212266bcc1a55a62cb6ab426301e1ad4a67f725c9ee4b917898236512c8f5f9c44630797cccdabd5d76b" - }, - { - "path": "packages/taquito/dist/lib/contract/rpc-estimate-provider.js.map", - "sha512": "6bf0d097dc792314d7c4708a6a1a3f887c95531bcaf70c6ad52fa0ff1c5e6cfa782631c84942cad673831be0546205de6b135651aebd709c2bfb7c01b539634d" - }, - { - "path": "packages/taquito/dist/lib/forger/rpc-forger.js.map", - "sha512": "f0d89efbca22576b793b4a884c5a9b2c21262a0e30c6aa8ba3aae58b3be1f2f3d6bc864b77582b6154fb66c1ae7ef6d0e5d1048d5da7f3a264c82695aa982940" - }, - { - "path": "packages/taquito/dist/lib/injector/rpc-injector.js.map", - "sha512": "ed39239081d61440f0108f37e57e118df633a206e7f68039d5db63df2585204100159a72bba9312e4f06045bb917cf4837a46c0c5f1c141723cf176d659f22a6" - }, - { - "path": "packages/taquito/dist/lib/tz/rpc-tz-provider.js.map", - "sha512": "5b16e26797690fac2f029c7f197eee52b76ca0019758157dc1066bf3e5f8283641db8d65700be365f6e310efd11dfe5135707dda22ca25f4fc2bd9742b24e1de" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/scan.js.map", - "sha512": "c2cc3bf2b9bcd7a8bb6f0f10caf1e6c8915bbf8dc03cab9ce589e28297764818ca018a208c3acadbcba06b5bfb3e49be858a3672da708cec33cc27ffbbb50e5f" - }, - { - "path": "packages/taquito/dist/lib/contract/semantic.js.map", - "sha512": "5063f2ed25bbd1efc79be634ed1039158304a0d8b6667d408789beccb17af82fbcdd6b15d67f78989fa5c148661efd01fa7d2a46e48ab0d517d46f5b6c7d810d" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/set.js.map", - "sha512": "f571ad5660d9820bac0346c5085421ba857e98352bec01d5bacc0aef9fee37d9d5172aefc186b2d332c51c32d1bb935a1c44ad4d65b1865a53058d020b0d38ef" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/signature.js.map", - "sha512": "add2048aff79400974218b2c11a0de1178325372c5eb0afca5cc8f93c46281c35b460021bf49082398c5f50be9400367d232f74d91e12a3ab488abf22804124e" - }, - { - "path": "packages/taquito-http-utils/dist/lib/status_code.js.map", - "sha512": "a438a4c1871950e44fdb9ad48802660e2692a0c5a05ca2273a2d61d301d796aea37f9c219fdcadbc106466aae46387ca5a2cbc1a8d10f4746e627c632d4d6248" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/schema/storage.js.map", - "sha512": "05276bfb929f2baecda3b9a6b4f50693ac97b216c298b15bebc7be85d89f8d37842f1e197f15ba70e4dfbf39e5465e5197a7eba849a6430f3412024cb66052c8" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/string.js.map", - "sha512": "9d859dbbd7961f8ac178db51bd8d982e0900a9c0cb85378c65a519d17725451cf80f5fcea1fcfbfde220685fa2db5c031d7bcc75dc050691d35c272d6e6a7bbe" - }, - { - "path": "packages/taquito-beacon-wallet/dist/taquito-beacon-wallet.es5.js.map", - "sha512": "9717bcc63b3c1541b2c8d73e4b6b272ccd35ad94ebd7a5e8ea096bf9994581aa5a1fc8134d8afedb0d7820bbbe7105a635939c3a301e7c39f2894996d9f3961a" - }, - { - "path": "packages/taquito-beacon-wallet/dist/lib/taquito-beacon-wallet.js.map", - "sha512": "13c61ed3ca05ba74a9dd7ea5093f5eb20614303f01b87ff57289998c9a23ceb5b171faac17f2532b51b911578327e37bcf100daa55f107ce9b3b8928a0952f78" - }, - { - "path": "packages/taquito-beacon-wallet/dist/taquito-beacon-wallet.umd.js.map", - "sha512": "9b7a26eba6c8176a5fc412ed06931aa2eb020e0e75501111f794340d62bfeb9856d8c8692986a57c6faedc633ba549762def5ace7ae64c99fbb05fdb4337561f" - }, - { - "path": "packages/taquito-http-utils/dist/taquito-http-utils.es5.js.map", - "sha512": "11990b8fc9cc0b247265df6c4dc6f7ab0ccdf9132cc60ff1256494d6a696dab5ecfa79587a5bf3ff4f464a746b0a43a26ebe53f4962d5a40e2022264d5eaff79" - }, - { - "path": "packages/taquito-http-utils/dist/lib/taquito-http-utils.js.map", - "sha512": "a927b2114c78f9e62bee20a1759f0fcfac1b2a1ae525daf360dd118fc17d9eb525a6001162f01a84e5d0dbab1c755b533bb0450731ec07f1d6e4ff4e87a8afb3" - }, - { - "path": "packages/taquito-http-utils/dist/taquito-http-utils.umd.js.map", - "sha512": "b8281e67a01c781377129f1c6a8a98193e6c467526459bdd5309b1913fe3ae6ac9724e7ec0051ca26fa0aa27d6b1d7b7da9aadd6b3931810e81a1f7c3c7450de" - }, - { - "path": "packages/taquito-ledger-signer/dist/taquito-ledger-signer.es5.js.map", - "sha512": "92e4b1fc247453a8d6c49a12ab846658434d313626c5449c5a6bad33caf3e5060e5c488d793a43ff0164df35e0ab32ae33e987892ec7c27fd5f04f690d134595" - }, - { - "path": "packages/taquito-ledger-signer/dist/lib/taquito-ledger-signer.js.map", - "sha512": "b7510c4dfb76703ecc317e14b976e65967480c7b6e2157d46859013314dfb48e75ae1e01205e5dea824caa2694176d20bde4ce79c9427caaa1506002ac574e73" - }, - { - "path": "packages/taquito-ledger-signer/dist/taquito-ledger-signer.umd.js.map", - "sha512": "604a0610000f418d83a465903f03f43e54d882ff8e930e4b679c374187ae6be03c69e498a5e42c663ec62c039dedc9f30b65e552c3e76b160770c9398f8059d5" - }, - { - "path": "packages/taquito-local-forging/dist/taquito-local-forging.es5.js.map", - "sha512": "17459ff7cb387f8c37efcace63cfc2c6a4f6ac93c36fc7d8b44d33e9e24a2a92dab7b27e85f2a4cc7039474a0c3ed5dbf80871b6c702addbbf608884fa752c75" - }, - { - "path": "packages/taquito-local-forging/dist/lib/taquito-local-forging.js.map", - "sha512": "7437986cc4686d304e2c1ca4bd96fa3dc73a5c750ecdd7ff426789652f57cde6155faac4c908756237862bc8b40fcde86c9301c9414e60954d6973957ce7ea4b" - }, - { - "path": "packages/taquito-local-forging/dist/taquito-local-forging.umd.js.map", - "sha512": "f002b7812c1b6d023c51153f3941819f25f30d7d6f54723fc0364f0698a3c0d756020118a2a34770526d6cb1bd10ce6a1bd78b10742e83fb32057bf48582481c" - }, - { - "path": "packages/taquito-michel-codec/dist/taquito-michel-codec.es5.js.map", - "sha512": "16308dfa7f6d66aaa84aec970528f6cdf63b20e4839752860c1ec5454323c6127952c0782abb6cd8ec7c3a0e6c93ad7acbb5a8b8e551a8ea3fac564c13a506f7" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/taquito-michel-codec.js.map", - "sha512": "79ece36220a2ac2efcc119c3523c272ebcaa80d0d5ba267db2a9d441165e04520cb3df5227a9d8368a85ea1ba81709902d2a587bb3458eca4eacf06314caac00" - }, - { - "path": "packages/taquito-michel-codec/dist/taquito-michel-codec.umd.js.map", - "sha512": "084a53b51a95d510c68c5f996f98430f314aa1e57d3bcf0bd53d2b23f927de2aed4993985bda90843ff082a38ecc08e1961e326a3daeb14b4eedf1f787ac90cc" - }, - { - "path": "packages/taquito-michelson-encoder/dist/taquito-michelson-encoder.es5.js.map", - "sha512": "725a083077a4ccd555df49be9c8a2c3f8ce64dff8d9ead691b95e1326e63bfda70b17154f0a13c26f6b5f5a618728e82c54b4ef1e81d0d2c3c9b4bd9a4b8752f" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/taquito-michelson-encoder.js.map", - "sha512": "d907be7ca555cf33f18bcf148ba32e6df6d16d8d0b7997e3205a19c293613c378a396f76e424eaa6371e49d04bc61bb27e93d66d58b2da40f30563525f1bde74" - }, - { - "path": "packages/taquito-michelson-encoder/dist/taquito-michelson-encoder.umd.js.map", - "sha512": "eb352a6261fd9c1db40f1980812dbbda53b60397879ec15dd4a257911f338779478608120fa999827080d269df20594f48dc0727e20a475043518b79382c1313" - }, - { - "path": "packages/taquito-remote-signer/dist/taquito-remote-signer.es5.js.map", - "sha512": "21a77be5776e46ec790e4db676297197417fbd7131a4858d396bd923b4a102db173252d4f4eff0d26fd169754f1165f7a356837aac9ec23acba9ec5bdb8a5378" - }, - { - "path": "packages/taquito-remote-signer/dist/lib/taquito-remote-signer.js.map", - "sha512": "1552acfde7a357d6f5b9c250640d599296ff6f818f7affd56cf3ca01a190f753895a9cff909fdcef7cd31a78dacad7f4ef633c67b9ba0dda6fabff20840ca6ee" - }, - { - "path": "packages/taquito-remote-signer/dist/taquito-remote-signer.umd.js.map", - "sha512": "c3feba3fb62c7ffd9353fdaf7366f0c13bf7ef24f7365df22a6f4aaf1cf9725f36119fb3186fd8cedcd0cb3ed735da7286ec699fcb63ff551ef192d7bc330d8b" - }, - { - "path": "packages/taquito-rpc/dist/taquito-rpc.es5.js.map", - "sha512": "e49f0f32e38d9e832f5ff230ba818c32392454f80ce89c34ab28e05e995554879b8dda12a40c9d1fae9785d44fad61787f4fed6fc9ae888739aadacc2a4745fa" - }, - { - "path": "packages/taquito-rpc/dist/lib/taquito-rpc.js.map", - "sha512": "0edd66c4a85fced670d7446f054425ef6fcbcdd45d5cd2b7978807cc32e766069e9bd7dad5872704a70275f8eb9e12739fe560b431fa74c3724ce486310a8a4d" - }, - { - "path": "packages/taquito-rpc/dist/taquito-rpc.umd.js.map", - "sha512": "a348d37d9db699a4a7e5554540e5d04f6b0694d3c8434e2e3cf85a40fd8d09d70dac321d847d7fc262ccb7fca49f33c3ea6a2fda3561714f3b1255bee496ba5b" - }, - { - "path": "packages/taquito-signer/dist/taquito-signer.es5.js.map", - "sha512": "1e2ce95b12e7c826b4ab76b923ea68be2529d481e3e2f7a66166e2ef5d18f69295d042de108e504059b010a0e3bff1e70b49722971850cd6f20c74479c87a295" - }, - { - "path": "packages/taquito-signer/dist/lib/taquito-signer.js.map", - "sha512": "e0f29f97ad5aa7793affff2ac045017324989c68c5b91d0f9e92c31b00fe0bd0df96e1d06f6f59c17225a92c314d5868f2a8669da89d8a89e0c845bc1745c513" - }, - { - "path": "packages/taquito-signer/dist/taquito-signer.umd.js.map", - "sha512": "79d0e8ec713032eb50322836f1703d62ebd23824de3eec47a794bbd0d50d36a8ba552d3685cd0b87f74d006f2bf8d7bfaf67cebd5ca19ee60945c172be3f37f5" - }, - { - "path": "packages/taquito-tezbridge-signer/dist/taquito-tezbridge-signer.es5.js.map", - "sha512": "84052a722dbb6776f9ba9065e1fcd1b0f79d751a7d98ac07a8827d2d43d4cebb8ae4b07c957e35dbbf37e7fc1a017f3beaa9a7a6d7d11ebde5ea80562b1f866f" - }, - { - "path": "packages/taquito-tezbridge-signer/dist/lib/taquito-tezbridge-signer.js.map", - "sha512": "18b24ad31e54e3c4b3b7cb7614bc5231a39d2756147506a7ea490362965112cb5c670b5ec9eeade2a17aa12364a188b32d93be15cc46c6c9849f45617ab711d1" - }, - { - "path": "packages/taquito-tezbridge-signer/dist/taquito-tezbridge-signer.umd.js.map", - "sha512": "131419d4793997e929a4298c3ea283d243f995253f0360896d9700475061813e2c6acde01c856003ffc1ee4d63aca556eb52fb559e3e94e6e76f95fa0cf78bae" - }, - { - "path": "packages/taquito-tezbridge-wallet/dist/taquito-tezbridge-wallet.es5.js.map", - "sha512": "dfdc535a27567a312d9957233265ad718c3c254a32dfc171fa054b200b7e30dde86d58646128d458f8587151575933914821aab07347f885768488edf86a96b5" - }, - { - "path": "packages/taquito-tezbridge-wallet/dist/lib/taquito-tezbridge-wallet.js.map", - "sha512": "ab0f072edc707e99ad2115156791555280e6b6489d00d4aafda3318b6f83f14923cacae6f6baafe828aa099aa46c1bd73b90008c28fa684b1f8faad7eff321d3" - }, - { - "path": "packages/taquito-tezbridge-wallet/dist/taquito-tezbridge-wallet.umd.js.map", - "sha512": "e1ba4c9b3c006c891fb1c2aee36569fe68b6ed3c0786665398e0458c08b265b24d95afca6ec754efa69d209e704d18869002a7d192f184bbc364d1b6c41ec7a9" - }, - { - "path": "packages/taquito-utils/dist/taquito-utils.es5.js.map", - "sha512": "c3f5794b968eda4ad4ccb08a4e9feb7b9869c3cc83390fcdcb3379792b2056d25e39d298f2ffff52c2c1e3bbc63e84e85508b9d9b52eab25016ab053123997ac" - }, - { - "path": "packages/taquito-utils/dist/lib/taquito-utils.js.map", - "sha512": "5cb135f7c142ccc27fdd35da198825ea4c2b5467de7d63ae70d1da9d16f37d3baba2da24e8a35f540ecb47f0a77b162f0f11de7cc8db09c19a210d9ddb42a146" - }, - { - "path": "packages/taquito-utils/dist/taquito-utils.umd.js.map", - "sha512": "30936d516518680089434058a524bed52ba105ecb81c1feaded9b643c9fa866f7cc8d8d075cad5abd112897ddd30c69e044000dea23781b358b0c7e637378302" - }, - { - "path": "packages/taquito/dist/taquito.es5.js.map", - "sha512": "cd573c6b8d66f9a0333cefcb59d581a72955f3ae5f00c71462477e2a6a33baf45c87a79d2b356a1a64efa18bc22595152af98db707b2510aca7dde55c509806d" - }, - { - "path": "packages/taquito/dist/lib/taquito.js.map", - "sha512": "9470f3b1187aca2ae64f3d0ce42dc5ec761064468f06a406ce8c6bf74383104383193b2f2012af8c16681df2f491212a87b332ac58a5ca51878f8d47c9a29a9a" - }, - { - "path": "packages/taquito/dist/taquito.umd.js.map", - "sha512": "ac64a23702d1a2359bca3ea5543e45c84cc7dc16e4ad2f055c19769113337c14c80625ace3cd0b6f66b878fb94585ac0792cf4e1cd033c246469b693718a5fc9" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/comparable/timestamp.js.map", - "sha512": "73c2e0ada997b0508308da2925a521c0990d2961173c3c6651162beb54a30ffa48e41ee6daf37164a12e573a5152d54a8cf77ed834a27570aa8347011914c41f" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/token.js.map", - "sha512": "cf4c1343698f0fe60b5d363cc6213a34f436fc1ff263b674787330e19a86b5dd921aadbe4078495edd26aee7e2a18d901d8118b4f1f365f560c1e59c89abf07c" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/tokens.js.map", - "sha512": "1a40297000fe3fe40cd489889217898f3b0c77288cdfbe37e57614557c34c1853139a4a4d2ff7bd91f36a63d41e309e686a3282824db3b0d5e5d0a48aaf8ef22" - }, - { - "path": "packages/taquito/dist/lib/operations/transaction-operation.js.map", - "sha512": "1bdcc26b015dd3aebe132006c4084045997941dd9e7a36b746e1397212e595ce48fcd3239e0e503d0e1c0b65397e525b59ab887a0adda45f568c85db4864f48b" - }, - { - "path": "packages/taquito/dist/lib/wallet/transaction-operation.js.map", - "sha512": "536c25306e7adda34b03cdffe097b48ee16a17506cb31688d7c50a601e1ac42fa5d78994423732e0623a9e7d80735b900d9bf9baa085b76123c774d0d2961ab8" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/schema/types.js.map", - "sha512": "2c1e28c6568261d6a2340d595278a59d39adb619968d8155229b493471d9fb46ed7186ddd858fe22be4b7a59d0761c26abf8f38efaa2436b07e0dfb31b702a03" - }, - { - "path": "packages/taquito-rpc/dist/lib/types.js.map", - "sha512": "74f2b583fe48066885b78689d02c463274b52b71becdb19f1306fb1c7bbaf63fa7987695f725babcb58a23d772b032877b80340181d70d0b612f49a9d0e3d0e2" - }, - { - "path": "packages/taquito/dist/lib/operations/types.js.map", - "sha512": "3a911cbe4cdbf62a13596203ec99f766ff4c70e3c55b14152ee7db5d0d78b1f788a4a0b33c8427550c60907da9c6f087348738b35c4abf9965fa9f0022ffcd60" - }, - { - "path": "packages/taquito-local-forging/dist/lib/uint8array-consumer.js.map", - "sha512": "24b1c7b895967ae17a103b53065bfacda18081e6395837f8aa6dc730761d66b91748370f79843d8d8fbf91d51f077571c2f555a973b593089b44224e29abfbde" - }, - { - "path": "packages/taquito-michelson-encoder/dist/lib/tokens/unit.js.map", - "sha512": "f498d98dd05ab0a7a5acab192ead3f380c084fb85063b6814463bc299836e82b4c100d5bdf5acdd6c42e31b3a079ef16fea017c827e9f33400b8e601e785a71f" - }, - { - "path": "packages/taquito-ledger-signer/dist/lib/utils.js.map", - "sha512": "fc05c55e7719ad0891f050929b97b39ec03fc1734fcfeebddb4da693a5a587de514f8870c65307a0f29c1459c6387302526942e95ace2b91094d48767a71b767" - }, - { - "path": "packages/taquito-local-forging/dist/lib/utils.js.map", - "sha512": "f744f0d6982cd2a05881b60b8a4b757defccd3c28ffd48b84f327ff2f5908f3af22c9d268601d612825c40f1829828bab88f3bef1a09a0daa7cf36e29382a1fa" - }, - { - "path": "packages/taquito-michel-codec/dist/lib/utils.js.map", - "sha512": "f2e747d81a3b90551c084e5ab44b4ab9b9a32104fd54c02244c2c5ab3a3d4b8e93a680edd7eb6f9ad4599a860b82e740c7ac0eabb76bef1ecf28e89f5aaddfe7" - }, - { - "path": "packages/taquito-rpc/dist/lib/utils/utils.js.map", - "sha512": "f1c37cdece493de301df86245baf12314dbbd389fddf5b870257f979d6d6ea01ea67a9b271c8b8645134c0b1fe0eb012ec93e85ed42d42e350ee6ccd60c3f719" - }, - { - "path": "packages/taquito-utils/dist/lib/validators.js.map", - "sha512": "241dfa50909d88042aa3c67f706423ccf76ba76aa609998217eb5c5fd8c15126aa178ac7e1c458bfc2edf3522d7154787d09c3f579f8be5eeb9704faf8015907" - }, - { - "path": "packages/taquito/dist/lib/contract/view_lambda.js.map", - "sha512": "f6144b96d9345da551b9b93b0b8099a044dcf03a4a80f299ac05818944ab5200ca905a984143f6f58db585b55ed0b814c4a55310f71f62201cc7484d0c6b26b3" - }, - { - "path": "packages/taquito/dist/lib/wallet/wallet.js.map", - "sha512": "dabfb70844028ebc3caf49e2dbd9a1b3937b01f0513530ca4eda953e56707bf95e92752d235eb698d8fb86a1f61168bf7eb03f610e5997ad4790274a917bf6fa" - }, - { - "path": "docs/batch-api.md", - "sha512": "68ca552fa52608fe9b6b1c5805b4629b162f6a7c20dc08a12e0736892f5599752e957e66ca847f7d18dbecaa27954267b75e790c32514458553a598f499e2adb" - }, - { - "path": "docs/boilerplate.md", - "sha512": "6e8489e92357c29f9ca5b30e9579ee1bbf1be6f9e7982f6ce632ff9e64d2b2b81186cd501605509f613702263e1a8428baadf4b2b5afb55c5ccdda888e77438d" - }, - { - "path": "code-of-conduct.md", - "sha512": "3c03b998bdd54ca3378f0236c4a18e821bfd5a84ce342fdfcd34305b4e65f3fae9233308c26f37fbc63e895ebd59da42f355d1bae71df47cae6d576156509a5f" - }, - { - "path": "docs/complex_parameters.md", - "sha512": "10057269fc34a2363cca341c9a68c0b88c285d93aa815c887c0c5438a778c04ca1488b2b582a27b9899e8b54685870b58a4a9e509dbefb4aa287fa5a0b614a7b" - }, - { - "path": "CONTRIBUTING.md", - "sha512": "d6191bd53fa5f70f6aca85a9e3d08fc0744944804492fe863340cdd2a40851bd17b5c5d44c07a57e567b549b00b85e8c768eec7051ae26b3a9c809e5fec173c4" - }, - { - "path": "docs/drain_account.md", - "sha512": "ab77476959f4be930f54a4087854bb2bedbdb8879ab5edc65e07d6d9bdc46ae0db69799237b49c3cf4dad91d9a4f972354a9043865fe63859544e8a1cd2a467b" - }, - { - "path": "docs/estimate.md", - "sha512": "68bbf64f2d3e73952b79f2c073f8155675591fa8afd50d6557b3aef2d9730bf59044f14ecb28e08886f2024dd20ea114a2c34bb33c522fc33be356aea947f628" - }, - { - "path": "docs/inmemory_signer.md", - "sha512": "0a9e6479c7b54b8456237dc69db660ab627f89e8ef1b1d70c897cf35b6735d46a951cbc36a3b2936b67b847e426a304ff2f486aad64ff7787d8a1f78035ca79c" - }, - { - "path": "docs/lambda_view.md", - "sha512": "29947fba5d463802922b095b25234fd5e6582c3b463b56eb861ab133b2e35241c7a2b7bc76c33af8a8f0416ddf38ce225aeddde7abe7e26435e1a2dc3a4b4867" - }, - { - "path": "docs/ledger_integration_test.md", - "sha512": "f92f2f432b2303224f861545368d823687dbb1c85686350a5c090b3621ee21c26a1d594d58dcf1c8945600835adefd7a20aaf424097c9962d0457d9c477d1652" - }, - { - "path": "docs/ledger_signer.md", - "sha512": "59444c08ba35d8a6782c38c06311b97a127c15a28f2cbe50374d3d57c10ae48da7bbe0b92efee7792baec8936ead38e12f978a5f33796c2d177411878a780b65" - }, - { - "path": "docs/making_transfers.md", - "sha512": "05556e3c9e5941be026c68ccf1b26b58a9ae92528adcbeac7f827a1c28975cdffb672c54e9423d0eea26b630d948303ab67483f24668939727349643c87a08a8" - }, - { - "path": "docs/maps_bigmaps.md", - "sha512": "889f9d2c72b09480e6e53ee0054ad45097ecbe72162e22e2d2c5ad20f4fc8a4970fa2a8ad24bf445085989b032f665fda704ee640c469e917c188ed4be3efe35" - }, - { - "path": "docs/michelsonmap.md", - "sha512": "6f299232de9547e211dcb3bd1ef0d9945f6142b9a9dc8af4616a3d909b72b024a4fc495c14dc8923afa20c14dd08c7eee6aba590b37befdf08708dde6930f9b0" - }, - { - "path": "docs/originate.md", - "sha512": "79083ab06b4a3a699c5e01b07cdf762afec1e558200132ecf66573f595454a4a0d1df65691d69d9f1f18e701840bd8320c29ca2ed451182c470375e81b1b7f43" - }, - { - "path": ".github/pull_request_template.md", - "sha512": "247c2c62e38ec5157450be24dc40efa7f5c1e429d9f3e7f7288b4e8f25ec12be5f5dd4006831c466c202e1f8ecd237d850fefa69a489e6ef17ec0dbd07e5470a" - }, - { - "path": "docs/quick_start.md", - "sha512": "294b935c09d8543334cb5084f78c807d1be9663e296dc405af156c764cb925976ed7949b58633a11c556ce36e96cf8ce24808f4b7c9a8507d0725141e285ab8e" - }, - { - "path": "integration-tests/README.md", - "sha512": "eaa65c364950c259571bc26ef2f611073578f592d29c2e9cad76653e0c3535f25d4c1e49109d9d758ef178d39c46983e87c63f5ed0f617255e6ecaefb88d8bec" - }, - { - "path": "packages/taquito-local-forging/README.md", - "sha512": "6e73aa298bfdacd2a379973b68b207ae463302821acabce9a29b26ec2fda01248163c4dbbededb96e6cbe4dc2a4b0f5fe582b65d2e3ade9ce7bd8bd387a36ec8" - }, - { - "path": "packages/taquito-michel-codec/README.md", - "sha512": "1897105d9f4a23fa1dc08cfcac5fc753dac8b9fbe7c9174b1cb1b09bf225c87886e46a009dd46f55530b3549c62eab135f0f22428e8115ea8406dd52782adbcd" - }, - { - "path": "packages/taquito-michelson-encoder/README.md", - "sha512": "1a6b28e62c3b5bb876369ede8580d5dc919f90fa009c7ca09905273056280cdd2dabf2b72a8ef34b9a1a53594d8e085ad0f687e9947292a5deb9f8eb54e3a2cf" - }, - { - "path": "packages/taquito-rpc/README.md", - "sha512": "b36cb4ca675118a195dc72909bb47a45fdc7e6ace50d764d3647c25ae51a0afe01307d835bd76068c0c2d6c15087382f2ec40dbc5a4e117a88326692a4d530b9" - }, - { - "path": "packages/taquito-utils/README.md", - "sha512": "c490ab6c91154a3a4364f45fce93659a4338416b811d15c0ea550026c2478a58e5135e7be03708988497459e6c792190bde62e51996f1652596471cfcdfda20a" - }, - { - "path": "packages/taquito/README.md", - "sha512": "ce19929ea8883fdc2db1a84d36c959d426b0d799ecda2c1ec80ee0ba4b8abeaa13f2ace46670e2742aecb70399c1bcc91629ae83317412fac1984842445cbcc8" - }, - { - "path": "README.md", - "sha512": "77ee3582a46996f84d8a1fe83c50a41d0ec340d59ecd7b63c3711ebd2843d6fef08aaea6d0f8f5ae73947d230f66a70db86039a7c6e2f1f10c6cc33e3b7989f0" - }, - { - "path": "website/README.md", - "sha512": "b212361c2330029944918c9f055476f5e1d0fd52d04c56f9c2a927ccb3b9e4fbe47abfd9fc89a44c8f18d305cfc45f47816f4b3989942c9fca848689504017e2" - }, - { - "path": "docs/rpc_nodes_integration_test.md", - "sha512": "348ffeeed6c5f7ddfc7e61adc1a41ca2f6a9a93199591835be3a4746ec1dbc8fb21454a583797d34765a4e4944a57310da0366198042849e2a6c76d996e6c110" - }, - { - "path": "docs/rpc_nodes.md", - "sha512": "db21ba31ea6443b3227f8356d54b4fcc480333aa9172fd4ed438cfab8f8b8d76f9a2ea75b0e7559718ab5ba6f3366ef8e1877a63316ae617a2c3eb604eae62cd" - }, - { - "path": "docs/rpc_package.md", - "sha512": "d35f9309f6045827d1f9111ddaf3845aff9591eed94309846e2d9108639f826603539f13f64846da98f398882d6277ddf01fb3bd1494b7aad23f2dab4a20f791" - }, - { - "path": "SECURITY.md", - "sha512": "af537538e9dbf2335d1353443d595cc42fa948764269ea36b25d6f5c735b1e05636271b032e2ba4b568b1cbb03cdf7bf2d49107b65f3e0c23a72524f7140e3f8" - }, - { - "path": "docs/set_delegate.md", - "sha512": "0f1b936acc27dbe8f77310eb013cbe2ed6a658fd29ec7ceb678b9c6fc2998fa15be4f729a1b48743314d96778933a6b2ea952af76df226d2f4ffe15762ba5d1a" - }, - { - "path": "docs/smartcontracts.md", - "sha512": "478338e81e05e22562721c4a8079b056c5bcfc11cb8e9ec7045e1dd95db1eb3ac88d9b9c60cbd54cc0963be2610f326570b2bab979fd87205453a66001248b24" - }, - { - "path": "docs/storage_annotations.md", - "sha512": "9c551482ce9b3f79e1e99a5029f24e37178466c0c7e5d92f9aca181b8c4dc3f6c0573fbebf2231edd34a0cf1e94f71b75235ce24b2807e6ba32f1c8e5668dc30" - }, - { - "path": "docs/tezbridge_signer.md", - "sha512": "f0a1cd604f99d90a443cc892d0de2524d6aaa5dbaa7eb582532791042c04080f63317bd0ee11d174ff323e04c74ad0632b1bef9a2676037dc2f1b67016c9921b" - }, - { - "path": "docs/tutorial_links.md", - "sha512": "fbd59e3118c6b5b49082a7b3039ebb7e66b601a6c875703cc256af434b463133c48215ad107ad579165b4e73de89eb45a3e9f8d9645419209f92b7b9b6b0ac4d" - }, - { - "path": "docs/v7_breaking_changes.md", - "sha512": "21f90cb414367fcc85668401e326d0183765e9852c8b37ac7abc1eb53fd6cf56e13b19b0733a7e1e050430ede73ec8bea5e7e2e64763837a8cc9287e4524b2d9" - }, - { - "path": "docs/validators.md", - "sha512": "70ce0ec4073fbd5295e7b783e82bac0207ea7d3325c9617e85880214763682002bf512c9667b1d811a49cd0ca5a5a7d13b4bde92ef80fb91a374adf61f47e1c2" - }, - { - "path": "docs/version.md", - "sha512": "9c1e2eda0a24dc698e6583e62370f6502b74a5cf4333f1d6f624b600b324862951b681692dfe8cfcbcba73445004b07a50a3ebeb756f88f8fb529efe3f2e7c0c" - }, - { - "path": "docs/wallet_API.md", - "sha512": "5f8397c3c592f036b1f4b21b62b1d6426f9b13bfed4520af637065396f3f3250ab3766df76ed59fe3c5acb4a43fcc2e0f3b81169d6651af2a2b1948f62d63788" - }, - { - "path": "docs/web3js_taquito.md", - "sha512": "40235ddbfca0bc5ea6a8826ad31d8e808611188ebc809fa519ae4d2171b6af9896f9de678fb87f3a57d9bbd224a12147e214d843713ea5877ee0c74763c1a357" - }, - { - "path": "website/static/img/a_taquito.png", - "sha512": "652a0770ac537709ff6c0df854c9233f11b5ab8fa6c4441f94cd686b9a645257ea08118014e61695aef0115fcd102db297d51feb73b7126ec1072f45d2d9a4c1" - }, - { - "path": "website/static/img/boilerplate_screenshot.png", - "sha512": "0e75d8b45c5284287ca38bb0529f94f424e2f78c553bf9eb26e75cee2b81aaceee4c9f64b11194181772e9d398a3b1a6c3e243e11b5713b0927cbcbf89ca73ef" - }, - { - "path": "website/static/img/cii_badge.png", - "sha512": "5c5a9885c3e956b66ffeb9a7c8b3c18802f85acae956eaade98ce1a026af2ead1a737986ae0d78806ba49aa3a2de2c95111572200a73ad065405d21185fc39dd" - }, - { - "path": "website/static/img/favicon.png", - "sha512": "b51b286090aa06bb8f2b7250383e07d36b66461287f24b3818f7b80e7bc637f786e7be60e8af5a79d7e09080b1914d6871d0ac593fec2f1f920529d759d907da" - }, - { - "path": "website/static/img/nomadic.png", - "sha512": "d337d7380069cb4ab26dbea2c1ad2bdc38a199a7a0697ad99ba18a3a2f446e7c0507b6bdbd9671fcd97c2a6e224ab9cc37087e3ca129330962b8c35da3fd28ac" - }, - { - "path": "website/static/img/Taquito.png", - "sha512": "867a6bab6c70ccf6e2e6a5d810c78f60ea1030633de4b3e410990594e11f7326a2c71580898f18e174dd2f4e1814613d9f1b07abed9755b6c36a7005aaa2e195" - }, - { - "path": "website/static/img/truffle.png", - "sha512": "ef42596fbd04cead1caaa36694332ef9759b358c847cff8cf8147ce158a1f79a65880d753c503308d4169909954266d6b48dfefff216d1a45e07204e05b26bc4" - }, - { - "path": "website/static/img/goal.svg", - "sha512": "f124f9df5e0e97d856b1749ca57ca83ca989eb7e10896da9e6bfe59bdfce1f9c3c388cd54780e370aee00ce84e7443f76a49f96f101f2268c763f4f651f597fb" - }, - { - "path": "website/static/img/ligo.svg", - "sha512": "44e7530f7f376ded3da42b6823f8ca702ca663a7293fb5c0c87fbc61c8e7b9066e3d5114f627c99d400e77b9c783363ffb125bb1ceda43a11e04c09013faa9e2" - }, - { - "path": "website/static/img/suitecase.svg", - "sha512": "f7d1edb08f714ea740797b3c71c241953d02e47084c97e0aeb431ebdded39f26636eb8369da64f7ae3b7329970abf3537c888aef8e84c5f64d629fbec5fefe27" - }, - { - "path": "website/static/img/tap.svg", - "sha512": "533f3da367ed654e6feb340e2bc417f50e149e374e65222031a26b0dc46d5bb36bc99873155ae95e9694d4b859c03365ee4494c4cb80a7b9db1ca5815c8d3da0" - }, - { - "path": "website/static/img/tools.svg", - "sha512": "6efa36d98e29fa0bfda5f378090e4bda1565f77e92313106733dcfa19f459ebeae7897b0109a8a238aa2f818b1c49ce73a487d64b255cb5d1a07fe4f5fde141a" - }, - { - "path": "website/static/img/tqtezos.svg", - "sha512": "944353b2dde43f07123510c67e06dfb0f67ffc4560265127358acb608899f4970716863b789d4a1b68e2a26625942d45376787ccbde43c73e0dbd62b0af374a2" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/comparable/address.d.ts", - "sha512": "3dfe4305c11c31e51d093c3371a448f60b8feab9b5b98e011a1cc68b144d4eadd148bc7e93e411e602207184186a25d2a5cf47d44b68f0a2852daf5ccdd2fc2e" - }, - { - "path": "integration-tests/data/badCode.ts", - "sha512": "89bb0181ee5b6b82a3401057a638b53477fd0f8497156d5837731bf1de52a358fccbddd525dfb5990ec15c9db9ab739ad4511c5194e824ec62ddcee25e735a4f" - }, - { - "path": "packages/taquito-michel-codec/dist/types/base58.d.ts", - "sha512": "cae9e29223d37f6b49677e3a368320cedd68673205ad3cfdf8aacfce1facfbb50bbf14e3fd5708e7c6fe900b52e5866ddb090a6e16118177bc698baf1b531d99" - }, - { - "path": "integration-tests/batch-api.spec.ts", - "sha512": "c31c7bf12ff06823f8bb754aabeae8f36013baad1942a7492e6b5c5f002b9998ecf07773a75218d59689a35ba8c3c250c6ece8ae7c71a2f2ab11f91ac50c2233" - }, - { - "path": "packages/taquito/dist/types/operations/batch-operation.d.ts", - "sha512": "ebb4a2b74c71b04e3af30259d9edff60ac82d79f87b8fca010e39f737a12b088d9f46d01b09003dbd9cd9e101db40e7432764f4da68728f0d66eb5ae081f3615" - }, - { - "path": "packages/taquito/dist/types/contract/big-map.d.ts", - "sha512": "3377bba76366573c5a2ea3ec72eb5a19af95526227a704080820263180115017de9ead361bb5486edb4576a97d09954a2af64d97ae807a4a68d374252ab2752e" - }, - { - "path": "integration-tests/data/bigmap_with_pair_as_key.ts", - "sha512": "f0d5efcff9937eecbeb4f50cb0067d3a0a96fa153b71b195612d6901a9963c14553736ead882ca38898953abf1c62897abe6bd44e6ad85d16e9ccf9dcc60bd14" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/bigmap.d.ts", - "sha512": "37a555337290629397ad24b6164fee01266e6b589c2fec6551223a24fb8c79b0a90ecad8776cf1e714eb00bd9f76b827563f9d6b47f5380c22c1299624795546" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/comparable/bool.d.ts", - "sha512": "ba9c296167d3df5267b9869399adb42896ada129239a2d3f0c09735a9f61e044e336ef96d38afb0a062fcb5bac045f07fc0c7f3ac80d4eaf1038d7e5a377de27" - }, - { - "path": "integration-tests/data/boolean_parameter.ts", - "sha512": "ff3ddb5421dd2b1385f55b8b796ffbbe24d53fe9a6c8b0830de3a75ea49480573de45a11dfc25797a57f0eabc3aab57de29f9a4d8b4092712bc32ea746ebf7c6" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/comparable/bytes.d.ts", - "sha512": "1ddfb9ea5401a88707ac776533ffbd5c1764267e1f0e21b3c4f1f2cf7d45490437e35bdaa1751d5a1a2904e575431bcec05fd09ca3659f9e3e01afbd406ecda9" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/chain-id.d.ts", - "sha512": "7034717c2be427c90ff1af41ee1f3211da2f81298bdb372dc73f4a7bf653b063f183ac3a7b46cb6b256e2f61e9a7cfb73cf79b247b2d663612a9bfaace7463a1" - }, - { - "path": "packages/taquito-local-forging/dist/types/codec.d.ts", - "sha512": "af3bebcf50f61fa27611a64741c8f27fc88428d36a215150ad90ed5f475147870e7db931ea6fca699e07e60a5f971933fd4511734ff0be33c43e1889ff461667" - }, - { - "path": "packages/taquito-local-forging/dist/types/michelson/codec.d.ts", - "sha512": "5d95634ba9f34fc1697a2d9ae491bbbf0453f3af6afa9b921364b8219cd898b7946582f5d8989dc7f88c84b02a5c902082f97b5bc1a9beea77255ffa745741bc" - }, - { - "path": "integration-tests/data/collection_contract.ts", - "sha512": "aa8ca7bfe7cdbe3db1cf2fff5379ecff12bc6d5ac98b1f1ca4e13a7168855da97029dcd0d235de5978cdbfebe0e2858f375c7abc1cc23fc15e9a6cb598e3a435" - }, - { - "path": "packages/taquito/dist/types/forger/composite-forger.d.ts", - "sha512": "5669b79d7f4fb327c9e98d8272aeabd02430e47d2e1a5141865ff2e44105cd3f813f89a4a78aeade84cdcf0c344f80387c8e883fe5f3b724cd8ae2a75a91d265" - }, - { - "path": "integration-tests/config.ts", - "sha512": "62e17450c07883667f992b9dd7d29b44db116fce0d0e7180ff10046ca1cde4e78fe1f239577aee46224d40db76477a56e45adc2b4bef6d51325248dc6a490916" - }, - { - "path": "packages/taquito-local-forging/dist/types/constants.d.ts", - "sha512": "e1cd208fed7045dc8e7317be040d2a8279a02f291526095980caf521f6f3ae4747655666d577a0a1199851f66cbb73e3f76f2474ebfb4e5906d930426f100d8f" - }, - { - "path": "packages/taquito-utils/dist/types/constants.d.ts", - "sha512": "649a276e336facb6ee335fdbb9cfbbead96b09a707ae3cab5d068c6263351d632aadfd76200cd1626570066b3f2980e127c619b4c999ecaa7d8fdcbf65751ab7" - }, - { - "path": "packages/taquito/dist/types/constants.d.ts", - "sha512": "9972b3a734736289a501f5118c06dd0ab8c5d11e3b2fec3b53605a3eec8367b2798d0d28d1afe9d98595c98b81dcbe1574b4659393cd4a8c84aa362325e653fc" - }, - { - "path": "packages/taquito/dist/types/context.d.ts", - "sha512": "2223d98134c9b721a349a179f0ed622894dbeb7f3695304d4c7fdf2c15fe6cf836476cae2457dc6c1c711904a89b7594b536e2b95a82d9a74625fcbf2c094591" - }, - { - "path": "integration-tests/contract-big-map-access-by-index.spec.ts", - "sha512": "77c7d568b62ef08c785c2c2621e2c17bed5fff132b1e910e2a0a0380f1c2f37c15ffa30db7215fc99d10a34d15f78fac66f627bd6726a501956a30c4325beda4" - }, - { - "path": "integration-tests/contract-big-map.spec.ts", - "sha512": "cad44a45d88bf50e7ad5a5f268256b3dd02292cf0d6055f948631ae4e5812042da18a5e37d0c42a01a5192e7e3f9ba0c7e567861ca0a7ea7c6d96ab69cdb59d9" - }, - { - "path": "integration-tests/contract-call-with-xtz-amount.spec.ts", - "sha512": "dcfdf1d50aaf3562d09ca026ff4a1a3ab44b92ae4eb1a3f692afd64cc7a0f520834047a0d218b8988aa6782cd89b4f774fb557de89d92005e667dac489b8ad15" - }, - { - "path": "integration-tests/contract-collections.spec.ts", - "sha512": "ca9a21c324cfeca951f0b1ee347067171ecddd9d7807edb13a67d26d71119dbc717948e05f4f32de83c8a595ab8cb8df87b2769deb6b61987dbc5ded5c9745f4" - }, - { - "path": "integration-tests/contract-empty-delegated-implicit-account.spec.ts", - "sha512": "12d847c42e2fa1b7c6b2285ced211a915803588ae04a2a936eb21cded4812f9396a96826ec7e0eb1ef59bcf914d6924377567bdf4da2ed344343e6bb48a70c06" - }, - { - "path": "integration-tests/contract-empty-revealed-implicit-account.spec.ts", - "sha512": "36b24759f461a2730f68e6eb95fd78acf65dced3ad4cb7bfa7d3044b5b6544f58e999604dedcbf161c53fb870cff9965b567bf6cd3f335ceec93656045bd3377" - }, - { - "path": "integration-tests/contract-empty-unrevealed-implicit-account.spec.ts", - "sha512": "60704b1212c13ffdad8b2e6e8a75d4b7086b39bc60d9833bbda528220d88c2c6bf125ad3c789ebfbdc280eac8987aac640604ca135076e471f5401409a32cf4a" - }, - { - "path": "integration-tests/contract-estimation-tests.spec.ts", - "sha512": "212095198f79013b1e7e1014442c04103a50807a68c28f5301705ccb41b9f95a903531c3efd8884e55e9ea9fea7bd080eb9549b4453e0a3a8ddad8a14c1f3f81" - }, - { - "path": "integration-tests/contract-failwith.spec.ts", - "sha512": "1e0b8f02e6d32c4ecd444b6194fc0e65ac671ce7435c877cb47bea0a16404566680579050b01ab3899510df0f09a84c79106a81045770bd2150f1e979e7fcc13" - }, - { - "path": "integration-tests/contract-init-with-empty-bigmap.spec.ts", - "sha512": "9836a380ceb7322f9002bb0ad2b24cde5a75732d433faf96b6a17f5d698f453d0ec2d6df0cd35ab8cbec384aa725bddbda6aa412113ef272148eb12e3c219308" - }, - { - "path": "integration-tests/contract-ligo-increment-contract.spec.ts", - "sha512": "cd3f6e0a325f952be31becb5f8e777eee0db312ad06429892d36d005632eb391556cf629fd1f8abc466f8d2cfbf8a84eaa45b2e20aa44be99133ae34624eea0c" - }, - { - "path": "integration-tests/contract-manager-that-calls-failwith-contract.spec.ts", - "sha512": "7556bfae1a7e14f5cc694c3b1972fc086111890e0d1c88d14b793312d98ae5b34c98b791d22f11349aa86214eb4ed39470c0ef036954c47432a256943e2bab8a" - }, - { - "path": "integration-tests/contract-michelson-origination.spec.ts", - "sha512": "63f8174e325ac133d40d0a13d95a72c0cf86d7033c17208038a62c2ae925162faea928d6ad361e2809339109ffc6e47041595dee1c9a53d52dec1f2c925d19cc" - }, - { - "path": "integration-tests/contract-no-annotations-call-by-index.spec.ts", - "sha512": "9c52248e70baf422b01fe36a14ce86405d88094e6bcaf90ab1b881191cf9cd003c3b87f0daee4142c2ef44845c573ba161fd2398b6887236d46edf0585aff47d" - }, - { - "path": "integration-tests/contract-originate-contract-with-bool.spec.ts", - "sha512": "c82e829fb91914d0e54c19be715d834e6936d9bb080852d5f28ad149c426e1e0db52978c35d49c61b3bf009cbe0377045ed938ee458996d29078715eac0addb1" - }, - { - "path": "integration-tests/contract-originate-invalid-string.spec.ts", - "sha512": "9b5fe1d5b07f5f898c2c68763e6f1b6ad00874cb15cbbeca2ad215a469fd6d17c5d8ca3eacab5a46146c976fb0f7d22fd90167adf67a001cd688dc7658fc2c40" - }, - { - "path": "integration-tests/contract-originate-token-contract.spec.ts", - "sha512": "11a413367d34a9d9d0c7ce1920cfd90010d12510ec16406fee80e0ac1e89ea58113f377320b5bbc49e282e962cd6a11684a975323730f28d09b5ca7fce334031" - }, - { - "path": "integration-tests/contract-originate-vote-contract.spec.ts", - "sha512": "2b41efd59bde389d74f42af1249d7378a499e31e7c7005895ec411ea15f95802a06a522ccfbbec0621e0b113d8b688291f82cbb6ada431a6781cede8a61f9b4d" - }, - { - "path": "integration-tests/contract-origination-wrong-order-code-porps.spec.ts", - "sha512": "808d5d9f63611a5c29d7e5b0490a4ce1b8729621ba2a2cc5dc02f8b6f46e1b293b0538f86474fe0342a52a7f500893569b94eacd2d0e29879fd89dc143c159d2" - }, - { - "path": "example/contract-origination.ts", - "sha512": "f93c6970eadc2bfae815824f65d79f098c93f9f2f557559c07291b9debd79cbf2caa787bf8f91b4390996c8416c0f39856e5013aec518ed7d6cb4b7b57699e36" - }, - { - "path": "example/contract-origination2.ts", - "sha512": "0b65f9828ec8432b04b65eb55b7e6a580fe0d95275821b5cbe04b2e6730920632684cbf6afec7eb87f340650e0c56a38e285a2720533a24504e2255ac0830329" - }, - { - "path": "example/contract-origination3.ts", - "sha512": "5c71f610439201d13d4fd0c80a206d8331aa0405762385899e7af17703d1c86992021056728a3cee8119c6a0211ee0305fa4640af8d8f2e1c6a4a68900c7f5bd" - }, - { - "path": "integration-tests/contract-pair-as-key.spec.ts", - "sha512": "dd5b802c79a741d0c4df04753a7a51ee736a33dd21c9a97db45033c41e2424628dd4e876a45f8b202a8fc6b95bb9acc64da12e56215dc35481badcd6d64b8a68" - }, - { - "path": "example/contract-schema.ts", - "sha512": "86724cc33f6a5bafc4b9ad98d07f624f8931c9594eb5674cd2ca1806b470121677639c529d9daee08141b76165ecde28993a950e8a513572ac37b2d1072f56e5" - }, - { - "path": "integration-tests/contract-set-delegate-auto-estimate.spec.ts", - "sha512": "8c8d7452c78df7c944a2cddf54c81c7abddf7bbf5bd3b2912d29f78ab00419df4fe86b8a9704722d97fc5307dd50adec21294d3754f53ae4fa3ef8de0eb322f0" - }, - { - "path": "integration-tests/contract-simple-delegation.spec.ts", - "sha512": "eb0c6f28b3c901fcc81c3239f34aed3e48dabe3123dfacc4d34f7244df6b2e0baf6f082251c46c0148e4eced7c61773206209bdc4855d881b94dd93ef020616a" - }, - { - "path": "integration-tests/contract-simple-origination.spec.ts", - "sha512": "50f1ddd1c40bd77dcd79599cb2d3fab88e800301e8930b72317e3ba68552acd341d2109698a2e9cc7783b0a7db342fa7bf404095968f9ff23c4e86d51fc6ab79" - }, - { - "path": "integration-tests/contract-tx-wait-2-confirmations.spec.ts", - "sha512": "f52ca82ef09bda81bb4d084d694d4daf413332aaa74d6d7059aaead4fc9af98540d5fe78f8ad035c32d3700615ddb97c965daca3cc0eb1c9b96c035a21f3faa9" - }, - { - "path": "integration-tests/contract-unit-as-param.spec.ts", - "sha512": "f6edbfd516777463a99f978377e01ae0cdecc61cb12fb33d3bb6854cd6941aa8216a3b8d96f8e21bf714001b83289cf378f38519298fc18e14f366c2e6e9367d" - }, - { - "path": "integration-tests/contract-with-bad-code.spec.ts", - "sha512": "08e43ab46c600dbf3f3dbc0968e8698fc84f7b874fdcfe8dae18822c3cd12021eebdf42eb31adf13ea62d1fe827425d11c86a7baf3e204377479951582f42778" - }, - { - "path": "integration-tests/contract-with-bigmap-init.spec.ts", - "sha512": "9f09d5f2339ee635cbc524e21f1c425babec50623493854d2c432b82cc5cc3cb424f4a00c1f6e38d2dae7f37d7f6e147ac67c6571db94396c47de3ce224e265f" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/contract.d.ts", - "sha512": "430517c6834480f0bab37d94ce57befcafccadb234a95ed14050068e7eae68826fbaa1536266ada32c047fc73a9e36a928c2cc8267ee8870bfadead4264d0ce5" - }, - { - "path": "packages/taquito/dist/types/contract/contract.d.ts", - "sha512": "eb3005318d98f5da7b189f883b6d9c0284dd42f12bc5489f574e553ed25a0c12b2d98c0eb677fe2bcc0633aa3d7ba131120f7548b20b9ee284a30271ca2b3456" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/createToken.d.ts", - "sha512": "66a9e63f059f34ea5477646f641bbd994d310948ee184998b8a36d04c5f53858f1d66d0660aad7cbf10262adf6e83c838c24874ee343d03515763b90effd788b" - }, - { - "path": "packages/taquito-local-forging/dist/types/decoder.d.ts", - "sha512": "5be0731e1a5902328f417008edfd28a1f8ffd58becd789a578a69e06b6036b03e76943c2c809f10e827c133061951e7f9cecadb2c440810b42340d9668070ec3" - }, - { - "path": "packages/taquito/dist/types/operations/delegate-operation.d.ts", - "sha512": "80395735bda83d72cd609157d42e86f8126d9ea99ac335843c9ed6d8dd69e9294d4129578d0077d38445e7d2c250761d8d74870f99edb327d4afaa3656b1723f" - }, - { - "path": "packages/taquito/dist/types/wallet/delegation-operation.d.ts", - "sha512": "f0ae60c28ab3dcf16a099cf31c7b7a2c0e28cf234d9a4ef5e31a3ec3f2653ef13c9ecdedee7ab67470f21eafeeef5fcf12e82718a75e8ca7101a0312eaadd480" - }, - { - "path": "example/deploy-lambda-contract.ts", - "sha512": "d94a5f551529949c4828b7fd7591f848fbaf4b08be532c1aefe90459a864d440f16c5bb945cf6c2f01b86f40e634bf97023902bbf3fe23ded2f4b3921b19d6e9" - }, - { - "path": "integration-tests/data/deposit_contract.ts", - "sha512": "069ef7a5cca4c282b381cecbf68423c3793fc064e3979523e4d1b558446150759cca0d9b611084a5a53c4655853b3e1192d7f1810e91c1b861902ea03a0420b2" - }, - { - "path": "integration-tests/data/dexter_contracts.ts", - "sha512": "d920795bd4d695ff26a1a2723446b3c83a33cb665f4ccd893f1f7efef59ea2a552fa1feb2d44906aa38ce2d5b28b2ced4acff523aa0516eeafcbfe675625ce42" - }, - { - "path": "packages/taquito-signer/dist/types/ec-key.d.ts", - "sha512": "9dc9ac5c6e19fd43ad48e6b1db540fc9100f54aa62af7f6c4fe523bd3acaedd501856fe2db59cdc62398202d00e1202e07d166c2382eb82e4a1118c89643877b" - }, - { - "path": "packages/taquito-signer/dist/types/ed-key.d.ts", - "sha512": "3066c9c370fca305ef23fe3ce3443eff385f0b47713d7c31659fdb8d5cc0bad6868d21b831f48d3873b0c5e8b60284532ab5d6c1e404b6d43e4b2ef6ef7f3add" - }, - { - "path": "example/encode-michelson.ts", - "sha512": "d647eaab1b42680bc7b8e1a24a865c4f3f74d6538ebc0d553d7f236e3331b2c24889c2e02143a7f016d8de27186c6881fe27e3baa829adb5d59f5db4dfe1b09d" - }, - { - "path": "packages/taquito-local-forging/dist/types/encoder.d.ts", - "sha512": "1f1ca08dcdab427a028ae08926784b7ab575a18a06e08e3b40e06c3a36b8022f733abab5ec08c3978e96c019f8f187334e2c97ff39576a8aae805cbdf4b1e3be" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/errors.d.ts", - "sha512": "2f110a57eccfcb8ddfb71bb58b92036fc5cc8f3683c20cbf5eebe506afad63eea947be615e55821558a25f9c7cc1357a36c7244c3053388b3bcac3d14b6e44a4" - }, - { - "path": "packages/taquito-remote-signer/dist/types/errors.d.ts", - "sha512": "420fc912e7087f78e96fb40aa494c428fd405910c5d4ee718d0ba038abb46539ff0a3c1d9525f5de0a45ed3ff932e60bef0503dc83f9eac78d12f44faadf7a47" - }, - { - "path": "packages/taquito/dist/types/contract/errors.d.ts", - "sha512": "31568915089388b0011da64c5050289d69ed3ae325f584719f652636bce45c964d81556a9ee9be4fce86798aafc266f7fd997002d21e8c702850e52f9d40158c" - }, - { - "path": "packages/taquito/dist/types/contract/estimate.d.ts", - "sha512": "f5c74cffdda9a25bf70ca8da11096c36a5f1576f3af1cbc682538da706ef403fd078165c0178452c8bdd8278cf1ff6f676be66c53e6ca34e2d7bc1c0c2e1a0ed" - }, - { - "path": "example/example-activate.ts", - "sha512": "5088ee78f78f3a4a08494e0cc8216118c33d9d712bad713aab97832468f9c8fa0817717fb29fa34c4ea6ac4ec66615811b4db13e83fe3aaffd889bda2cd1c43a" - }, - { - "path": "example/example-node.ts", - "sha512": "6e3b68aaff2026dbad071fa36d0f35729ad51c9ba44d5622a7def92bc314a57282fb11d36d68f4ee76b6987a248e77c8d073ec9b5fdea9c7d542f5c3fe02f19a" - }, - { - "path": "example/example-streamer.ts", - "sha512": "bf61e79ae9ceff4bbe696f4a13888c7fae485f4e835c3fdb0030d64f7b8f16a08404830496e4576081f20e7d848c1bae32c25b3da3cc45a0294cf05e26e54e24" - }, - { - "path": "integration-tests/data/fa2_contract.ts", - "sha512": "e269e91480e2620c566c255c4d939abc20adcac1a504acce98c194c0271e21df744dc63ec5607cd5b44511c2c7d624bb98736d27082e4f5573862e4617f87abc" - }, - { - "path": "integration-tests/data/failwith.ts", - "sha512": "3b08e90c95f542ec5bdc03150ee75dd5c992d1f96dbe71972929c2bb5b3962d948b2f2fb646ef59f71aae17cf2ec1b5b1103a705e1c797ef8953087190e7d19a" - }, - { - "path": "packages/taquito/dist/types/subscribe/filters.d.ts", - "sha512": "57b603e7516d2a45f985b74dd093109a17959fe4e7e9da0feff832ef7dfa28e4e0ff4fb0f5090bcf7fd69cc50ad01c2119172b2544e7cb7ec6f16c34ed538a43" - }, - { - "path": "packages/taquito/dist/types/format.d.ts", - "sha512": "87f3e92f385e22f7742000c26ffeb2dc16cf88f4966fc936124bab1fb384644fe197c62eaa812be79b5f24988d190981fdb95a6c818cd46acd91cd8ab0de5275" - }, - { - "path": "packages/taquito-michel-codec/dist/types/formatters.d.ts", - "sha512": "d5b2a6fcc1ed59c26750e8f3f07f55e7ca162a3d043cc99ad50d91315d42a91093a00d2912a12f19d512729c40750c8d1f0677a04821e9d2640329600ce2180f" - }, - { - "path": "integration-tests/data/id-contract.ts", - "sha512": "9288330e53886d81f309247313ab22a83b4e409f9641eb6be16472e9bf6c4c53a70fb5b27ebb633fd0a6c098a1574aa2f87ba22e6712072266441fb1bfa0fc0e" - }, - { - "path": "packages/taquito-signer/dist/types/import-key.d.ts", - "sha512": "95163b26030a90d4fdb6d76dea71c490fcbdcf32e7aaff11486ac52e08a74cd6bda2305ce81d3179559ad70bf9668273ea5424efaf970c03b852658b2b2fd9a1" - }, - { - "path": "index.d.ts", - "sha512": "94b1fbbf435df2293dc7c37ca0d248a952c0c79ef5db68b30bfc7ea10aa1d5781cf927f6f961f8b106c1ad246dba390dec75d3562c7386c968ccbb9ec6a504e5" - }, - { - "path": "packages/taquito/dist/types/contract/index.d.ts", - "sha512": "6d80630154eda17c9f06f38836d22caaa5e4473fd71c2cfba380a7df9464043d2be9a29935a90c24255f46a15df07dc8bc0475f47b20c2966408bc6e72f8a2a5" - }, - { - "path": "packages/taquito/dist/types/wallet/index.d.ts", - "sha512": "a517746d66e4f0031e90ca5a497ad9f7e3a771ac4e152b08bbd65fb4a0e8b809e3daced193ae20644543796e339f698360596b5aee3f7a7051c40b14c8b3af8a" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/comparable/int.d.ts", - "sha512": "0148afa8051f453fc9dad63bd901f768bf47659e0c054e3b86ebde58ed6f59966459a6d45d5dfa5ac7894384d582c96a1c74439d5115f2dcaf6920a065490e84" - }, - { - "path": "packages/taquito/dist/types/contract/interface.d.ts", - "sha512": "5add9d35be41259702dee0369584242ddd1e2a9c62d88451199f4bfbe81c743a27b03ffcb46a7e90d5b84683c84a2a81584bad5955cb023b34d47bc36ec8dc76" - }, - { - "path": "packages/taquito/dist/types/forger/interface.d.ts", - "sha512": "0333c4454c77da9d9ff130c006d2a8f2b97d8207368e261dee28c956eeb1d51ef01d3d2b4948e2c16138e052f9de180b86a300dfc81d6315b5cd867256c15ec1" - }, - { - "path": "packages/taquito/dist/types/injector/interface.d.ts", - "sha512": "8cdff3c5199787c453aaa4989d08f0b71963c44c80989deabb4ae0e5d9b9c7fb24c210be7cdc70713eba84148311179e884516b46bb6e35571441c161aa7785a" - }, - { - "path": "packages/taquito/dist/types/signer/interface.d.ts", - "sha512": "69e184d0cc6b4ef97392218842f61d21927f35b8d286e6261d770a47c9a3a31c2e97671e9228670a4811b2d9dc3b8613e6c279a3001319287a5dbe5b82c08d43" - }, - { - "path": "packages/taquito/dist/types/subscribe/interface.d.ts", - "sha512": "d1ae75a9b5e8b11a1f1887e4c462ff8d4b74203051866d04eec3e5326df2f86d96439f836166262d4d3bc85fb56aa6ea84bc174f036feafe1ebe93f25c70b5d4" - }, - { - "path": "packages/taquito/dist/types/tz/interface.d.ts", - "sha512": "ee68eb77c2f1247f9edbacd309f598769f234d820f7fc2a076555c5e45097e8ddb32347fdf0a161223fec5c58111f69a4d8348f413558803baf51612365e091a" - }, - { - "path": "packages/taquito/dist/types/wallet/interface.d.ts", - "sha512": "e33c881e29c0907eb44c3d4e1c5afef6739c048cecd1f2bf38fcfaaf4b87519a4e7cbe73631cc464b85278ebbdb8f753b2313cb4b9ee9350702cfa67a7dca245" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/comparable/key_hash.d.ts", - "sha512": "75b02a3fb4a60a067c68c75223445cd571a4f8ad889095bd652738002e0b3e6d8ce5bb5a379fbbda6cabeb3186512c0fed43bbe2e52a2fe331ce45e9bdad565c" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/key.d.ts", - "sha512": "eb8b81dcb3979ac8904cd4db702009359d5d6d0a43509cfa7e17b9a05e8fe81d030bff799a23c433246fb04c3eaf8e4c32f440c7d993c0b2689c1eecc84f80e1" - }, - { - "path": "packages/taquito/dist/types/contract/lambda-view.d.ts", - "sha512": "545fa3c45a0a44f6083290c125dd64a7cb4c764b41d8ee065ba895123258279fdaa0e29a93fdf04555ce38d0e8ea946b34bffd5e5cd35ca4885d56ee06d2f955" - }, - { - "path": "integration-tests/lambda-view.spec.ts", - "sha512": "cf4db983e365ff8b210dc8e0d717e476eab2fdd5c33af7be923a69ac5ef356ddba273f8194b1850c7b7b566283042a2de02dd3c831acbd34245714ed4a9f6885" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/lambda.d.ts", - "sha512": "f721cb2f351c8b931cee346c96c1675d9266fffcf98a8839a4fe8d8d72c640be909fb56449f8a8e2e05e02463e8cac9c0dc3093a40bde436312276a4a051daf5" - }, - { - "path": "integration-tests/data/lambda.ts", - "sha512": "5995782dee43e034f304bebc3830802ab602a611074ca18925b5f525d497dafd5a7b4d353e335859757691fef72fa3eca5304b7f39149c2bba8d8f5dc99e605f" - }, - { - "path": "integration-tests/ledger-signer-falling-tests.spec.ts", - "sha512": "a4633d33d75808b8350e707ae5bc34d5e2ca11ea009a0b28690bd379e33cbf5c429158293e4ed2b54a0b1f85a8877a6f0f4cb610dd0911d33e02b2ae347f2b09" - }, - { - "path": "integration-tests/ledger-signer.spec.ts", - "sha512": "da85ab3250003bffd009ce7f19ba586a80ae254e19c269d28693a161e3213aae11080eb879a8b2d6d465307a1293e48e3daa6e187933a9c0516f67607407d5e7" - }, - { - "path": "packages/taquito/dist/types/wallet/legacy.d.ts", - "sha512": "5a4e123ec940196e52dbe0975b7434cef50ac154262cda66392d5569dc49a14e46a7d2ecc140bcde38dc328a1394dd208d597056cbd7fa2270dba793af7c9707" - }, - { - "path": "integration-tests/data/ligo-simple-contract.ts", - "sha512": "b8fac06afe3eba5abf5c175d0482b5a6d3f8ce26e235900dca98cf28f1d2d791eeabb94a192cb5272c94f26ac99ecd495d0ab43b12d165c1f065747776d608c8" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/list.d.ts", - "sha512": "ed3853842590e4bf53be544c27de7747f4a89bdfd8e54411d5f741757fcc10e8288982c130863f065b81776fa4d72d14f6e1da760cb0bcb68818c9301dffd1c8" - }, - { - "path": "packages/taquito-michel-codec/dist/types/macros.d.ts", - "sha512": "a94b3979543e579099fd19d7906e1eb9c2bcb7afc12d016a88e022d57ac64f1924535cffc149076d1e7017226a7872face8f194e7a6291a1a7b9394b2f674e51" - }, - { - "path": "integration-tests/data/manager_code.ts", - "sha512": "8886b3eb7f791df03f95f31b8add57690713a540bc390c636b71ab79667b8678b0907af58be3ab9054aef5e52288a3b0ef12934b3cd5846f9a4014a09163975b" - }, - { - "path": "integration-tests/manager-contract-scenario.spec.ts", - "sha512": "8a59541d8b29f70790b574750a73a742e455d7fe268992fa0d9b6a64c60e7b50f073ab128752eb1e03fef783a735913cc50c155706a20f56521238f28271ac26" - }, - { - "path": "packages/taquito/dist/types/contract/manager-lambda.d.ts", - "sha512": "ef11f92f9c08aeb60af14a9007b3988787eb61fea1b7cfa090d26f9efa8ef726c4d7b170f357d1ced5469a91d3bacde56c3a3a2328dc1f426064609152e55031" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/map.d.ts", - "sha512": "9be58472f5606f8abf2f620d52097fac63c45061b17c745b19171d3feb9e7efc60d2ad065d1c00e837aefd80ce2f0f27e8d7905b9c352db592678c13cfafda79" - }, - { - "path": "packages/taquito-michel-codec/dist/types/micheline-emitter.d.ts", - "sha512": "1d37e5307bc23e5c30ea22c172b217e025f43288c2edab293b909864b8fb1fda707e48d9e0f57443f1549a7c271be8b54b8c31c5dd5e8a8899acff0844cfdbea" - }, - { - "path": "packages/taquito-michel-codec/dist/types/micheline-parser.d.ts", - "sha512": "dd79b9335f971043589a170c060112006f9e57f53f27b1ed125f9456136786a3cba15c7b5993b9390807f710774cc19fdc6b2f1c873bfcf8377aaed22f08906d" - }, - { - "path": "packages/taquito-michel-codec/dist/types/micheline.d.ts", - "sha512": "38b513a4abae68170472ddc0a99c6b7d6d5b38c2526eca5146e7985df8ce90dc763bf0f56c1030d128aa2ac6202c40510d4ab855107d61f7c524ca8c7ebc429e" - }, - { - "path": "packages/taquito-michel-codec/dist/types/michelson-contract.d.ts", - "sha512": "d3a7d1adafb517db164844efb9cc7bc5930ec6ae35a5c57ce1d3796c4d90092d9019a4354b54043de000fa4e2c56b9cd9050feaf4067128e1e394e332c44ccc0" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/michelson-map.d.ts", - "sha512": "8801988f790423821285234ee933c5651d583a8a24b9222a9b0b29abaf193210b43feb6c880518de13abb22150a518577c022c7e6d1fbac7672b8ffda4175ae7" - }, - { - "path": "packages/taquito-michel-codec/dist/types/michelson-typecheck.d.ts", - "sha512": "8ed9aa9942738319fe2f1138e6efb605fe255395820cd1aa4293a79da92bc3050b9eab7cfaf095ed52cf320c4a42fde5c19576e430a08388166e23e8b03b1ef3" - }, - { - "path": "packages/taquito-michel-codec/dist/types/michelson-types.d.ts", - "sha512": "c6b7ced60343107ad911df726fff4f93a95a15084cdfe0752030885b1f86cd42d1ce6e480ea57d803080ff0a83b006fb0a1628a786574dbf3527a85b521643c2" - }, - { - "path": "packages/taquito-michel-codec/dist/types/michelson-validator.d.ts", - "sha512": "3cbb89248795af8cca35e8f751b0c14f8bd464fc3696f6dc09380c0966ab0b408214f8e7d38699a7bb32e66e7e23882d0289fdf20880f2ed7e67925e9a496788" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/schema/model.d.ts", - "sha512": "6cbd79d68a6652b4cc2e80d7a91b7e71d7f55933ac3cad1f538fe518b7cf7828393de767fa90f2699aff0881aa7875d314a7c93c4bead2c654bbe3f5a18d7e02" - }, - { - "path": "integration-tests/multisig-contract-scenario.spec.ts", - "sha512": "f134b6c65fbb9b491e5942ce0a31c93176d6e16e5b1f246c3c5f34903649b0c62240e72327e74a713693833a03c039f27ab6a67b490a0b2f7217b1d7385b1046" - }, - { - "path": "integration-tests/data/multisig.ts", - "sha512": "c0525196089b4a7a00fe80f942278161010aaacdec86aae3a7f71ec589dd7ba35a7971c454f8e7fda3f550c69f433350e918abb3db54646ed61e1e73b2b8fb16" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/comparable/mutez.d.ts", - "sha512": "f87157ac98a76cde0af8108c6698b701265f35a38746278856ec03d4b42b9295568230057322783675eed38d5f3ebdffd3dee0b68432b8defb99ba293fe4f904" - }, - { - "path": "packages/taquito/dist/types/contract/naive-estimate-provider.d.ts", - "sha512": "603371be139f3699e8de7304301f796fb60ac8a7fa1d91456f45b55daa507854776787f843b1ae09a85f7e91d4351aaeb05200ec5ecbdcf412bcbe604b78282e" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/comparable/nat.d.ts", - "sha512": "4c9ad81f658b6d0d9cae4a1267b99b23cb2ce50feca797d37bdad962dba3891ea5775d7d182f34f3a9e56e3ead39a97c3acff04dee2481a536e23ecd33266293" - }, - { - "path": "packages/taquito/dist/types/signer/noop.d.ts", - "sha512": "2702d7c521c5065d2738455dc4f464c89d9c9457eff88ff65fa955e7f15176a880330a066de44fc6da84fa5c41523afd29401100a4db7dd730c0b299712ff1b8" - }, - { - "path": "packages/taquito/dist/types/subscribe/observable-subscription.d.ts", - "sha512": "58d976a98d1463086093cdb1511a7528c262791296aa3f688df26b8dae8509e78eaa5f42579d7d8d8209732e8d553dd9aa6a55795cb8dc311f6fe056fa11369e" - }, - { - "path": "packages/taquito/dist/types/operations/operation-emitter.d.ts", - "sha512": "71dae6fd9e4bb752a1216019a66a6660532b27df8e11c9bfa00dfb675847f6ffaf9fe155fcc15fbcd85b1484d431ad72369f8d03f804ec45a313aa63d7c7b24a" - }, - { - "path": "packages/taquito/dist/types/operations/operation-errors.d.ts", - "sha512": "829a49f6ca1d724e63fdba4c8fa0daed7f3c1682155b24b3abb474c2e67feb15ca4b0b60247b6898f147401d8022aedcad8065ab04d75cc9a55579813cb8f4c8" - }, - { - "path": "packages/taquito-local-forging/dist/types/schema/operation.d.ts", - "sha512": "c6ab6c9b0aa0fbf526f35501cec025e58c48060b1a0ef573f1964d021f84e2ee111540a634f8ba2c2e74111ac0f8458faad96de090003db253768221999d44ad" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/operation.d.ts", - "sha512": "313ac02797c620635a2a310a0ffa269315da809110b47e1c7ac274041367bfbbd4652f47ba3844a59c0fe74cedcaf032cc02b04a3f4bb0adafa9e3acb7beed8e" - }, - { - "path": "packages/taquito/dist/types/wallet/operation.d.ts", - "sha512": "1cd117c721c8ea1e81c06a5ab7df4e2fe82e24fe11df049b175a66544fb2978ab16c00db62b302e4674812b761b75ca9eab1bde6606553581f7babd12cd7707d" - }, - { - "path": "packages/taquito/dist/types/operations/operations.d.ts", - "sha512": "8557aaa54dcb271e603ee7b099e75dabcf846101b342fb98d1ec13ba6a37cbdc69d421f9321b26b4590d8bdfa98cfb0c6233fb6ad6f1f98637ac7bfb17a0faaa" - }, - { - "path": "packages/taquito-rpc/dist/types/opkind.d.ts", - "sha512": "617d0d0568a701e211020509a7302fb7747588e661536a9b39e2234a9c0e62fdafcf72c295590a34dbfca16cde378f96557dd87be5ac731642b6d57ebb922c5a" - }, - { - "path": "packages/taquito/dist/types/wallet/opreation-factory.d.ts", - "sha512": "b2e6b574e151cb50200cac90f7e30fcea66d2138377c61462a599878ca82fc421580acefb65c04a8043567997b3587b8e438b41c74eab17d286b73625bfdeab0" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/option.d.ts", - "sha512": "e4786e0b939bc995f14d8180979d35d03e88b6a67cac26ce656f447b955209300acd1334c12c70f2c610dda903cf18f45c280605f1372dc0d6c65b44185e6165" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/or.d.ts", - "sha512": "48109eb889bc96a53f7d1ab8d4e495fa5a668b5e6901f79b3316c5046b5a703cd040b69be7d2185c271bccc27ede77f9db31546c271064a7f1a044b436297dca" - }, - { - "path": "packages/taquito/dist/types/operations/origination-operation.d.ts", - "sha512": "10aeb9df834f1f768d5dc033eb81bf33e15705cbe4d62c5a364318e48fec51a30c93784cf01e794faef48938410641886577ab4310ad6f0f6fc868dc40f05506" - }, - { - "path": "packages/taquito/dist/types/wallet/origination-operation.d.ts", - "sha512": "4130d69bc1b6c20ee1c0a2d44246257fd35a42967e05adea08a07185cb09752d2238085ebd85cc85ff5c001420e33d900cf15330f2429aa1d1598616055502e6" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/pair.d.ts", - "sha512": "63d06f0aab4562ae54bf77003388287618b725526a1e3016cee241e980f28711a32430bfd17ae4373a056a05163709aee949a78b938758c17ee8304ca143810e" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/schema/parameter.d.ts", - "sha512": "06f687b11ebe78d228d0a5da05fc4455ef9ed81d59d72ce8eb357f73a902c8fb74724dff5621435e821c5a36c36c349a7c44839b3ab4884b08382acbf9843f1e" - }, - { - "path": "packages/taquito/dist/types/subscribe/polling-provider.d.ts", - "sha512": "511eafe198d3bd4834d868d99a1ef6b4a967bd3e83ac18b1ca4bd3c9d5655e6e64028da6f91d8fcbab61148c3b40edfb1909a9d8f7970f268ac5763d6dc1d768" - }, - { - "path": "packages/taquito/dist/types/contract/prepare.d.ts", - "sha512": "89ebaae08fc3318ead0289ffe2882304c9e37dc2d532ee2e49c6ffa6ba316143382611a1c0528285f0755f5f7e1ae3becf27cc1baaaeb90b15629436b13b4f62" - }, - { - "path": "example/pretty-print-contract.ts", - "sha512": "b7acbbd973d8fe66c2e34cf33fa9841eb84d97a681549ffbcd27cb2154ee7cd7a2c0c57bf62242168f2e35cb15cb54ed2a9ccd6222660099eace81b5cc87bccc" - }, - { - "path": "packages/taquito/dist/types/wallet/receipt.d.ts", - "sha512": "6f9a0582fd57b2d895fd468d8e2fa0b7c5369f2804979af6be35646c63ad76a258793a203f6d1359fca04fea1bf8fb71c803aaea1a70b8c0b50402167377a60c" - }, - { - "path": "packages/taquito-ledger-signer/rollup.config.ts", - "sha512": "12a63792291d8d3988a79ea31194b889fe17874cde0491c42d444c85a868165a2830d6b55a5c6195c353ee5fe0adcf1b85d3d2628c692c0f5f1f787c250b2ca3" - }, - { - "path": "packages/taquito/dist/types/batch/rpc-batch-provider.d.ts", - "sha512": "94063136f2174c310e30ce1b74b13714cd9ecc95fded91c59594a0709cf2baf5246bc6357ae35641f97f4febef6ce7f34264ab35662fc56fe708d0a0e971a4c1" - }, - { - "path": "packages/taquito/dist/types/contract/rpc-contract-provider.d.ts", - "sha512": "d80d7c62c02e512a3466f7ac9beac8481d23d10887180ac1466a3bc5578e3e3d3293f04d41703c76a1058d9a7bfc15ea340dbc44690657831508643f2c2c3ee5" - }, - { - "path": "packages/taquito/dist/types/contract/rpc-estimate-provider.d.ts", - "sha512": "6cac55fa9c6abcb4d5d389ad3d6f6a2adf433e2375a9e1ed88d31bb0965884f6575fce64dbf351089fa3eb16aab553f773897dade1370e17e12185f35faf1649" - }, - { - "path": "packages/taquito/dist/types/forger/rpc-forger.d.ts", - "sha512": "ee8720a57365cb3001054db6f6c35174bce95e6efee203a1d5dd97193676b2d027266bef0218fb64d8e78b84b9237e53e23024bfde34a99b10ddf548840c5c56" - }, - { - "path": "packages/taquito/dist/types/injector/rpc-injector.d.ts", - "sha512": "5f4c69a34875e3e18aab6f4be1a9ab94ca490139c7a0908c902a57a155353ebd60df0b9ef21096dc360e534dbfda8eead71153512a080332a2693639886afe8c" - }, - { - "path": "integration-tests/rpc-nodes.spec.ts", - "sha512": "080202723e3cd706b5fe37f39e09c0854e9e97be2913a5a457667e9c099183206c8787df9155eb3481a4344228be4100171b676264e192a3748bb88e07616f4b" - }, - { - "path": "packages/taquito/dist/types/tz/rpc-tz-provider.d.ts", - "sha512": "b0e4aa44c5c366da2b341f77d90dc794d09a092bbdb9b7380428d77292b4aca6d43278245f04153938f66ae70405dd81a409ca8c5d615b09a0e9f14fc23f7551" - }, - { - "path": "example/scan-path-ledger.ts", - "sha512": "654e133a7d7a3f67f0d048babc19bf23f310e2eaf65a46a666c06b1f9e4af5611d46d8b22b037185f20fe7cbafe35f41130351a6773fe521a95d7a218b2077bc" - }, - { - "path": "packages/taquito-michel-codec/dist/types/scan.d.ts", - "sha512": "1daa1b109b5d67852086ecb506ce955538040c76faca6a1c3a754f989c97acdf9b37254539daf98e2fa9ea23b01a9b88b4ade9c1ee536e8496963f3146c3f806" - }, - { - "path": "packages/taquito/dist/types/contract/semantic.d.ts", - "sha512": "77053eae41486270a02449c35f42a3542b4ac831c4ab95734313c0124c2cbd91295cbd1141b8d3f10a63698a40e77da2e318b2435a42a49bd9d121f2127c25dc" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/set.d.ts", - "sha512": "90ab0dfa2e73216bddc41e9828784189c575093dda0c45c74970f8b1c5f4a4edf3e13df80fd5541adbee5b41e86ec79e56d443c7280c3e5aa1580a2e8aa5ec2b" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/signature.d.ts", - "sha512": "fb600cd149a20ec1d4203fd2a94baba1af3a54ee7d421668177c6b9b690f3b5adaebecb11d38866f631b486dfe478ee4249f3f7cde253de24694c5845f1c55c1" - }, - { - "path": "integration-tests/data/smartpy-example-contract.ts", - "sha512": "c14cc14c0273028e910b57e10e0abb44b2e34e45add434a2678d79cbbcce11f3374e2ffac91cd6b093f52315e8bee810451de7d89c9fad9a9ad41e45cac2e48e" - }, - { - "path": "packages/taquito-http-utils/dist/types/status_code.d.ts", - "sha512": "e73a0c29d243799279103fef426cd4ec77b6545367fcba787df2c3579f68d773a940b7030caa072c5a0d9ea21216c578b917a4bccc2ee4d77be47752ce538dff" - }, - { - "path": "integration-tests/data/storage-contract-with-pair-as-key.ts", - "sha512": "b49231dac14096e84fcf2c8ed97b424306a674ef67fe038eaea250a4cef503fc1e7cb1faf37fb37f151aaaffae1b224388728b777b1108c8b327d310e5e34ff8" - }, - { - "path": "integration-tests/data/storage-contract.ts", - "sha512": "49815f250d8c1ceffbefec2485ea46e6b29bc9c525285c1da9563f43b3e5799121681058374631823a2c1eb943b46ebc788056600faab6bb330603410815d466" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/schema/storage.d.ts", - "sha512": "d05cf743fa2af12650cae5924d0b14eb600f53690c312f532990025bce8d3bc2a821336c509a446e6662058ea2bf3547884e8139940f9ef6cdd8ac67a8e831c6" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/comparable/string.d.ts", - "sha512": "e2a8021de439e9771a14532b03ac8c6abfa05b8c5445e804f4d613952ef8087ba394da58b13ebc5d81a893f12c36198f6397658374d1407cd593addc632035ca" - }, - { - "path": "packages/taquito-beacon-wallet/dist/types/taquito-beacon-wallet.d.ts", - "sha512": "9b4a5e143538bb929b421d9b8af183b6f057a9c2f2f36117f08672bacba79d55a7e5f243a2de16bb44be055a1238f9ddc02b0f3dae586cf0478755a454bbb3b7" - }, - { - "path": "packages/taquito-http-utils/dist/types/taquito-http-utils.d.ts", - "sha512": "1c137b7befe1964d5409ac612e485e517b117b2a777aaf62a60965b998f039d0319e22d3a78d0f6ac7a5621a39253dbdc2bc2dc95bb4332418f51a1a3ecf2a46" - }, - { - "path": "packages/taquito-ledger-signer/test/taquito-ledger-signer-utils.spec.ts", - "sha512": "db7f2a10460a820219bcfecc6cced591efa2301f7f6e9d3670c66758044b12994f5d815dd063fb203daf121789b376509313af93868ea955895517103d1be28c" - }, - { - "path": "packages/taquito-ledger-signer/dist/types/taquito-ledger-signer.d.ts", - "sha512": "f3bc88863e2edbd53f8e8834a65a76a5b57c36772ee69a413f7c86ce43530894bc9e2bcb5f9c50239d16f6a49c08aee57dd53360a599082fe1fc8bc8577ffc02" - }, - { - "path": "packages/taquito-ledger-signer/test/taquito-ledger-signer.spec.ts", - "sha512": "f53a0ab9e87c50d84685c0d44e90d199bf9ca7900f7b67b72ef6d11ca1812296f5da81133ac930bd24caff4242618e4b7bdbde0772737db706679fb887f73feb" - }, - { - "path": "packages/taquito-ledger-signer/src/taquito-ledger-signer.ts", - "sha512": "47fcfc8b5b817a68f657fbfd9ffa88cd8bbc39be0350e572acd39d3149dc970c7e19bb23157a320cd4c6aa8306699a1dd1846095f884aeffb055fe5898d5f74a" - }, - { - "path": "packages/taquito-local-forging/dist/types/taquito-local-forging.d.ts", - "sha512": "e73b425fea1185aa9234c0d8144f05643bd6db68f22067b8dd8bf6e8306f99973513556558babd5d45bfea80c43355087224576c5a6a551584d8bb1badb1a242" - }, - { - "path": "packages/taquito-michel-codec/dist/types/taquito-michel-codec.d.ts", - "sha512": "f8ff56477917f2903392692f066c45c9216590ef01e0a986599a3bfbd2402a354cdb2a521b933578652de068d480075264e2a6b76e06ceb12ec741203a6e1950" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/taquito-michelson-encoder.d.ts", - "sha512": "af7ecece379fae7b5cd280898f988dc8f40f732db5093717d81d6c15009747069d3d24388c2ac67ab4a79cb052e4c43c66d820845ac808b380f699a442935b38" - }, - { - "path": "packages/taquito-remote-signer/dist/types/taquito-remote-signer.d.ts", - "sha512": "c0fae93b49ec88c27c19de6ac039bb85b388ca6c4a388a4d23748422c8356e2aaf26056670070ca8656fe8e672ce941d8f4060c16e527eb3bc2942057e49cb1c" - }, - { - "path": "packages/taquito-rpc/dist/types/taquito-rpc.d.ts", - "sha512": "7c9a4384dc609f969da7bfe1ecb49fa2dcc321ceb5dffaf6e11920425779c4555945c3500d4a7f02416030d5931b4f6448a1f39060e15bba46ebfd6995fe8510" - }, - { - "path": "integration-tests/taquito-rpc.spec.ts", - "sha512": "df4492ca636e75a68cf26102471de2b0ae61b607985f15587b5bf4c022e6979667b775553fd1789108fb19a31e1a5cbcf3456c6494168e0250959927fd0bd6f7" - }, - { - "path": "packages/taquito-signer/dist/types/taquito-signer.d.ts", - "sha512": "b730dffa7375f7684850d77f00920374111a574affd07b3ff08d39915c974c05071e9fb91b055b146b1d103f4754b8c1aaed89eaec3c2284f0ff4d961729ec59" - }, - { - "path": "packages/taquito-tezbridge-signer/dist/types/taquito-tezbridge-signer.d.ts", - "sha512": "f84760a0c2cb3988216f07a920c56a505313d9a93b8acbefa72980c295595e739d7323ccb42d4c9136a114597a9486ff9aac77923841953c4c046ec9343696b5" - }, - { - "path": "packages/taquito-tezbridge-wallet/dist/types/taquito-tezbridge-wallet.d.ts", - "sha512": "3f7a10fd9e10aed789c5021fc8042c50a8f851ec78808a410ae2f8632d0373dd55cda1def50f8b378a50b4eb4f4809ccf9ab37d6c26e0aa242e0865cdf6d4691" - }, - { - "path": "packages/taquito-utils/dist/types/taquito-utils.d.ts", - "sha512": "97ab6e7da0a5d418b5a2a75ce115aaa9d9222fb48eba8084c9692123951efc7cac02fd11e96a43bbc60b57d96022620fb7f2138a8f6ebbdba835eee47c1ed827" - }, - { - "path": "packages/taquito/dist/types/taquito.d.ts", - "sha512": "52ab5f6500dffab6257f8b2cba25c5948125e174979806eb5773d8924bb0377dbf1c07de5cfd5e6c7abb7cebc69e5b44484a1d37f301c891928c23e91cda0b8d" - }, - { - "path": "integration-tests/data/test_lambda_view.ts", - "sha512": "b8446ff418037be98e36f44d33434110085f6ac47d295688dde8843be55e98ab0535c38ed77720e4fe8d05aa15fb1da5d048fc043015bb8a58d4c5958337d094" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/comparable/timestamp.d.ts", - "sha512": "9f8a06fcad8cfc6dabff63750f3b7fbe86cbdf64ee14392fe1bb93f6ee9896cd30b165a5ae772aebc74edaddc5c9bc500bdc8e8d72d317b8db4b5fff009a3d84" - }, - { - "path": "integration-tests/data/token_bigmap.ts", - "sha512": "3cff1021aea07f550b18b3252bba6602f98ede38ac28fb21c234ed712716c9fa7d8f13bbe4e434d6ae571c942a66d339365dca95ffadf608c51ee20a269ec7f5" - }, - { - "path": "integration-tests/data/token_without_annotation.ts", - "sha512": "55a4e95cc2eb00dca7cb86128d234edb222406c15efe989217c19f0fa20329a3b85dd37c0454534ce9fc5a10681fccb01c4cf6fbb52e30fde7a764625d4140e3" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/token.d.ts", - "sha512": "cadeb6b6e672b637125214160326eb9e346bcc0e47cfefe20c810f08717d82bba3866c1486d42bbafe5bf92567a280c8143e78e8d5f9e5209896c454ccd940cd" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/tokens.d.ts", - "sha512": "1af0e95bec78dd9d58f796aa2602a77976249b2ca3dc63113f3201b0343193f7d7398b2edf7ee7110c4018a8247e30d93e2fc27414fd0aac7826e80bf16109f6" - }, - { - "path": "integration-tests/data/tokens.ts", - "sha512": "86aec7c1600a892b3cde96876fcc7d44ee2fa34fbaf6b91ec0cd7b3cf33617acb4a0c576c87c710181a44b3822246240253cc01a7e9ba6d940dbbe839f24385f" - }, - { - "path": "packages/taquito/dist/types/operations/transaction-operation.d.ts", - "sha512": "05c3fa53ab7641a2fb44ff0fc1453fee5be56db5ca56502b5377f0a33bd8eacfda7cd8cb81f3ca714cc8a39cb3bff9ce8333bcfb4911d1652b8c921de2993479" - }, - { - "path": "packages/taquito/dist/types/wallet/transaction-operation.d.ts", - "sha512": "28eebb440ce352f9187491d74ecbbd048714dcf192c4683a0d5fa397a98ae20923fc90fd7a9336bc3c01161d566c5ab9bebefb686757ffc3627b854b6090120e" - }, - { - "path": "integration-tests/type.d.ts", - "sha512": "83430117751d3f494c0b0c9ffd68c6ab681ffb95637a914ff5c5be7a0024b40f405496749c606f84e966d44ff3f9a3d74cbf38e601535f949b95a9d86e05134c" - }, - { - "path": "packages/taquito-ledger-signer/src/types.d.ts", - "sha512": "83430117751d3f494c0b0c9ffd68c6ab681ffb95637a914ff5c5be7a0024b40f405496749c606f84e966d44ff3f9a3d74cbf38e601535f949b95a9d86e05134c" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/schema/types.d.ts", - "sha512": "20438fe478b63f8927a101aa5cfaed6b803f88f17f99e0b17883f188f9d4e3c49e34a3288dfbc60777cc6f67776d9949cc00d496d7f2c14987b630e286498f0a" - }, - { - "path": "packages/taquito-rpc/dist/types/types.d.ts", - "sha512": "9de37087a5d3e0f08a75a8c1a2b70364fe465aa61c6aac2b507b41bb6af89e7ed1dc8bbf572edc6b8d3d4fa61828b722fef06f517723b728ca7f5b998234c39c" - }, - { - "path": "packages/taquito/dist/types/operations/types.d.ts", - "sha512": "2b1fb8c1cb088a524ef21512abb0c50adb42b5a8ddb0796ccb61493ddd73d965f5f92beb69843025e29532aba74593419ad4e4b42420aab588eca21f69798ea7" - }, - { - "path": "integration-tests/data/tzip_7_contract.ts", - "sha512": "5ff146e2d9bfccfe51a67fded3a71cfa36007587a2a4970d7e7ffcb5dd68ca8cffbce134e1ad70fd4f3889a835f24355f4656a3c10dbe434267cebc6399fcb7b" - }, - { - "path": "packages/taquito-local-forging/dist/types/uint8array-consumer.d.ts", - "sha512": "8d72ae411e9495652a7438b4903d2b147ee0d11a274741be2e3b1c85d1d3a8e02ed37c8f430eb9b5b2913f9ccd18842a0e037d05591deed3769dcbd18d558767" - }, - { - "path": "packages/taquito-michelson-encoder/dist/types/tokens/unit.d.ts", - "sha512": "e84dd6cbbe4116717ec7676377eb317f40cec1b1a5fc6b2a512ae3a50f9e74b19ff30bfd36f28b72c6da51a80129df5d5d009f208c3063241c1639d3152c9742" - }, - { - "path": "packages/taquito-ledger-signer/dist/types/utils.d.ts", - "sha512": "0e561e1ab7d650309fea1264d900b040b2eed998e4a7250e213515e186fb3244e95e7e4b2276372b64737229f8c9ddb6194066bb38bab8411221f5747bf5e03c" - }, - { - "path": "packages/taquito-local-forging/dist/types/utils.d.ts", - "sha512": "03e1e850f3ffca95887503f9a2da857dcf3e3741420c97adf5eff1a1bf3e970da02caf82de5a023e220254e7bce06c92b9ce5c1e906c74f476570bb44686e8e0" - }, - { - "path": "packages/taquito-michel-codec/dist/types/utils.d.ts", - "sha512": "e793873aa0f0c94f4f0234111f4019a9305b9b4f66fe51373ea5a7c7d9fb716fbe92a1d7f9a7713598276eb784168ea4ac5c983b8420534ffac0f305a9f15aae" - }, - { - "path": "packages/taquito-rpc/dist/types/utils/utils.d.ts", - "sha512": "5006fab10ab85ea4034195bc95d5fbc8e51f374e9fd76b9b6b9d0bc091471209755644247475a153be6ee21fdb6cd6a350512a81e52be321cf0ff56f92acebae" - }, - { - "path": "packages/taquito-ledger-signer/src/utils.ts", - "sha512": "4bfcbffee92ba0fa3e63ecd92b9f1a478aa0afcc06e5c8ecaca4c4fd1826547ce3de3864c5957dfede29c9cc78136017c71c038f461290d2dd4af473465271c2" - }, - { - "path": "packages/taquito-utils/dist/types/validators.d.ts", - "sha512": "7a36ebb852c5aef5a12aaf419dd625f065a5f1341e936edd463da2e65b4bb64b7633a815b21309cce624f31ff2e7cd696f1987b92470be160e658d1949be94df" - }, - { - "path": "packages/taquito/dist/types/contract/view_lambda.d.ts", - "sha512": "75ac1eca911b8328aa267d06bd908f89224f87b4a05fa04e3429cb6b0bfc2a360b94fefa821026655ae5d8ab8063a12d0d52e6237bcde82fa07bc7315e6bc871" - }, - { - "path": "integration-tests/data/vote-contract.ts", - "sha512": "d72e16b48708e1c15982ea46cc070d7b34cce22cb0fcabe596c6fe16302e6b8d817f2799782f1550a70a92fbee16e1b4f834ec15182623b821526cdf281c0470" - }, - { - "path": "integration-tests/wallet-api.spec.ts", - "sha512": "e078ddaf463d003f86a448633e327b239802aa73617b047805b6d013dbeaab5d95ef56880825667a4039f0f93493103010fba825e452f42e3ac809f89d8f6216" - }, - { - "path": "packages/taquito/dist/types/wallet/wallet.d.ts", - "sha512": "19db47c6a9fdf581097ebfa00e54178aaf99c2267eeecff4db1c572eb08341913958754ee91cf053eff12f17e392c4799bf900823f627fa44b82fa4a24366b4f" - }, - { - "path": ".github/workflows/codeql-analysis.yml", - "sha512": "71d1e1053b703d1c7079f65b380b3c0b99b3f671b0cb1527b48c564b525ca678f69b0ce2f667cc480214e20403a386d5b9562fc3bda3b49d98f02b2ef81d4b28" - }, - { - "path": ".github/workflows/deploy_website.yml", - "sha512": "8317ff450e7d29a1f5a3facd2293cec3ba0422a3347da73b6b8320ffcb6300e4011738690017e54019eaa5bebebb5c0bd0718bca7cde0fb38a768e7ff29fdcb7" - }, - { - "path": ".github/workflows/main.yml", - "sha512": "8fa04477fdc1b7adab31182b298e32d6c55aff446494a2e529c1c8d78b1cec8faf7c2e65e8b3afcf37babf3aaccaf4da0c1d81be85317d115c3601d38f16f46a" - } - ] - } - }, - { - "entry": "identity/v1alpha2", - "value": { - "identity": { - "keybaseUser": "jevonearth" - } - } - }, - { - "entry": "npmCompatiblePackageJson/v1alpha2", - "value": { - "packageJsonProperties": [ - "commitlint", - "config", - "devDependencies", - "jest", - "private", - "scripts", - "workspaces" - ], - "sha512": "9242860d39346281eaf6e3b9429943ef70422e03871e98bb8611a5951e76dba54ae75804c20772010fe5d0145d69e73fe42b5dc6e16e6a5be80ea51abcdbb9e8" - } - }, - { - "entry": "packageJson/v1alpha2", - "value": { - "packageJson": { - "private": true, - "scripts": { - "build": "lerna run build --no-private", - "build:all": "lerna run build", - "bootstrap": "lerna bootstrap", - "test": "jest --collectCoverage", - "lint": "lerna run lint", - "commit": "git-cz", - "precommit": "lerna run --concurrency 1 --stream precommit", - "example": "cd example && npm run example", - "lerna": "lerna", - "build-docs": "typedoc", - "gh-pages": "gh-pages" - }, - "workspaces": [ - "packages/*" - ], - "jest": { - "transform": { - ".(ts|tsx)": "ts-jest" - }, - "testPathIgnorePatterns": [ - "/node_modules/", - "/integration-tests/" - ], - "testEnvironment": "node", - "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$", - "moduleFileExtensions": [ - "ts", - "tsx", - "js" - ], - "moduleNameMapper": { - "^@taquito/rpc$": "<rootDir>/packages/taquito-rpc/src/taquito-rpc.ts", - "^@taquito/taquito$": "<rootDir>/packages/taquito/src/taquito.ts", - "^@taquito/michelson-encoder$": "<rootDir>/packages/taquito-michelson-encoder/src/taquito-michelson-encoder.ts", - "^@taquito/michel-codec$": "<rootDir>/packages/taquito-michel-codec/src/taquito-michel-codec.ts", - "^@taquito/http-utils$": "<rootDir>/packages/taquito-http-utils/src/taquito-http-utils.ts", - "^@taquito/utils$": "<rootDir>/packages/taquito-utils/src/taquito-utils.ts", - "^@taquito/signer$": "<rootDir>/packages/taquito-signer/src/taquito-signer.ts", - "^@taquito/local-forging$": "<rootDir>/packages/taquito-local-forging/src/taquito-local-forging.ts" - }, - "coveragePathIgnorePatterns": [ - "/node_modules/", - "/test/" - ], - "collectCoverageFrom": [ - "packages/**/src/**/*.{js,ts}" - ] - }, - "devDependencies": { - "@commitlint/cli": "^11.0.0", - "@commitlint/config-conventional": "^11.0.0", - "@types/jest": "^26.0.14", - "@types/node": "^14.11.5", - "colors": "^1.4.0", - "commitizen": "^4.2.1", - "coveralls": "^3.1.0", - "cross-env": "^7.0.2", - "cz-conventional-changelog": "^3.3.0", - "eslint": "^7.10.0", - "gh-pages": "^3.1.0", - "husky": "^4.3.0", - "jest": "^26.5.2", - "jest-config": "^26.5.2", - "lerna": "^3.22.1", - "lint-staged": "^10.4.0", - "lodash.camelcase": "^4.3.0", - "prettier": "^2.1.2", - "prompt": "^1.0.0", - "replace-in-file": "^6.1.0", - "rimraf": "^3.0.2", - "rollup-plugin-json": "^4.0.0", - "rollup-plugin-sourcemaps": "^0.6.3", - "rollup-plugin-typescript2": "^0.27.3", - "semantic-release": "^17.2.3", - "shelljs": "^0.8.4", - "ts-jest": "^26.4.1", - "ts-node": "^9.0.0", - "tslint": "^6.1.3", - "tslint-config-prettier": "^1.18.0", - "tslint-config-standard": "^9.0.0", - "typedoc": "^0.19.2", - "typedoc-plugin-lerna-packages": "^0.3.1", - "typescript": "^4.1.2" - }, - "config": { - "commitizen": { - "path": "node_modules/cz-conventional-changelog" - } - }, - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - } - } - } - } - ], - "signature": "-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJfzr68CRAD9Qy5GYHsngAAX8UQAF7OoKHhkGFA9gZziflviaIH\nHl3U/4GqFeo8K05RBMZ4Hy1jRwmdTcR7n01edwudYjkQUyNsySuN1ucIx1ATHQbG\nZySUZg8SW0qRxotT7ZrngWDPDB806INJzAuSBMOBu2Ped/kU8rWkebUgh9SyNNpF\n0l5joqtY5wSucYLA8EFpxcGcB8qghm3uTC42ChNhkS0raB1cRj/R32WMML2eRmIy\n4xcOrjXoJsU6xON2mIvN1QPj3mOY7nRNBGHl+lT+cDxVBgQlvCIjTfpjV7HWQPfR\n6JCOuu/pTj3GNrYkOxSYqj7vgZxcL1k/XPw8nulzRo5NBCHqREaQ9uV5AOV5Sjl6\n/iwUoalEeet8tcpXj5+MTN7mtd0Mlz+DMYNUWreC0aqfm+cYq4BhFlNHG1Dc7Hfd\n78/Toh0x/oqEuoRel76dRgLs1NE4M+ZzBjVekTM9lf7KsWvI+5GtzUD055Ylq0Md\niyGACRbm2VdKDy2WOY3XAMw7lWB/MdNy/cHOy/aCxYMRHyH2tbouqH+ojGubFnlS\n/+qb52EdrKSIuNRWUkY4KE0R52tYcMNEBDt3vk8bVnmWPQarRNLAWlCEzeu13mMY\n3N8zYyjfvB4zAqchqUpsGEd9emFOY6VeBt5NP01UNRXgwhWLwnzdnT4cqofiWMKY\nwDRIhoGZrwzM3O4U1+L4\n=Is6w\n-----END PGP SIGNATURE-----\n" -} \ No newline at end of file diff --git a/typedoc.js b/typedoc.js index ddf5fb3bc3..5313777e75 100644 --- a/typedoc.js +++ b/typedoc.js @@ -1,22 +1,7 @@ module.exports = { - out: 'website/build/typedoc', + mode: 'modules', + out: 'dist/typedoc', readme: 'packages/taquito/README.md', - entryPoints: [ - './packages/taquito/src/taquito.ts', - './packages/taquito-beacon-wallet/src/taquito-beacon-wallet.ts', - './packages/taquito-http-utils/src/taquito-http-utils.ts', - './packages/taquito-ledger-signer/src/taquito-ledger-signer.ts', - './packages/taquito-local-forging/src/taquito-local-forging.ts', - './packages/taquito-michelson-encoder/src/taquito-michelson-encoder.ts', - './packages/taquito-remote-signer/src/taquito-remote-signer.ts', - './packages/taquito-rpc/src/taquito-rpc.ts', - './packages/taquito-signer/src/taquito-signer.ts', - './packages/taquito-tezbridge-signer/src/taquito-tezbridge-signer.ts', - './packages/taquito-tezbridge-wallet/src/taquito-tezbridge-wallet.ts', - './packages/taquito-tzip12/src/taquito-tzip12.ts', - './packages/taquito-tzip16/src/taquito-tzip16.ts', - './packages/taquito-utils/src/taquito-utils.ts', - ], exclude: [ '**/*.spec.ts', '**/data/**', @@ -24,8 +9,15 @@ module.exports = { '**/node_modules/**', '**/rollup*.ts', '**/test/**', - '/coverage/**', + 'example/**/*.ts', + 'integration-tests/**/*.ts', + 'packages/taquito-michel-codec/formatter/*.ts', + 'packages/taquito/example', + 'packages/taquito/website', + 'website/**/*', ], + lernaExclude: [], name: 'Taquito', - excludePrivate: true + excludePrivate: true, + excludeNotExported: true }; diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index d41e7ad615..fb54ffaefe 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -33,7 +33,7 @@ module.exports = { src: 'img/a_taquito.png' }, items: [ - { to: 'docs/version', label: 'v9.0.0', position: 'right' }, + { to: 'docs/version', label: '7.0.1-beta.0', position: 'right' }, { to: 'docs/quick_start', label: 'Docs', position: 'right' }, { href: "https://twitter.com/TezosTaquito", label: 'Twitter', position: 'right' }, { href: "https://github.com/ecadlabs/taquito", label: 'GitHub', position: 'right' } @@ -61,10 +61,6 @@ module.exports = { label: 'Stack Exchange', href: 'https://tezos.stackexchange.com/questions/tagged/taquito', }, - { - label: 'Telegram', - href: 'https://t.me/tezostaquito', - }, { label: 'Twitter', href: 'https://twitter.com/TezosTaquito', diff --git a/website/netlify.toml b/website/netlify.toml deleted file mode 100644 index 882fe806ad..0000000000 --- a/website/netlify.toml +++ /dev/null @@ -1,3 +0,0 @@ -[build] - publish = "build" - \ No newline at end of file diff --git a/website/package-lock.json b/website/package-lock.json index 325d8810d2..a9e0c9fad4 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -4,153 +4,132 @@ "lockfileVersion": 1, "dependencies": { "@airgap/beacon-sdk": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@airgap/beacon-sdk/-/beacon-sdk-2.2.5.tgz", - "integrity": "sha512-4DNh4aPl92+zFD/E5dC4WgAGYOjcJnSxzkBiQGR/oW74GTJe6hL9p0TBnJFqp5fHnqjBQSjT1zQmXG5TIZ3efw==", + "version": "2.0.0-beta.13", + "resolved": "https://registry.npmjs.org/@airgap/beacon-sdk/-/beacon-sdk-2.0.0-beta.13.tgz", + "integrity": "sha512-NzxwbL863UVYxIUSFzwvmrO/mwuaHdo7pKWg6t1UficwIbid0BYBfgN2l1NMpgsXuM6emG+bTyWE8jRyzEERAg==", "requires": { "@types/chrome": "0.0.115", "@types/libsodium-wrappers": "0.7.7", - "axios": "0.21.1", + "axios": "0.19.2", "bignumber.js": "9.0.0", "bs58check": "2.1.2", "libsodium-wrappers": "0.7.8", "qrcode-generator": "1.4.4" } }, - "@algolia/autocomplete-core": { - "version": "1.0.0-alpha.42", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.0.0-alpha.42.tgz", - "integrity": "sha512-0vpVVXO4EhY2L3BLWcikkdcdgb8xUVp9a8LRKFpPKvVi6EQe4/PJGR+cfCMzJeY3dc689IekebNIM8BCb8ONlQ==", - "requires": { - "@algolia/autocomplete-shared": "1.0.0-alpha.42" - } - }, - "@algolia/autocomplete-preset-algolia": { - "version": "1.0.0-alpha.42", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.42.tgz", - "integrity": "sha512-UHyYba+UOASrfV2KyILS3BleSRp2zdSxoAixMbYw7rXcCwpZhF/meFZX3s5Mjdo1u+wkuofTx+gs66UwCQoDsQ==", - "requires": { - "@algolia/autocomplete-shared": "1.0.0-alpha.42" - } - }, - "@algolia/autocomplete-shared": { - "version": "1.0.0-alpha.42", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.0.0-alpha.42.tgz", - "integrity": "sha512-vjSw/LFUFJf87fdBeU97AG0E1997P7f4IiDaXtXIZ7GWXiDAOb6ZCYwQGPkPAXWa/UCl7CrxYvKhkjpP8bN7lQ==" - }, "@algolia/cache-browser-local-storage": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.8.5.tgz", - "integrity": "sha512-9rs/Yi82ilgifweJamOy4DlJ4xPGsCN/zg+RKy4vjytNhOrkEHLRQC8vPZ3OhD8KVlw9lRQIZTlgjgFl8iMeeA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.5.1.tgz", + "integrity": "sha512-TAQHRHaCUAR0bNhUHG0CnO6FTx3EMPwZQrjPuNS6kHvCQ/H8dVD0sLsHyM8C7U4j33xPQCWi9TBnSx8cYXNmNw==", "requires": { - "@algolia/cache-common": "4.8.5" + "@algolia/cache-common": "4.5.1" } }, "@algolia/cache-common": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.8.5.tgz", - "integrity": "sha512-4SvRWnagKtwBFAy8Rsfmv0/Uk53fZL+6dy2idwdx6SjMGKSs0y1Qv+thb4h/k/H5MONisAoT9C2rgZ/mqwh5yw==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.5.1.tgz", + "integrity": "sha512-Sux+pcedQi9sfScIiQdl6pEaTVl712qM9OblvDhnaeF1v6lf4jyTlRTiBLP7YBLuvO1Yo54W3maf03kmz9PVhA==" }, "@algolia/cache-in-memory": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.8.5.tgz", - "integrity": "sha512-XBBfqs28FbjwLboY3sxvuzBgYsuXdFsj2mUvkgxfb0GVEzwW4I0NM7KzSPwT+iht55WS1PgIOnynjmhPsrubCw==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.5.1.tgz", + "integrity": "sha512-fzwAtBFwveuG+E5T/namChEIvdVl0DoV3djV1C078b/JpO5+DeAwuXIJGYbyl950u170n5NEYuIwYG+R6h4lJQ==", "requires": { - "@algolia/cache-common": "4.8.5" + "@algolia/cache-common": "4.5.1" } }, "@algolia/client-account": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.8.5.tgz", - "integrity": "sha512-DjXMpeCdY4J4IDBfowiG6Xl9ec/FhG1NpPQM0Uv4xXsc/TeeZ1JgbgNDhWe9jW0jBEALy+a/RmPrZ0vsxcadsg==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.5.1.tgz", + "integrity": "sha512-2WFEaI7Zf4ljnBsSAS4e+YylZ5glovm78xFg4E1JKA8PE6M+TeIgUY6HO2ouLh2dqQKxc9UfdAT1Loo/dha2iQ==", "requires": { - "@algolia/client-common": "4.8.5", - "@algolia/client-search": "4.8.5", - "@algolia/transporter": "4.8.5" + "@algolia/client-common": "4.5.1", + "@algolia/client-search": "4.5.1", + "@algolia/transporter": "4.5.1" } }, "@algolia/client-analytics": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.8.5.tgz", - "integrity": "sha512-PQEY+chbHmZnRJdaWsvUYzDpEPr60az0EPUexdouvXGZId15/SnDaXjnf89F7tYmCzkHdUtG4bSvPzAupQ4AFA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.5.1.tgz", + "integrity": "sha512-bTmZUU8zhZMWBeGEQ/TVqLoL3OOT0benU0HtS3iOnQURwb+AOCv3RsgZvkj2djp+M24Q6P8/L34uBJMmCurbLg==", "requires": { - "@algolia/client-common": "4.8.5", - "@algolia/client-search": "4.8.5", - "@algolia/requester-common": "4.8.5", - "@algolia/transporter": "4.8.5" + "@algolia/client-common": "4.5.1", + "@algolia/client-search": "4.5.1", + "@algolia/requester-common": "4.5.1", + "@algolia/transporter": "4.5.1" } }, "@algolia/client-common": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.8.5.tgz", - "integrity": "sha512-Dn8vog2VrGsJeOcBMcSAEIjBtPyogzUBGlh1DtVd0m8GN6q+cImCESl6DY846M2PTYWsLBKBksq37eUfSe9FxQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.5.1.tgz", + "integrity": "sha512-5CpIf8IK1hke7q+N4e+A4TWdFXVJ5Qwyaa0xS84DrDO8HQ7vfYbDvG1oYa9hVEtGn6c3WVKPAvuWynK+fXQQCA==", "requires": { - "@algolia/requester-common": "4.8.5", - "@algolia/transporter": "4.8.5" + "@algolia/requester-common": "4.5.1", + "@algolia/transporter": "4.5.1" } }, "@algolia/client-recommendation": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/client-recommendation/-/client-recommendation-4.8.5.tgz", - "integrity": "sha512-ffawCC1C25rCa8/JU2niRZgwr8aV9b2qsLVMo73GXFzi2lceXPAe9K68mt/BGHU+w7PFUwVHsV2VmB+G/HQRVw==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/client-recommendation/-/client-recommendation-4.5.1.tgz", + "integrity": "sha512-GiFrNSImoEBUQICjFBEoxPGzrjWji8PY9GeMg2CNvOYcRQ0Xt0Y36v9GN53NLjvB7QdQ2FlE1Cuv/PLUfS/aQQ==", "requires": { - "@algolia/client-common": "4.8.5", - "@algolia/requester-common": "4.8.5", - "@algolia/transporter": "4.8.5" + "@algolia/client-common": "4.5.1", + "@algolia/requester-common": "4.5.1", + "@algolia/transporter": "4.5.1" } }, "@algolia/client-search": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.8.5.tgz", - "integrity": "sha512-Ru2MljGZWrSQ0CVsDla11oGEPL/RinmVkLJfBtQ+/pk1868VfpAQFGKtOS/b8/xLrMA0Vm4EfC3Mgclk/p3KJA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.5.1.tgz", + "integrity": "sha512-wjuOTte9Auo9Cg4fL0709PjeJ9rXFh4okYUrOt/2SWqQid6DSdZOp+BtyaHKV3E94sj+SlmMxkMUacYluYg5zA==", "requires": { - "@algolia/client-common": "4.8.5", - "@algolia/requester-common": "4.8.5", - "@algolia/transporter": "4.8.5" + "@algolia/client-common": "4.5.1", + "@algolia/requester-common": "4.5.1", + "@algolia/transporter": "4.5.1" } }, "@algolia/logger-common": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.8.5.tgz", - "integrity": "sha512-PS6NS6bpED0rAxgCPGhjZJg9why0PnoVEE7ZoCbPq6lsAOc6FPlQLri4OiLyU7wx8RWDoVtOadyzulqAAsfPSQ==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.5.1.tgz", + "integrity": "sha512-ZoVnGriinlLHlkvn5K7djOUn1/1IeTjU8rDzOJ3t06T+2hQytgJghaX7rSwKIeH4CjWMy61w8jLisuGJRBOEeg==" }, "@algolia/logger-console": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.8.5.tgz", - "integrity": "sha512-3+4gLSbwzuGmrb5go3IZNcFIYVMSbB4c8UMtWEJ/gDBtgGZIvT6f/KlvVSOHIhthSxaM3Y13V6Qile/SpGqc6A==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.5.1.tgz", + "integrity": "sha512-1qa7K18+uAgxyWuguayaDS5ViiZFcOjI3J5ACBb0i/n7RsXUo149lP6mwmx6TIU7s135hT0f0TCqnvfMvN1ilA==", "requires": { - "@algolia/logger-common": "4.8.5" + "@algolia/logger-common": "4.5.1" } }, "@algolia/requester-browser-xhr": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.8.5.tgz", - "integrity": "sha512-M/Gf2vv/fU4+CqDW+wok7HPpEcLym3NtDzU9zaPzGYI/9X7o36581oyfnzt2pNfsXSQVj5a2pZVUWC3Z4SO27w==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.5.1.tgz", + "integrity": "sha512-tsQz+9pZw9dwPm/wMvZDpsWFZgmghLjXi4c3O4rfwoP/Ikum5fhle5fiR14yb4Lw4WlOQ1AJIHJvrg1qLIG8hQ==", "requires": { - "@algolia/requester-common": "4.8.5" + "@algolia/requester-common": "4.5.1" } }, "@algolia/requester-common": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.8.5.tgz", - "integrity": "sha512-OIhsdwIrJVAlVlP7cwlt+RoR5AmxAoTGrFokOY9imVmgqXUUljdKO/DjhRL8vwYGFEidZ9efIjAIQ2B3XOhT9A==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.5.1.tgz", + "integrity": "sha512-bPCiLvhHKXaka7f5FLtheChToz0yHVhvza64naFJRRh/3kC0nvyrvQ0ogjiydiSrGIfdNDyyTVfKGdk4gS5gyA==" }, "@algolia/requester-node-http": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.8.5.tgz", - "integrity": "sha512-viHAjfo53A3VSE7Bb/nzgpSMZ3prPp2qti7Wg8w7qxhntppKp3Fln6t4Vp+BoPOqruLsj139xXhheAKeRcYa0w==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.5.1.tgz", + "integrity": "sha512-BfFc2h9eQOKu1gGs3DtQO7GrVZW/rxUgpJVLja4UVQyGplJyTCrFgkTyfl+8rb3MkNgA/S2LNo7cKNSPfpqeAQ==", "requires": { - "@algolia/requester-common": "4.8.5" + "@algolia/requester-common": "4.5.1" } }, "@algolia/transporter": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.8.5.tgz", - "integrity": "sha512-Rb3cMlh/GoJK0+g+49GNA3IvR/EXsDEBwpyM+FOotSwxgiGt1wGBHM0K2v0GHwIEcuww02pl6KMDVlilA+qh0g==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.5.1.tgz", + "integrity": "sha512-asPDNToDAPhH0tM6qKGTn1l0wTlNUbekpa1ifZ6v+qhSjo3VdqGyp+2VeciJOBW/wVHXh3HUbAcycvLERRlCLg==", "requires": { - "@algolia/cache-common": "4.8.5", - "@algolia/logger-common": "4.8.5", - "@algolia/requester-common": "4.8.5" + "@algolia/cache-common": "4.5.1", + "@algolia/logger-common": "4.5.1", + "@algolia/requester-common": "4.5.1" } }, "@babel/code-frame": { @@ -162,65 +141,33 @@ } }, "@babel/compat-data": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.13.tgz", - "integrity": "sha512-U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg==" + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.1.tgz", + "integrity": "sha512-725AQupWJZ8ba0jbKceeFblZTY90McUBWMwHhkFQ9q1zKPJ95GUktljFcgcsIVwRnTnRKlcYzfiNImg5G9m6ZQ==" }, "@babel/core": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz", - "integrity": "sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helpers": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", + "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.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==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -229,40 +176,59 @@ } }, "@babel/generator": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz", - "integrity": "sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", + "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", "requires": { - "@babel/types": "^7.12.13", + "@babel/types": "^7.12.1", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", - "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", "requires": { - "@babel/helper-explode-assignable-expression": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", + "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.12.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz", + "integrity": "sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-module-imports": "^7.12.1", + "@babel/types": "^7.12.1" } }, "@babel/helper-compilation-targets": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.13.tgz", - "integrity": "sha512-dXof20y/6wB5HnLOGyLh/gobsMvDNoekcC+8MCV2iaTd5JemhFkPD73QB+tK3iFC9P0xJC73B6MvKkyUfS9cCw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.1.tgz", + "integrity": "sha512-jtBEif7jsPwP27GPHs06v4WBV0KrE8a/P7n0N0sSvHn2hwUCYnolP/CLmz51IzAW4NlN+HuoBtb9QcwnRo9F/g==", "requires": { - "@babel/compat-data": "^7.12.13", - "@babel/helper-validator-option": "^7.12.11", - "browserslist": "^4.14.5", + "@babel/compat-data": "^7.12.1", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.12.0", "semver": "^5.5.0" }, "dependencies": { @@ -274,139 +240,151 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz", - "integrity": "sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13" + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.13.tgz", - "integrity": "sha512-XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", + "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", "regexpu-core": "^4.7.1" } }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, "@babel/helper-explode-assignable-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz", - "integrity": "sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-hoist-variables": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.12.13.tgz", - "integrity": "sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz", - "integrity": "sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz", + "integrity": "sha512-ZeC1TlMSvikvJNy1v/wPIazCu3NdOwgYZLIkmIyAsGhqkNpiDoQQRmaCK8YP4Pq3GPTLPV9WXaPCJKvx06JxKA==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-transforms": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz", - "integrity": "sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA==", - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" - } } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==" + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", + "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", + "requires": { + "lodash": "^4.17.19" + } }, "@babel/helper-remap-async-to-generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz", - "integrity": "sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-wrap-function": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" } }, "@babel/helper-replace-supers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz", - "integrity": "sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz", + "integrity": "sha512-zJjTvtNJnCFsCXVi5rUInstLd/EIVNmIKA1Q9ynESmMBWPWd+7sdR+G4/wdu+Mppfep0XLyG2m7EBPvjCeFyrw==", "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.12.1" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -418,11 +396,11 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { @@ -431,29 +409,29 @@ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" }, "@babel/helper-validator-option": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", - "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==" + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", + "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==" }, "@babel/helper-wrap-function": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.13.tgz", - "integrity": "sha512-t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw==", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helpers": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz", - "integrity": "sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.1.tgz", + "integrity": "sha512-9JoDSBGoWtmbay98efmT2+mySkwjzeFeAL9BuWNoVQpkPFQF8SIIFUfY5os9u8wVzglzoiPRSW7cuJmBDUt43g==", "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1" } }, "@babel/highlight": { @@ -479,27 +457,27 @@ } }, "@babel/parser": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz", - "integrity": "sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA==" + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.3.tgz", + "integrity": "sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw==" }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.13.tgz", - "integrity": "sha512-1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-remap-async-to-generator": "^7.12.13", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz", - "integrity": "sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-dynamic-import": { @@ -512,95 +490,95 @@ } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", - "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.13.tgz", - "integrity": "sha512-v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.0" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.13.tgz", - "integrity": "sha512-fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.13.tgz", - "integrity": "sha512-Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", - "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz", + "integrity": "sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.13.tgz", - "integrity": "sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.13" + "@babel/plugin-transform-parameters": "^7.12.1" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.13.tgz", - "integrity": "sha512-9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.13.tgz", - "integrity": "sha512-0ZwjGfTcnZqyV3y9DSD1Yk3ebp+sIUpT2YDqP8hovzaNZnQq2Kd7PEqa6iOIUDBXBt7Jl3P7YAcEIL5Pz8u09Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.13.tgz", - "integrity": "sha512-sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", - "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-async-generators": { @@ -612,11 +590,11 @@ } }, "@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==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-dynamic-import": { @@ -644,11 +622,11 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", - "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -700,296 +678,279 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-typescript": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz", - "integrity": "sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz", + "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.13.tgz", - "integrity": "sha512-tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.13.tgz", - "integrity": "sha512-psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-remap-async-to-generator": "^7.12.13" + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", - "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", - "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-classes": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.13.tgz", - "integrity": "sha512-cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.13.tgz", - "integrity": "sha512-dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-destructuring": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.13.tgz", - "integrity": "sha512-Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", - "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", - "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", - "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-for-of": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.13.tgz", - "integrity": "sha512-xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", - "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", - "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", - "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.13.tgz", - "integrity": "sha512-JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", "requires": { - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "dependencies": { - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - } } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.13.tgz", - "integrity": "sha512-OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", "requires": { - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "dependencies": { - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - } } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz", - "integrity": "sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA==", - "requires": { - "@babel/helper-hoist-variables": "^7.12.13", - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - } } }, "@babel/plugin-transform-modules-umd": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.13.tgz", - "integrity": "sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", "requires": { - "@babel/helper-module-transforms": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", - "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.12.1" } }, "@babel/plugin-transform-new-target": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", - "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-object-super": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", - "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" } }, "@babel/plugin-transform-parameters": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.13.tgz", - "integrity": "sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-property-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", - "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-constant-elements": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.13.tgz", - "integrity": "sha512-qmzKVTn46Upvtxv8LQoQ8mTCdUC83AOVQIQm57e9oekLT5cmK9GOMOfcWhe8jMNx4UJXn/UDhVZ/7lGofVNeDQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.1.tgz", + "integrity": "sha512-KOHd0tIRLoER+J+8f9DblZDa1fLGPwaaN1DI1TVHuQFOpjHV22C3CUB3obeC4fexHY9nx+fH0hQNvLFFfA1mxA==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", - "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz", + "integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.13.tgz", - "integrity": "sha512-hhXZMYR8t9RvduN2uW4sjl6MRtUhzNE726JvoJhpjhxKgRUVkZqTsA0xc49ALZxQM7H26pZ/lLvB2Yrea9dllA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.1.tgz", + "integrity": "sha512-RmKejwnT0T0QzQUzcbP5p1VWlpnP8QHtdhEtLG55ZDQnJNalbF3eeDyu3dnGKvGzFIQiBzFhBYTwvv435p9Xpw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-builder-react-jsx": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.12.1" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz", - "integrity": "sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.1.tgz", + "integrity": "sha512-IilcGWdN1yNgEGOrB96jbTplRh+V2Pz1EoEwsKsHfX1a/L40cUYuD71Zepa7C+ujv7kJIxnDftWeZbKNEqZjCQ==", "requires": { - "@babel/plugin-transform-react-jsx": "^7.12.12" + "@babel/helper-builder-react-jsx-experimental": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.12.1" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz", + "integrity": "sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz", + "integrity": "sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-pure-annotations": { @@ -1002,28 +963,29 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", - "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", - "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-runtime": { - "version": "7.12.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.15.tgz", - "integrity": "sha512-OwptMSRnRWJo+tJ9v9wgAf72ydXWfYSXWhnQjZing8nGZSDFqU1MBleKM3+DriKkcbv7RagA8gVeB0A1PNlNow==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", "semver": "^5.5.1" }, "dependencies": { @@ -1035,98 +997,99 @@ } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", - "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-spread": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.13.tgz", - "integrity": "sha512-dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.10.4", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", - "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz", + "integrity": "sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" } }, "@babel/plugin-transform-template-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.13.tgz", - "integrity": "sha512-arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", - "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", + "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typescript": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.13.tgz", - "integrity": "sha512-z1VWskPJxK9tfxoYvePWvzSJC+4pxXr8ArmRm5ofqgi+mwpKg6lvtomkIngBYMJVnKhsFYVysCQLDn//v2RHcg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz", + "integrity": "sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-typescript": "^7.12.13" + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-typescript": "^7.12.1" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", - "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", - "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/preset-env": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.13.tgz", - "integrity": "sha512-JUVlizG8SoFTz4LmVUL8++aVwzwxcvey3N0j1tRbMAXVEy95uQ/cnEkmEKHN00Bwq4voAV3imQGnQvpkLAxsrw==", - "requires": { - "@babel/compat-data": "^7.12.13", - "@babel/helper-compilation-targets": "^7.12.13", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-validator-option": "^7.12.11", - "@babel/plugin-proposal-async-generator-functions": "^7.12.13", - "@babel/plugin-proposal-class-properties": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", + "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", + "requires": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.13", - "@babel/plugin-proposal-json-strings": "^7.12.13", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.13", - "@babel/plugin-proposal-numeric-separator": "^7.12.13", - "@babel/plugin-proposal-object-rest-spread": "^7.12.13", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.13", - "@babel/plugin-proposal-optional-chaining": "^7.12.13", - "@babel/plugin-proposal-private-methods": "^7.12.13", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-properties": "^7.12.1", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.0", @@ -1136,42 +1099,42 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.13", - "@babel/plugin-transform-arrow-functions": "^7.12.13", - "@babel/plugin-transform-async-to-generator": "^7.12.13", - "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.12.13", - "@babel/plugin-transform-classes": "^7.12.13", - "@babel/plugin-transform-computed-properties": "^7.12.13", - "@babel/plugin-transform-destructuring": "^7.12.13", - "@babel/plugin-transform-dotall-regex": "^7.12.13", - "@babel/plugin-transform-duplicate-keys": "^7.12.13", - "@babel/plugin-transform-exponentiation-operator": "^7.12.13", - "@babel/plugin-transform-for-of": "^7.12.13", - "@babel/plugin-transform-function-name": "^7.12.13", - "@babel/plugin-transform-literals": "^7.12.13", - "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.12.13", - "@babel/plugin-transform-modules-commonjs": "^7.12.13", - "@babel/plugin-transform-modules-systemjs": "^7.12.13", - "@babel/plugin-transform-modules-umd": "^7.12.13", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", - "@babel/plugin-transform-new-target": "^7.12.13", - "@babel/plugin-transform-object-super": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.12.13", - "@babel/plugin-transform-property-literals": "^7.12.13", - "@babel/plugin-transform-regenerator": "^7.12.13", - "@babel/plugin-transform-reserved-words": "^7.12.13", - "@babel/plugin-transform-shorthand-properties": "^7.12.13", - "@babel/plugin-transform-spread": "^7.12.13", - "@babel/plugin-transform-sticky-regex": "^7.12.13", - "@babel/plugin-transform-template-literals": "^7.12.13", - "@babel/plugin-transform-typeof-symbol": "^7.12.13", - "@babel/plugin-transform-unicode-escapes": "^7.12.13", - "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.13", - "core-js-compat": "^3.8.0", + "@babel/types": "^7.12.1", + "core-js-compat": "^3.6.2", "semver": "^5.5.0" }, "dependencies": { @@ -1195,155 +1158,79 @@ } }, "@babel/preset-react": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.13.tgz", - "integrity": "sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-transform-react-display-name": "^7.12.13", - "@babel/plugin-transform-react-jsx": "^7.12.13", - "@babel/plugin-transform-react-jsx-development": "^7.12.12", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.1.tgz", + "integrity": "sha512-euCExymHCi0qB9u5fKw7rvlw7AZSjw/NaB9h7EkdTt5+yHRrXdiRTh7fkG3uBPpJg82CqLfp1LHLqWGSCrab+g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-react-display-name": "^7.12.1", + "@babel/plugin-transform-react-jsx": "^7.12.1", + "@babel/plugin-transform-react-jsx-development": "^7.12.1", + "@babel/plugin-transform-react-jsx-self": "^7.12.1", + "@babel/plugin-transform-react-jsx-source": "^7.12.1", "@babel/plugin-transform-react-pure-annotations": "^7.12.1" } }, "@babel/preset-typescript": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.13.tgz", - "integrity": "sha512-gYry7CeXwD2wtw5qHzrtzKaShEhOfTmKb4i0ZxeYBcBosN5VuAudsNbjX7Oj5EAfQ3K4s4HsVMQRRcqGsPvs2A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz", + "integrity": "sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-validator-option": "^7.12.11", - "@babel/plugin-transform-typescript": "^7.12.13" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.12.1" } }, "@babel/runtime": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz", - "integrity": "sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", + "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.13.tgz", - "integrity": "sha512-8fSpqYRETHATtNitsCXq8QQbKJP31/KnDl2Wz2Vtui9nKzjss2ysuZtyVsWjBtvkeEFo346gkwjYPab1hvrXkQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.1.tgz", + "integrity": "sha512-umhPIcMrlBZ2aTWlWjUseW9LjQKxi1dpFlQS8DzsxB//5K+u6GLTC/JliPKHsd5kJVPIU6X/Hy0YvWOYPcMxBw==", "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.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==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", - "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.1.tgz", + "integrity": "sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.1", + "@babel/types": "^7.12.1", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" - }, - "@babel/highlight": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", - "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "chalk": "^2.0.0", - "js-tokens": "^4.0.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==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } } }, "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", + "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" - } } }, "@csstools/convert-colors": { @@ -1352,71 +1239,67 @@ "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" }, "@docsearch/css": { - "version": "3.0.0-alpha.33", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.0.0-alpha.33.tgz", - "integrity": "sha512-7k/d960WaCRPxZqKwasSH2+pmKW+IeQ14zvS8t7T59OeW24G4N9xuLnpBf1XZ6IyS2AS3KPwRomwRX78qpETVg==" + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-1.0.0-alpha.28.tgz", + "integrity": "sha512-1AhRzVdAkrWwhaxTX6/R7SnFHz8yLz1W8I/AldlTrfbNvZs9INk1FZiEFTJdgHaP68nhgQNWSGlQiDiI3y2RYg==" }, "@docsearch/react": { - "version": "3.0.0-alpha.33", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.0.0-alpha.33.tgz", - "integrity": "sha512-XOhaUsxiq62umpGMfgzey45H6Id7qOa2DyJJOIpZHEeo5uFVkxc7Qamng+ETdUIn9ql8tWRPzjTh5OAtjJAgxw==", + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-1.0.0-alpha.28.tgz", + "integrity": "sha512-XjJOnCBXn+UZmtuDmgzlVIHnnvh6yHVwG4aFq8AXN6xJEIX3f180FvGaowFWAxgdtHplJxFGux0Xx4piHqBzIw==", "requires": { - "@algolia/autocomplete-core": "^1.0.0-alpha.35", - "@algolia/autocomplete-preset-algolia": "^1.0.0-alpha.35", - "@docsearch/css": "3.0.0-alpha.33", + "@docsearch/css": "^1.0.0-alpha.28", + "@francoischalifour/autocomplete-core": "^1.0.0-alpha.28", + "@francoischalifour/autocomplete-preset-algolia": "^1.0.0-alpha.28", "algoliasearch": "^4.0.0" } }, "@docusaurus/core": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-alpha.70.tgz", - "integrity": "sha512-ccDcr5eb5T3C6k7VoqTclBFwjVkIHK1zISdhqzRNVl8AZTql1bYMvGUJP+2WbF6RSdmsGTNWreaUlrJc00dQqw==", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-alpha.66.tgz", + "integrity": "sha512-9HKqObYoyArpzSTIDguyUXm7z54bpV3dSWSc0PbKGu0Us6zP1TiOuhRDX1diFsKyvjNy7VbCe8XH8LJIdKi5dQ==", "requires": { - "@babel/core": "^7.12.3", - "@babel/generator": "^7.12.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/core": "^7.9.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", + "@babel/plugin-proposal-optional-chaining": "^7.10.3", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@babel/preset-typescript": "^7.12.1", - "@babel/runtime": "^7.12.5", - "@babel/runtime-corejs3": "^7.12.5", - "@babel/traverse": "^7.12.5", - "@docusaurus/cssnano-preset": "2.0.0-alpha.70", - "@docusaurus/types": "2.0.0-alpha.70", - "@docusaurus/utils": "2.0.0-alpha.70", - "@docusaurus/utils-validation": "2.0.0-alpha.70", + "@babel/plugin-transform-runtime": "^7.9.0", + "@babel/preset-env": "^7.9.0", + "@babel/preset-react": "^7.9.4", + "@babel/preset-typescript": "^7.9.0", + "@babel/runtime": "^7.9.2", + "@babel/runtime-corejs3": "^7.10.4", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", "@endiliey/static-site-generator-webpack-plugin": "^4.0.0", + "@hapi/joi": "^17.1.1", "@svgr/webpack": "^5.4.0", - "babel-loader": "^8.2.1", - "babel-plugin-dynamic-import-node": "2.3.0", + "babel-loader": "^8.1.0", + "babel-plugin-dynamic-import-node": "^2.3.0", "boxen": "^4.2.0", "cache-loader": "^4.1.0", "chalk": "^3.0.0", - "chokidar": "^3.4.3", - "clean-css": "^4.2.3", + "chokidar": "^3.3.0", "commander": "^4.0.1", - "copy-webpack-plugin": "^6.3.0", + "copy-webpack-plugin": "^6.0.3", "core-js": "^2.6.5", "css-loader": "^3.4.2", "del": "^5.1.0", "detect-port": "^1.3.0", - "eta": "^1.11.0", + "eta": "^1.1.1", "express": "^4.17.1", - "file-loader": "^6.2.0", - "fs-extra": "^9.0.1", + "file-loader": "^6.0.0", + "fs-extra": "^8.1.0", "globby": "^10.0.1", - "html-minifier-terser": "^5.1.1", + "html-minifier-terser": "^5.0.5", "html-tags": "^3.1.0", - "html-webpack-plugin": "^4.5.0", - "import-fresh": "^3.2.2", + "html-webpack-plugin": "^4.0.4", + "import-fresh": "^3.2.1", "inquirer": "^7.2.0", "is-root": "^2.1.0", - "joi": "^17.2.1", "leven": "^3.1.0", - "lodash": "^4.17.20", + "lodash": "^4.5.2", "lodash.flatmap": "^4.5.0", "lodash.has": "^4.5.2", "lodash.isplainobject": "^4.0.6", @@ -1424,17 +1307,17 @@ "mini-css-extract-plugin": "^0.8.0", "nprogress": "^0.2.0", "null-loader": "^3.0.0", - "optimize-css-assets-webpack-plugin": "^5.0.4", + "optimize-css-assets-webpack-plugin": "^5.0.3", "pnp-webpack-plugin": "^1.6.4", "postcss-loader": "^3.0.0", "postcss-preset-env": "^6.7.0", "react-dev-utils": "^10.2.1", - "react-helmet": "^6.1.0", + "react-helmet": "^6.0.0-beta", "react-loadable": "^5.5.0", "react-loadable-ssr-addon": "^0.3.0", - "react-router": "^5.2.0", + "react-router": "^5.1.2", "react-router-config": "^5.1.1", - "react-router-dom": "^5.2.0", + "react-router-dom": "^5.1.2", "resolve-pathname": "^3.0.0", "semver": "^6.3.0", "serve-handler": "^6.1.3", @@ -1442,8 +1325,8 @@ "std-env": "^2.2.1", "terser-webpack-plugin": "^4.1.0", "update-notifier": "^4.1.0", - "url-loader": "^4.1.1", - "wait-on": "^5.2.0", + "url-loader": "^4.1.0", + "wait-file": "^1.0.5", "webpack": "^4.44.1", "webpack-bundle-analyzer": "^3.6.1", "webpack-dev-server": "^3.11.0", @@ -1451,59 +1334,67 @@ "webpackbar": "^4.0.0" } }, - "@docusaurus/cssnano-preset": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-alpha.70.tgz", - "integrity": "sha512-Zwk3SrlE5r/z5j/tjDcs4XoyeoyymCtEovoxLWLV7wb+iR1qb+Jdso4TRShAepbW/ff6SzjCZ8hRy8ahXPD9TA==", - "requires": { - "cssnano-preset-advanced": "^4.0.7", - "postcss": "^7.0.2", - "postcss-combine-duplicated-selectors": "^9.1.0", - "postcss-sort-media-queries": "^1.7.26" - } - }, "@docusaurus/mdx-loader": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-alpha.70.tgz", - "integrity": "sha512-CDR4O4z7wO5/S8O3TAggCynnuBIGIlUT9q9uhhkDe8h5XDhF8n8d6bwqir0O+fUMN3EnyrMq6z1g4IDRB5G2vw==", - "requires": { - "@babel/parser": "^7.12.5", - "@babel/traverse": "^7.12.5", - "@docusaurus/core": "2.0.0-alpha.70", - "@docusaurus/utils": "2.0.0-alpha.70", - "@mdx-js/mdx": "^1.6.21", - "@mdx-js/react": "^1.6.21", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-alpha.66.tgz", + "integrity": "sha512-IvtrTNeAaynEGgfCbC4CeBgO76Mu76cGogBGv8a84bYeyCOtlxOJoH6JHkJ7T/v5D6lM16qzwx5oqesZ0kZuzA==", + "requires": { + "@babel/parser": "^7.9.4", + "@babel/traverse": "^7.9.0", + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@mdx-js/mdx": "^1.5.8", + "@mdx-js/react": "^1.5.8", "escape-html": "^1.0.3", - "file-loader": "^6.2.0", - "fs-extra": "^9.0.1", + "file-loader": "^6.0.0", + "fs-extra": "^8.1.0", "github-slugger": "^1.3.0", "gray-matter": "^4.0.2", - "loader-utils": "^2.0.0", + "loader-utils": "^1.2.3", "mdast-util-to-string": "^1.1.0", "remark-emoji": "^2.1.0", "stringify-object": "^3.3.0", "unist-util-visit": "^2.0.2", - "url-loader": "^4.1.1", - "webpack": "^4.44.1" + "url-loader": "^4.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } } }, "@docusaurus/plugin-content-blog": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-alpha.70.tgz", - "integrity": "sha512-qWXlSDovkhCZLJR0Wz4e3YcNjlelpuSNkS1rJ8sI1ehs/n32lj7A/nVoRfS/LnOMfIciY48vVPr64VLb6dfEeg==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.70", - "@docusaurus/mdx-loader": "2.0.0-alpha.70", - "@docusaurus/types": "2.0.0-alpha.70", - "@docusaurus/utils": "2.0.0-alpha.70", - "@docusaurus/utils-validation": "2.0.0-alpha.70", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-alpha.66.tgz", + "integrity": "sha512-voK5ZUZcUn5blIDakYNKQ42wPMZLfrZnvEJuwh/8S/W1oNbPN935NBu9vL23fHEmp9L2MGykAdaCmev0Su04yQ==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/mdx-loader": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", + "@hapi/joi": "^17.1.1", "chalk": "^3.0.0", - "feed": "^4.2.1", - "fs-extra": "^9.0.1", + "feed": "^4.1.0", + "fs-extra": "^8.1.0", "globby": "^10.0.1", - "joi": "^17.2.1", "loader-utils": "^1.2.3", - "lodash": "^4.17.20", + "lodash": "^4.5.2", "reading-time": "^1.2.0", "remark-admonitions": "^1.2.1", "webpack": "^4.44.1" @@ -1530,21 +1421,21 @@ } }, "@docusaurus/plugin-content-docs": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-alpha.70.tgz", - "integrity": "sha512-LZre12Q0sxLgi2XgjQbNQMV+jFG7v0+8hRzgBL+iCRiLCa4NlV7+M6mEHJGJJXSKqbfH7CelaUOESqEgPpVQXQ==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.70", - "@docusaurus/mdx-loader": "2.0.0-alpha.70", - "@docusaurus/types": "2.0.0-alpha.70", - "@docusaurus/utils": "2.0.0-alpha.70", - "@docusaurus/utils-validation": "2.0.0-alpha.70", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-alpha.66.tgz", + "integrity": "sha512-jvFKJR7BgjIq6xdmPg+7d2DS1fBeuIfmRTtB/apgfIW8NWO5N0DRYXOj0lgpw/ICwW//o8cLbrN+jkLlzTV/eg==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/mdx-loader": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", + "@hapi/joi": "17.1.1", "chalk": "^3.0.0", "execa": "^3.4.0", - "fs-extra": "^9.0.1", + "fs-extra": "^8.1.0", "globby": "^10.0.1", - "import-fresh": "^3.2.2", - "joi": "^17.2.1", + "import-fresh": "^3.2.1", "loader-utils": "^1.2.3", "lodash": "^4.17.19", "lodash.flatmap": "^4.5.0", @@ -1622,19 +1513,18 @@ } }, "@docusaurus/plugin-content-pages": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-alpha.70.tgz", - "integrity": "sha512-HiFa5l1RDs155ATyYKkPtyIs/d6WJgSAyVfY5ji0Bsixp/K/Kh9YUZYMeTfeMIdhGYe3AAJz+PSZHYRpwTo1wA==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.70", - "@docusaurus/mdx-loader": "2.0.0-alpha.70", - "@docusaurus/types": "2.0.0-alpha.70", - "@docusaurus/utils": "2.0.0-alpha.70", - "@docusaurus/utils-validation": "2.0.0-alpha.70", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-alpha.66.tgz", + "integrity": "sha512-mY26Aeb/Wf+NFLy70YvXgdLTB+2iPN0SKOVKYwgg6ZN7Nm2kPwEpSVRq2iwiqlWk2G/vOM+ADm99Gxvm3kS61A==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/mdx-loader": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", + "@hapi/joi": "17.1.1", "globby": "^10.0.1", - "joi": "^17.2.1", "loader-utils": "^1.2.3", - "lodash": "^4.17.19", "minimatch": "^3.0.4", "remark-admonitions": "^1.2.1", "slash": "^3.0.0", @@ -1662,136 +1552,121 @@ } }, "@docusaurus/plugin-debug": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-alpha.70.tgz", - "integrity": "sha512-h/x5KtS/YJerhY6C6sJOaP9gMaSVnjj1qZ6r9E/IFujQJ7bSKnk1unqBQpVXADkQhP081ENPL01ubc0/JbE1Mw==", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-alpha.66.tgz", + "integrity": "sha512-9AZaEUxaY0CDOCWXQMfY3TzG79HkquZlVeJOZaA6IvCoK/Oq3B58TMNLiQyA6TA2DYf5ZYQorLJaMd02x5qBQw==", "requires": { - "@docusaurus/core": "2.0.0-alpha.70", - "@docusaurus/types": "2.0.0-alpha.70", - "@docusaurus/utils": "2.0.0-alpha.70", + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", "react-json-view": "^1.19.1" } }, "@docusaurus/plugin-google-analytics": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-alpha.70.tgz", - "integrity": "sha512-Ah9W83ZnA0VvmflKNuGq5f/CaEjWJxhjkISQn09/ykEvXfWV33000Bhck4RoCr5YxD+GBEBT5suG5LKH7Qkigw==", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-alpha.66.tgz", + "integrity": "sha512-HVWRLHtlQYpVqH3MHloUmktJMXt7oMDQzBlKzrwAMiWUK1oXFX35DrKjTt2SE2SADpObnwWFjo0E71YT0ApQLw==", "requires": { - "@docusaurus/core": "2.0.0-alpha.70" + "@docusaurus/core": "2.0.0-alpha.66" } }, "@docusaurus/plugin-google-gtag": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-alpha.70.tgz", - "integrity": "sha512-K3s894PqMPQnGXEZs0bSs2bRE3bVXFYSb/RN+K9sNd7zxGuOX4UytuvpXP+1r0Hj/YTwQIjj7AKsND0ZpDJHyw==", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-alpha.66.tgz", + "integrity": "sha512-MVnzApLSQaC38nVS+A/WkXEV4kHeX6Q/KM2DqkLeovNWLBtkQ0aHL3bvn1clAEmB33Pia0v93mzG+I1+9mrquA==", "requires": { - "@docusaurus/core": "2.0.0-alpha.70" + "@docusaurus/core": "2.0.0-alpha.66" } }, "@docusaurus/plugin-sitemap": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-alpha.70.tgz", - "integrity": "sha512-ev9yNLPoeHP03jTz67daGd7yA7YhUwHeoWz14SyiKuU7OYtwL/8SJTn/V5kMDRl7o8FRQt9T//mRkpa270hmXw==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.70", - "@docusaurus/types": "2.0.0-alpha.70", - "fs-extra": "^9.0.1", - "joi": "^17.2.1", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-alpha.66.tgz", + "integrity": "sha512-ztDevVIREyq8g+QhSGpDqscVqtubcPnEE3a4JwWSALQ2D6JscIxg897axwZSZNUMxrHBuXRjOEYOtVb/O/stVg==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@hapi/joi": "17.1.1", + "fs-extra": "^8.1.0", "sitemap": "^3.2.2" } }, "@docusaurus/preset-classic": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-alpha.70.tgz", - "integrity": "sha512-Zx98KryJjHiqzGisWKR0glXl0HXuf/YbcK9yUl6ySyS+6cIMAuGMS0HGLgbvvEmYjywz7nMLpijzGderEOihjQ==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.70", - "@docusaurus/plugin-content-blog": "2.0.0-alpha.70", - "@docusaurus/plugin-content-docs": "2.0.0-alpha.70", - "@docusaurus/plugin-content-pages": "2.0.0-alpha.70", - "@docusaurus/plugin-debug": "2.0.0-alpha.70", - "@docusaurus/plugin-google-analytics": "2.0.0-alpha.70", - "@docusaurus/plugin-google-gtag": "2.0.0-alpha.70", - "@docusaurus/plugin-sitemap": "2.0.0-alpha.70", - "@docusaurus/theme-classic": "2.0.0-alpha.70", - "@docusaurus/theme-search-algolia": "2.0.0-alpha.70" + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-alpha.66.tgz", + "integrity": "sha512-FjxjchzUS6vOUSr9Pc5kqOSQAnc+cAYsR4pTlqwD2uOJcZMr2vQ6jeKbJnhEmUYwAvzdKOVnCndnxbA+Ii8L3w==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/plugin-content-blog": "2.0.0-alpha.66", + "@docusaurus/plugin-content-docs": "2.0.0-alpha.66", + "@docusaurus/plugin-content-pages": "2.0.0-alpha.66", + "@docusaurus/plugin-debug": "2.0.0-alpha.66", + "@docusaurus/plugin-google-analytics": "2.0.0-alpha.66", + "@docusaurus/plugin-google-gtag": "2.0.0-alpha.66", + "@docusaurus/plugin-sitemap": "2.0.0-alpha.66", + "@docusaurus/theme-classic": "2.0.0-alpha.66", + "@docusaurus/theme-search-algolia": "2.0.0-alpha.66" } }, "@docusaurus/theme-classic": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-alpha.70.tgz", - "integrity": "sha512-lKU+fgSd08fo3LNYTw31Wty7RgAdFm8bEOwBNkKZcCFnatTSG4qyDbrDZclCQT/SpXSv9XIEKUc0irg2IH6Qrg==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.70", - "@docusaurus/plugin-content-blog": "2.0.0-alpha.70", - "@docusaurus/plugin-content-docs": "2.0.0-alpha.70", - "@docusaurus/plugin-content-pages": "2.0.0-alpha.70", - "@docusaurus/theme-common": "2.0.0-alpha.70", - "@docusaurus/types": "2.0.0-alpha.70", - "@docusaurus/utils": "2.0.0-alpha.70", - "@docusaurus/utils-validation": "2.0.0-alpha.70", - "@mdx-js/mdx": "^1.6.21", - "@mdx-js/react": "^1.6.21", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-alpha.66.tgz", + "integrity": "sha512-WsWqzfzA2gIF5TUMGSbiAeDeNZtKvsgymTQzalcwyhyT/QI0ywcag+03Bmjeq4H3PTC3qU+tkhddO2Rh5w/YCw==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/plugin-content-blog": "2.0.0-alpha.66", + "@docusaurus/plugin-content-docs": "2.0.0-alpha.66", + "@docusaurus/plugin-content-pages": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", + "@hapi/joi": "^17.1.1", + "@mdx-js/mdx": "^1.5.8", + "@mdx-js/react": "^1.5.8", "@types/react-toggle": "^4.0.2", "clsx": "^1.1.1", "copy-text-to-clipboard": "^2.2.0", - "infima": "0.2.0-alpha.18", - "joi": "^17.2.1", + "infima": "0.2.0-alpha.13", "lodash": "^4.17.19", - "parse-numeric-range": "^1.2.0", - "prism-react-renderer": "^1.1.1", - "prismjs": "^1.22.0", + "parse-numeric-range": "^0.0.2", + "prism-react-renderer": "^1.1.0", + "prismjs": "^1.20.0", "prop-types": "^15.7.2", - "react-router-dom": "^5.2.0", + "react-router-dom": "^5.1.2", "react-toggle": "^4.1.1" } }, - "@docusaurus/theme-common": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-alpha.70.tgz", - "integrity": "sha512-Ge/dLGPCJhtyvumSMg0BlWcF00d1Qd2KnHf8kL/0nTxe257yNTHIOK95LKhIPAdcVgxG+ge9N0XcBm4KaubASQ==", - "requires": { - "@docusaurus/core": "2.0.0-alpha.70", - "@docusaurus/plugin-content-blog": "2.0.0-alpha.70", - "@docusaurus/plugin-content-docs": "2.0.0-alpha.70", - "@docusaurus/plugin-content-pages": "2.0.0-alpha.70", - "@docusaurus/types": "2.0.0-alpha.70" - } - }, "@docusaurus/theme-live-codeblock": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-live-codeblock/-/theme-live-codeblock-2.0.0-alpha.70.tgz", - "integrity": "sha512-9fFC6MeazqmfzbnKgUFDiKmF1Zs5rG4CXCsxDcNbu/XZMd2xMrI5UlQfo+yfNAKX2aWvjaqThLfxRkJzI2guIA==", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-live-codeblock/-/theme-live-codeblock-2.0.0-alpha.66.tgz", + "integrity": "sha512-EHDvl5vwZat2N87GuC08PfyB+aMCmH5ngw09fZJXwH4zvkloV67n2GShl7/B0GY6MD4od9QqCZ8tr5eNKqPLkQ==", "requires": { - "@docusaurus/core": "2.0.0-alpha.70", + "@docusaurus/core": "2.0.0-alpha.66", "@philpl/buble": "^0.19.7", "clsx": "^1.1.1", - "parse-numeric-range": "^1.2.0", - "prism-react-renderer": "^1.1.1", - "react-live": "^2.2.3" + "parse-numeric-range": "^0.0.2", + "prism-react-renderer": "^1.1.0", + "react-live": "^2.2.1" } }, "@docusaurus/theme-search-algolia": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-alpha.70.tgz", - "integrity": "sha512-xuoWZ+HUKzn1A5vPlNZM8mtyRL5uo15o34OX/i7HkTRmBVymWO1bBE0lECfDVJU2JUYGmwjpDXhZzNLDZmZRWg==", - "requires": { - "@docsearch/react": "^3.0.0-alpha.31", - "@docusaurus/core": "2.0.0-alpha.70", - "@docusaurus/theme-common": "2.0.0-alpha.70", - "@docusaurus/utils": "2.0.0-alpha.70", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-alpha.66.tgz", + "integrity": "sha512-5k/Fwt81Gyjv9vPE+gO8mraEHx5IqEmHLwqld5yXj7yix5XrxywkaanHqC0cFJG4MFUBgF6vNjJC8CtfLnT4Tw==", + "requires": { + "@docsearch/react": "^1.0.0-alpha.27", + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@hapi/joi": "^17.1.1", "algoliasearch": "^4.0.0", "algoliasearch-helper": "^3.1.1", "clsx": "^1.1.1", - "eta": "^1.11.0", - "joi": "^17.2.1", + "eta": "^1.1.1", "lodash": "^4.17.19" } }, "@docusaurus/types": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-alpha.70.tgz", - "integrity": "sha512-QoHmMiJhRDq5P/4o3eUIiJebdwRjShFlal01DST5B8MZo4k0ogl57FNHqJvIHc93NgonZzFlvC/auLlBnc/d4Q==", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-alpha.66.tgz", + "integrity": "sha512-Zd2Kguw0+3faifr83ruIV4i/+KqfqM+zK3DpqCBxdtkP+ORLKbgsIQ48fJ40OOhQrvl38Ay4E+1w7USrrkj4Qg==", "requires": { "@types/webpack": "^4.41.0", "commander": "^4.0.1", @@ -1800,16 +1675,13 @@ } }, "@docusaurus/utils": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-alpha.70.tgz", - "integrity": "sha512-xNSUcE7fGcneH00CPCEY0SP5V7H6pLEcu620UiU/m1367tCMsmv+MZcnII2ACcjAtvhjS22v/KLippM3VeTXqQ==", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-alpha.66.tgz", + "integrity": "sha512-47jGB+Z3YVM6Xf1hxyNbJLMmc1qoTLmfwSf7NseKSkpjucbc5Ueivr+oVYp5yWoZw5sT5bObmdJYfJoD/RrbOg==", "requires": { - "@docusaurus/types": "2.0.0-alpha.70", - "chalk": "^3.0.0", "escape-string-regexp": "^2.0.0", - "fs-extra": "^9.0.1", + "fs-extra": "^8.1.0", "gray-matter": "^4.0.2", - "lodash": "^4.17.20", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "resolve-pathname": "^3.0.0" @@ -1823,13 +1695,13 @@ } }, "@docusaurus/utils-validation": { - "version": "2.0.0-alpha.70", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-alpha.70.tgz", - "integrity": "sha512-GJonaRjiJtlCk1+RfKA9f0YwRsSRGFMVbl6DrFidTgs4FmRb0hQsN4fnllsBvBJtbDZYwPTQ3T7c4cKJ/Ll7bQ==", + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-alpha.66.tgz", + "integrity": "sha512-vlenwY3THondey21x1qAUZyDz9qiG7ec2CBM9HgY1Ns8XhrKah9zz7TEGXjqM9lhqMQQRkvcCcveti9EXR0fcA==", "requires": { - "@docusaurus/utils": "2.0.0-alpha.70", - "chalk": "^3.0.0", - "joi": "^17.2.1" + "@docusaurus/utils": "2.0.0-alpha.66", + "@hapi/joi": "17.1.1", + "chalk": "^3.0.0" } }, "@endiliey/static-site-generator-webpack-plugin": { @@ -1845,38 +1717,83 @@ } }, "@fortawesome/fontawesome-common-types": { - "version": "0.2.34", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.34.tgz", - "integrity": "sha512-XcIn3iYbTEzGIxD0/dY5+4f019jIcEIWBiHc3KrmK/ROahwxmZ/s+tdj97p/5K0klz4zZUiMfUlYP0ajhSJjmA==" + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz", + "integrity": "sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w==" }, "@fortawesome/fontawesome-svg-core": { - "version": "1.2.34", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.34.tgz", - "integrity": "sha512-0KNN0nc5eIzaJxlv43QcDmTkDY1CqeN6J7OCGSs+fwGPdtv0yOQqRjieopBCmw+yd7uD3N2HeNL3Zm5isDleLg==", + "version": "1.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz", + "integrity": "sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.34" + "@fortawesome/fontawesome-common-types": "^0.2.32" } }, "@fortawesome/free-solid-svg-icons": { - "version": "5.15.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.2.tgz", - "integrity": "sha512-ZfCU+QjaFsdNZmOGmfqEWhzI3JOe37x5dF4kz9GeXvKn/sTxhqMtZ7mh3lBf76SvcYY5/GKFuyG7p1r4iWMQqw==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz", + "integrity": "sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg==", "requires": { - "@fortawesome/fontawesome-common-types": "^0.2.34" + "@fortawesome/fontawesome-common-types": "^0.2.32" } }, "@fortawesome/react-fontawesome": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.14.tgz", - "integrity": "sha512-4wqNb0gRLVaBm/h+lGe8UfPPivcbuJ6ecI4hIgW0LjI7kzpYB9FkN0L9apbVzg+lsBdcTf0AlBtODjcSX5mmKA==", + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.12.tgz", + "integrity": "sha512-kV6HtqotM3K4YIXlTVvomuIi6QgGCvYm++ImyEx2wwgmSppZ6kbbA29ASwjAUBD63j2OFU0yoxeXpZkjrrX0qQ==", "requires": { "prop-types": "^15.7.2" } }, + "@francoischalifour/autocomplete-core": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@francoischalifour/autocomplete-core/-/autocomplete-core-1.0.0-alpha.28.tgz", + "integrity": "sha512-rL9x+72btViw+9icfBKUJjZj87FgjFrD2esuTUqtj4RAX3s4AuVZiN8XEsfjQBSc6qJk31cxlvqZHC/BIyYXgg==" + }, + "@francoischalifour/autocomplete-preset-algolia": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.28.tgz", + "integrity": "sha512-bprfNmYt1opFUFEtD2XfY/kEsm13bzHQgU80uMjhuK0DJ914IjolT1GytpkdM6tJ4MBvyiJPP+bTtWO+BZ7c7w==" + }, + "@hapi/address": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/formula": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" + }, "@hapi/hoek": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz", - "integrity": "sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==" + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" + }, + "@hapi/joi": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", + "requires": { + "@hapi/address": "^4.0.1", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" + } + }, + "@hapi/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" }, "@hapi/topo": { "version": "5.0.0", @@ -1907,9 +1824,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1944,75 +1861,155 @@ } }, "@ledgerhq/devices": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.43.0.tgz", - "integrity": "sha512-/M5ZLUBdBK7Vl2T4yNJbES3Z4w55LbPdxD9rcOBAKH/5V3V0obQv6MUasP9b7DSkwGSSLCOGZLohoT2NxK2D2A==", + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.28.0.tgz", + "integrity": "sha512-Tkygc1nfioxfv4YWF5VGHito3ZHQAiNM7YV+Kqr3n/gz4meT5f9DfvqvikTF5XxX+mXpCMc4IlzwbUAoeNOHiQ==", + "requires": { + "@ledgerhq/errors": "^5.28.0", + "@ledgerhq/logs": "^5.28.0", + "rxjs": "^6.6.3" + } + }, + "@ledgerhq/errors": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.28.0.tgz", + "integrity": "sha512-dNBVriJbdiTerT7I102sAMBxuJqmuMCQSfIdQ+3euvb+2Fx7UPM/w9RHZ0HZGsz/SdeBblWAH0aIQmtDX/vW9g==" + }, + "@ledgerhq/hw-transport": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.28.0.tgz", + "integrity": "sha512-dQm45axzWSJhiaDB2csBCFPH/PGjE8kB+3uSeoUJ752FqgndZgrN9UKOPPxcmaf69jnQeTZAFEWc8g63yMPYOg==", "requires": { - "@ledgerhq/errors": "^5.43.0", - "@ledgerhq/logs": "^5.43.0", - "rxjs": "^6.6.3", - "semver": "^7.3.4" + "@ledgerhq/devices": "^5.28.0", + "@ledgerhq/errors": "^5.28.0", + "events": "^3.2.0" + } + }, + "@ledgerhq/hw-transport-node-hid": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.30.0.tgz", + "integrity": "sha512-AfvU9ejc7hjnLUI7Ju2WXA+3yJuY9d8BbQVW/6gXUUy4cJbMxHyymNjX+xv6aYzDo1RdgGIXBDntxDbTlyjgPA==", + "requires": { + "@ledgerhq/devices": "^5.30.0", + "@ledgerhq/errors": "^5.30.0", + "@ledgerhq/hw-transport": "^5.30.0", + "@ledgerhq/hw-transport-node-hid-noevents": "^5.30.0", + "@ledgerhq/logs": "^5.30.0", + "lodash": "^4.17.20", + "node-hid": "1.3.0", + "usb": "^1.6.3" }, "dependencies": { - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "@ledgerhq/devices": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.30.0.tgz", + "integrity": "sha512-2ubefpOcw7SpU/6E1MM7JNLihOuwvQ73dCSPmxLloxPf1T4S6gOBh4RgB9mal/gwoOwWGVNaR3wGHvqJI8z1Gg==", "requires": { - "lru-cache": "^6.0.0" + "@ledgerhq/errors": "^5.30.0", + "@ledgerhq/logs": "^5.30.0", + "rxjs": "^6.6.3" } + }, + "@ledgerhq/errors": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.30.0.tgz", + "integrity": "sha512-pSX50OEQqK56WiZG2lIxGijy5QUwiWNDFXzAoPCh2BOGGWhBq6LaYSKQyQaRIpUXzAubt0s1lUj3sHNYTOA9vg==" + }, + "@ledgerhq/hw-transport": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.30.0.tgz", + "integrity": "sha512-86cKX9yIHP9C/wnVRhm5QnaBPqTWaSxb0Z2BlMLT0xWqQf0RVb9e4pUtfAsGNDhTyN2exQF54+G4IkspsplnKg==", + "requires": { + "@ledgerhq/devices": "^5.30.0", + "@ledgerhq/errors": "^5.30.0", + "events": "^3.2.0" + } + }, + "@ledgerhq/logs": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.30.0.tgz", + "integrity": "sha512-wUhg2VTfUrWihjdGqKkH/s7TBzdIM1yyd2LiscYsfTX2I0xYDMnpE+NkMReeGU8PN3QhCPgnlg9/P9V6UWoJBA==" } } }, - "@ledgerhq/errors": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.43.0.tgz", - "integrity": "sha512-ZjKlUQbIn/DHXAefW3Y1VyDrlVhVqqGnXzrqbOXuDbZ2OAIfSe/A1mrlCbWt98jP/8EJQBuCzBOtnmpXIL/nYg==" - }, - "@ledgerhq/hw-transport": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.43.0.tgz", - "integrity": "sha512-0S+TGmiEJOqgM2MWnolZQPVKU3oRtoDj4yUFUZts9Owbgby+hmo4dIKTvv0vs8mwknQbOZByUgh3MQOQiK70MQ==", + "@ledgerhq/hw-transport-node-hid-noevents": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.30.0.tgz", + "integrity": "sha512-pvApZQnIEJxHtOituz9ehbpTzDYwqUXRmqbUe757inkhQ3EhvmZzWmg2zJAt1yKLRcTs5Si/t7PTvK/UW4p20A==", "requires": { - "@ledgerhq/devices": "^5.43.0", - "@ledgerhq/errors": "^5.43.0", - "events": "^3.2.0" + "@ledgerhq/devices": "^5.30.0", + "@ledgerhq/errors": "^5.30.0", + "@ledgerhq/hw-transport": "^5.30.0", + "@ledgerhq/logs": "^5.30.0", + "node-hid": "1.3.0" + }, + "dependencies": { + "@ledgerhq/devices": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.30.0.tgz", + "integrity": "sha512-2ubefpOcw7SpU/6E1MM7JNLihOuwvQ73dCSPmxLloxPf1T4S6gOBh4RgB9mal/gwoOwWGVNaR3wGHvqJI8z1Gg==", + "requires": { + "@ledgerhq/errors": "^5.30.0", + "@ledgerhq/logs": "^5.30.0", + "rxjs": "^6.6.3" + } + }, + "@ledgerhq/errors": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.30.0.tgz", + "integrity": "sha512-pSX50OEQqK56WiZG2lIxGijy5QUwiWNDFXzAoPCh2BOGGWhBq6LaYSKQyQaRIpUXzAubt0s1lUj3sHNYTOA9vg==" + }, + "@ledgerhq/hw-transport": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.30.0.tgz", + "integrity": "sha512-86cKX9yIHP9C/wnVRhm5QnaBPqTWaSxb0Z2BlMLT0xWqQf0RVb9e4pUtfAsGNDhTyN2exQF54+G4IkspsplnKg==", + "requires": { + "@ledgerhq/devices": "^5.30.0", + "@ledgerhq/errors": "^5.30.0", + "events": "^3.2.0" + } + }, + "@ledgerhq/logs": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.30.0.tgz", + "integrity": "sha512-wUhg2VTfUrWihjdGqKkH/s7TBzdIM1yyd2LiscYsfTX2I0xYDMnpE+NkMReeGU8PN3QhCPgnlg9/P9V6UWoJBA==" + } } }, "@ledgerhq/hw-transport-u2f": { - "version": "5.34.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.34.0.tgz", - "integrity": "sha512-EM6LcbdD6Xo/msedbAWalBZlv89XAZrAZwL5zN9eKlUcWPjjG8c9+t5NedR/jmIaGuzIUVseUCIRxczqd5byOw==", + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.28.0.tgz", + "integrity": "sha512-p/4CB+Sf5c1pLUjVWnHCm6Ll6atratfWlgFSmqt8yRxxejB5mwlK+4HkX8Tq4wgooZe2PqDuVTdFxGwiq4nAeg==", "requires": { - "@ledgerhq/errors": "^5.34.0", - "@ledgerhq/hw-transport": "^5.34.0", - "@ledgerhq/logs": "^5.30.0", + "@ledgerhq/errors": "^5.28.0", + "@ledgerhq/hw-transport": "^5.28.0", + "@ledgerhq/logs": "^5.28.0", "u2f-api": "0.2.7" } }, "@ledgerhq/logs": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.43.0.tgz", - "integrity": "sha512-QWfQjea3ekh9ZU+JeL2tJC9cTKLZ/JrcS0JGatLejpRYxQajvnHvHfh0dbHOKXEaXfCskEPTZ3f1kzuts742GA==" + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.28.0.tgz", + "integrity": "sha512-O+p30yQCJVMHkYRt4mEy2My61JNTyqg9FEs9ZmXXPvXbod85snD6oGaKtDtcvbWCYjiaQt4alD+w/J56hkNBWQ==" }, "@mdx-js/mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", - "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.19.tgz", + "integrity": "sha512-L3eLhEFnV/2bcb9XwOegsRmLHd1oEDQPtTBVezhptQ5U1YM+/WQNzx1apjzVTAyukwOanUXnTUMjRUtqJNgFCg==", "requires": { - "@babel/core": "7.12.9", - "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/core": "7.11.6", + "@babel/plugin-syntax-jsx": "7.10.4", "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.22", - "babel-plugin-apply-mdx-type-prop": "1.6.22", - "babel-plugin-extract-import-names": "1.6.22", + "@mdx-js/util": "1.6.19", + "babel-plugin-apply-mdx-type-prop": "1.6.19", + "babel-plugin-extract-import-names": "1.6.19", "camelcase-css": "2.0.1", - "detab": "2.0.4", + "detab": "2.0.3", "hast-util-raw": "6.0.1", "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "10.0.1", + "mdast-util-to-hast": "9.1.1", "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.22", + "remark-mdx": "1.6.19", "remark-parse": "8.0.3", "remark-squeeze-paragraphs": "4.0.0", "style-to-object": "0.3.0", @@ -2022,18 +2019,18 @@ }, "dependencies": { "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", + "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", + "@babel/generator": "^7.11.6", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.5", + "@babel/types": "^7.11.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -2045,9 +2042,9 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -2060,14 +2057,14 @@ } }, "@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==" + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.19.tgz", + "integrity": "sha512-RS37Tagqyp2R0XFPoUZeSbZC5uJQRPhqOHWeT1LEwxESjMWb3VORHz7E827ldeQr3UW6VEQEyq/THegu+bLj6A==" }, "@mdx-js/util": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", - "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==" + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.19.tgz", + "integrity": "sha512-bkkQNSHz3xSr3KRHUQ2Qk2XhewvvXAOUqjIUKwcQuL4ijOA4tUHZfUgXExi5CpMysrX7izcsyICtXjZHlfJUjg==" }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", @@ -2079,35 +2076,34 @@ } }, "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", "requires": { - "@nodelib/fs.stat": "2.0.4", + "@nodelib/fs.stat": "2.0.3", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" }, "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", "requires": { - "@nodelib/fs.scandir": "2.1.4", + "@nodelib/fs.scandir": "2.1.3", "fastq": "^1.6.0" } }, "@npmcli/move-file": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.1.tgz", - "integrity": "sha512-LtWTicuF2wp7PNTuyCwABx7nNG+DnzSE8gN0iWxkC6mpgm/iOPu0ZMTkXuCxmJxtWFsDxUaixM9COSNJEMUfuQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "mkdirp": "^1.0.4" }, "dependencies": { "mkdirp": { @@ -2145,24 +2141,6 @@ } } }, - "@sideway/address": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz", - "integrity": "sha512-+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -2204,14 +2182,14 @@ "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" }, "@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz", + "integrity": "sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A==" }, "@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.4.0.tgz", + "integrity": "sha512-Gyx7cCxua04DBtyILTYdQxeO/pwfTBev6+eXTbVbxe4HTGhOUW6yo7PSbG2p6eJMl44j6XSequ0ZDP7bl0nu9A==", "requires": { "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", @@ -2220,60 +2198,60 @@ "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + "@svgr/babel-plugin-transform-svg-component": "^5.4.0" } }, "@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.4.0.tgz", + "integrity": "sha512-hWGm1DCCvd4IEn7VgDUHYiC597lUYhFau2lwJBYpQWDirYLkX4OsXu9IslPgJ9UpP7wsw3n2Ffv9sW7SXJVfqQ==", "requires": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" + "@svgr/plugin-jsx": "^5.4.0", + "camelcase": "^6.0.0", + "cosmiconfig": "^6.0.0" } }, "@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz", + "integrity": "sha512-+U0TZZpPsP2V1WvVhqAOSTk+N+CjYHdZx+x9UBa1eeeZDXwH8pt0CrQf2+SvRl/h2CAPRFkm+Ey96+jKP8Bsgg==", "requires": { - "@babel/types": "^7.12.6" + "@babel/types": "^7.9.5" } }, "@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz", + "integrity": "sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw==", "requires": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", + "@babel/core": "^7.7.5", + "@svgr/babel-preset": "^5.4.0", + "@svgr/hast-util-to-babel-ast": "^5.4.0", "svg-parser": "^2.0.2" } }, "@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.4.0.tgz", + "integrity": "sha512-3Cgv3aYi1l6SHyzArV9C36yo4kgwVdF3zPQUC6/aCDUeXAofDYwE5kk3e3oT5ZO2a0N3lB+lLGvipBG6lnG8EA==", "requires": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", + "cosmiconfig": "^6.0.0", + "merge-deep": "^3.0.2", "svgo": "^1.2.2" } }, "@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.4.0.tgz", + "integrity": "sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg==", + "requires": { + "@babel/core": "^7.9.0", + "@babel/plugin-transform-react-constant-elements": "^7.9.0", + "@babel/preset-env": "^7.9.5", + "@babel/preset-react": "^7.9.4", + "@svgr/core": "^5.4.0", + "@svgr/plugin-jsx": "^5.4.0", + "@svgr/plugin-svgo": "^5.4.0", "loader-utils": "^2.0.0" } }, @@ -2286,32 +2264,33 @@ } }, "@taquito/beacon-wallet": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/beacon-wallet/-/beacon-wallet-9.0.0.tgz", - "integrity": "sha512-Ru+IO0T0hKtODfAhYw/D2MCi5UD03b7Z2rqX4+c6r6/I0j/fyJ2Bd5xhGsmBvDIkwBRLjF64YtjhsGfrkHCnbQ==", + "version": "7.1.0-preview.1", + "resolved": "https://registry.npmjs.org/@taquito/beacon-wallet/-/beacon-wallet-7.1.0-preview.1.tgz", + "integrity": "sha512-IGtawP1+L/N+ld5nWrSrNBUotl9xsRavQVi6wAmZOZxLs2WCiAb/Av0krMQh8mDrNO3z20aWA+Ocp6f/ahgUWw==", "requires": { - "@airgap/beacon-sdk": "^2.2.5", - "@taquito/taquito": "^9.0.0", - "@taquito/utils": "^9.0.0" + "@airgap/beacon-sdk": "^2.0.0-beta.12", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1" } }, "@taquito/http-utils": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/http-utils/-/http-utils-9.0.0.tgz", - "integrity": "sha512-+O43QglDaWx/9jPR1SCLRlLFEBoyrO07ZZYXv1siIWwXY8bFVz8tssyUfezKp61zgMDJcENVhWLz5R5PC08O6A==", + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/http-utils/-/http-utils-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-mHmtIOZUmDKlL1OV/9Xbxo0ipZGqNjwasJLdSyDjaoMWY2F+X/m4tQWqyPZZ4lSYxKgoaHs+rS37KZbweTqykA==", "requires": { "xhr2-cookies": "^1.1.0" } }, "@taquito/ledger-signer": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/ledger-signer/-/ledger-signer-9.0.0.tgz", - "integrity": "sha512-6rdXVYoXEOdYVCgjED9tvpK2jqcPZsOINrTItGbgd/SCYtsM9wu0b0JKxGMKU8OlKI24UF+Grf9GHtVS6DIQ+A==", - "requires": { - "@ledgerhq/hw-transport": "^5.41.0", - "@taquito/taquito": "^9.0.0", - "@taquito/utils": "^9.0.0", - "@types/jest": "^26.0.16", + "version": "7.1.0-preview.1", + "resolved": "https://registry.npmjs.org/@taquito/ledger-signer/-/ledger-signer-7.1.0-preview.1.tgz", + "integrity": "sha512-+N0hmaZds7Qoy5wBBYFgDsBaQC57++50RwWH2lOmJ4yw2Qh4H+2qV+s63G1XudQHDyqTAsFRgJiSXM6ELoYRAA==", + "requires": { + "@ledgerhq/hw-transport": "^5.25.0", + "@ledgerhq/hw-transport-node-hid": "^5.25.0", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", + "@types/jest": "^26.0.14", "buffer": "^5.6.0", "libsodium-wrappers": "^0.7.8" }, @@ -2328,34 +2307,53 @@ } }, "@taquito/michel-codec": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/michel-codec/-/michel-codec-9.0.0.tgz", - "integrity": "sha512-3eM1x2QjxijSew4evVO9t1jM2igcWJpjt7jyGQ9ayeS34w4vHZm5lAWPTJHtmwEv0l6R5lJF4dRpBlpYt5A+Hg==" + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/michel-codec/-/michel-codec-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-0wka0USOtM9qBvLVpszVJIvgW3/qyqe92GFPQjeEUl8uHExgMk/ShnB/kxcKnWaH08aO2LF7Mad/dkQkcxAoxA==" }, "@taquito/michelson-encoder": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/michelson-encoder/-/michelson-encoder-9.0.0.tgz", - "integrity": "sha512-+N3fyrsoA/Exhy3UJwG8bazm4Bpw4NdyKoL3FaWhQnbr4BUkI+zgq/GBkX7rF730GBxb2B9WCf5SvwOG5mo8Aw==", + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/michelson-encoder/-/michelson-encoder-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-S+sGejQZLHvLD2w6ki0flmJy6Fa7TQMJAwDGTI4a4JJ/rKnphU7QFN6JFKYdhBg7+1Hi1mLdd42mvKgZdK0l8A==", "requires": { - "@taquito/rpc": "^9.0.0", - "@taquito/utils": "^9.0.0", + "@taquito/rpc": "^7.1.0-preview-lambdaview.0", + "@taquito/utils": "^7.1.0-preview-lambdaview.0", "bignumber.js": "^9.0.1", "fast-json-stable-stringify": "^2.1.0" }, "dependencies": { + "@taquito/utils": { + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/utils/-/utils-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-Nm2v8TO+jho2ZsV3IGqymPkkiaZXVBVB6eMTDzqRx3BGzn2lTrYT5XqVoRCWZdkeavnrnu75ntMBrhMNpfDfLA==", + "requires": { + "blakejs": "^1.1.0", + "bs58check": "^2.1.2", + "buffer": "^5.6.0" + } + }, "bignumber.js": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + }, + "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" + } } } }, "@taquito/rpc": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/rpc/-/rpc-9.0.0.tgz", - "integrity": "sha512-0ma2tB/8bDDp0qhIIPBjnCrXISbC5yiTTuS8r1OQYjrBXRfTCtb/GbAeT5COsCzycHEdaolrTnsKF8M7N69tcQ==", + "version": "7.1.0-preview-lambdaview.0", + "resolved": "https://registry.npmjs.org/@taquito/rpc/-/rpc-7.1.0-preview-lambdaview.0.tgz", + "integrity": "sha512-je2gQmVPYxPQdYIOPvPWQhNaHVkMws5q8YyTxacWU93Y5IBw1a3hKX7J1dymomlfeP3fJWHViYuwJKPQdmifXg==", "requires": { - "@taquito/http-utils": "^9.0.0", + "@taquito/http-utils": "^7.1.0-preview-lambdaview.0", "bignumber.js": "^9.0.1", "lodash": "^4.17.20" }, @@ -2368,15 +2366,15 @@ } }, "@taquito/signer": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/signer/-/signer-9.0.0.tgz", - "integrity": "sha512-4bxUyJH9CuFnse0Iqqr1zaj3aGwGoNjOSxMyE7YzVdK4x5SKNyied/gXGLeS1F7VLrzv4jDzNp382D7SKTO54Q==", + "version": "7.1.0-preview.1", + "resolved": "https://registry.npmjs.org/@taquito/signer/-/signer-7.1.0-preview.1.tgz", + "integrity": "sha512-4cVWqTje53M75s/5T2YLMJHNut+jvS0dL5LGaOlyv/MYRClG7edc3lTjlkeBcs9VFpK2q/rAIjzr5Xgfkzu9JQ==", "requires": { - "@taquito/taquito": "^9.0.0", - "@taquito/utils": "^9.0.0", + "@taquito/taquito": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1", "bip39": "^3.0.2", - "elliptic": "^6.5.4", + "elliptic": "^6.5.3", "libsodium-wrappers": "^0.7.8", "pbkdf2": "^3.1.1", "typedarray-to-buffer": "^3.1.5" @@ -2390,15 +2388,15 @@ } }, "@taquito/taquito": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/taquito/-/taquito-9.0.0.tgz", - "integrity": "sha512-SfKQRfnImRzm6QxnyIgBKfZwIAUUU6Jyj64TO6r230808rJIpYob/Kh6ndv/KAKJ5BtLyFlobvaTTZUElS1+ug==", - "requires": { - "@taquito/http-utils": "^9.0.0", - "@taquito/michel-codec": "^9.0.0", - "@taquito/michelson-encoder": "^9.0.0", - "@taquito/rpc": "^9.0.0", - "@taquito/utils": "^9.0.0", + "version": "7.1.0-preview.1", + "resolved": "https://registry.npmjs.org/@taquito/taquito/-/taquito-7.1.0-preview.1.tgz", + "integrity": "sha512-XYSHAxXW4c+GWPy4Qh0bE3fzTx4UqzKkbsmukTRvw1Pp2mgMNgSF0cD0R8Xej0gxg9PBy/zBR5FvNXHM/V2zNQ==", + "requires": { + "@taquito/http-utils": "^7.1.0-preview.1", + "@taquito/michel-codec": "^7.1.0-preview.1", + "@taquito/michelson-encoder": "^7.1.0-preview.1", + "@taquito/rpc": "^7.1.0-preview.1", + "@taquito/utils": "^7.1.0-preview.1", "bignumber.js": "^9.0.1", "rx-sandbox": "^1.0.3", "rxjs": "^6.6.3" @@ -2412,56 +2410,17 @@ } }, "@taquito/tezbridge-wallet": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/tezbridge-wallet/-/tezbridge-wallet-9.0.0.tgz", - "integrity": "sha512-MguvLGO6KCRVDrDmjEIUqOJZBjY11g/PbfHMzGkZSk8y3ykmYKB6GZQmRBlUOTwJSXfMCnaFs2/X2mM8TJvZXA==", + "version": "7.1.0-preview.1", + "resolved": "https://registry.npmjs.org/@taquito/tezbridge-wallet/-/tezbridge-wallet-7.1.0-preview.1.tgz", + "integrity": "sha512-yhEeeqUIVdtPVoboiE0FAoFi8zo8oI36ZPFkL9Bkk2aCDW7wy43xs0fCiPKnGMr60mybi/s2hwjOhfjqncTYaw==", "requires": { - "@taquito/taquito": "^9.0.0" - } - }, - "@taquito/tzip12": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/tzip12/-/tzip12-9.0.0.tgz", - "integrity": "sha512-V7IwyNJ/o8KhRBeuxVV7JK3BSVLsWp56x2hKsAM/7FDlLUoYDxGPwLKo5iWlNK8mgLV22KJwwTWY+CK+6mdnCg==", - "requires": { - "@taquito/michelson-encoder": "^9.0.0", - "@taquito/taquito": "^9.0.0", - "@taquito/tzip16": "^9.0.0", - "bignumber.js": "^9.0.1" - }, - "dependencies": { - "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" - } - } - }, - "@taquito/tzip16": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/tzip16/-/tzip16-9.0.0.tgz", - "integrity": "sha512-1OfzAJnMEbhe0CYcq9hsXVbUDsmexqyUdJ/RG10GoBNRfuQePZVAXf3Q/Nc30jpVcN/PisTxShGx+xl2RdnJTw==", - "requires": { - "@taquito/http-utils": "^9.0.0", - "@taquito/michelson-encoder": "^9.0.0", - "@taquito/rpc": "^9.0.0", - "@taquito/taquito": "^9.0.0", - "@taquito/utils": "^9.0.0", - "bignumber.js": "^9.0.1", - "crypto-js": "^4.0.0" - }, - "dependencies": { - "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" - } + "@taquito/taquito": "^7.1.0-preview.1" } }, "@taquito/utils": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@taquito/utils/-/utils-9.0.0.tgz", - "integrity": "sha512-Ymod1EyVhNokA0gUxxrKPKBIHxM6/tLPsGrH2akYpEOTV+lz250BBElXdqpxXdsCndXcoskZwVaVfGx9R0h6rw==", + "version": "7.1.0-preview.1", + "resolved": "https://registry.npmjs.org/@taquito/utils/-/utils-7.1.0-preview.1.tgz", + "integrity": "sha512-GaGL0w33be/EMlMv3+Tu6X/6HbGMJuq+o5g4diQYlGP2J2CG7bXJiLfTUAEtOd5Opq9UbN0VRx+OtO2NP26UWg==", "requires": { "blakejs": "^1.1.0", "bs58check": "^2.1.2", @@ -2480,9 +2439,9 @@ } }, "@thanos-wallet/dapp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@thanos-wallet/dapp/-/dapp-2.2.1.tgz", - "integrity": "sha512-3j8Q2E5W7XQyMSKxlKNbjn4GBNASVkAGryOj9mf5NxrwuMjk4LJSziJRrzefoYduKbBvnHB2xHPOoctnOgc4hg==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@thanos-wallet/dapp/-/dapp-0.7.0.tgz", + "integrity": "sha512-eXa8NwHYmlXo1ZWbLfW0tVRAjame92NKJo1I+EsS0ZQyoz9dJTIQSsqwA1cfzIoXV/wFSXmfhTnHniraCtc2fQ==", "requires": { "nanoid": "^3.1.10" } @@ -2502,17 +2461,17 @@ } }, "@types/filesystem": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.30.tgz", - "integrity": "sha512-NCoRgmGmLpTT9VFL6Bb6z0jQuqI3d0E5FGl7M0JOv/J5RQYo9s5aOItPYnpckx9MbYQk1APLXcF8f20Vqnf2yA==", + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz", + "integrity": "sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw==", "requires": { "@types/filewriter": "*" } }, "@types/filewriter": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.29.tgz", - "integrity": "sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==" + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz", + "integrity": "sha1-wFTor02d11205jq8dviFFocU1LM=" }, "@types/glob": { "version": "7.1.3", @@ -2563,18 +2522,18 @@ } }, "@types/jest": { - "version": "26.0.23", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.23.tgz", - "integrity": "sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA==", + "version": "26.0.15", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz", + "integrity": "sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==", "requires": { "jest-diff": "^26.0.0", "pretty-format": "^26.0.0" } }, "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" }, "@types/libsodium-wrappers": { "version": "0.7.7", @@ -2595,9 +2554,9 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/node": { - "version": "14.14.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.11.tgz", - "integrity": "sha512-BJ97wAUuU3NUiUCp44xzUFquQEvnk1wu7q4CMEUYKJWjdkr0YWYDsm4RFtAvxYsNjLsKcrFt6RvK8r+mnzMbEQ==" + "version": "14.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.6.tgz", + "integrity": "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw==" }, "@types/parse-json": { "version": "4.0.0", @@ -2620,9 +2579,9 @@ "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" }, "@types/react": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.1.tgz", - "integrity": "sha512-w8t9f53B2ei4jeOqf/gxtc2Sswnc3LBK5s0DyJcg5xd10tMHXts2N31cKjWfH9IC/JvEPa/YF1U4YeP1t4R6HQ==", + "version": "16.9.55", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.55.tgz", + "integrity": "sha512-6KLe6lkILeRwyyy7yG9rULKJ0sXplUsl98MGoCfpteXf9sPWFWWMknDcsvubcpaTdBuxtsLF6HDUwdApZL/xIg==", "requires": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -2652,9 +2611,9 @@ "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==" }, "@types/uglify-js": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.12.0.tgz", - "integrity": "sha512-sYAF+CF9XZ5cvEBkI7RtrG9g2GtMBkviTnBxYYyq+8BWvO4QtXfwwR6a2LFwCi4evMKZfpv6U43ViYvv17Wz3Q==", + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz", + "integrity": "sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==", "requires": { "source-map": "^0.6.1" }, @@ -2672,9 +2631,9 @@ "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" }, "@types/webpack": { - "version": "4.41.26", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz", - "integrity": "sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==", + "version": "4.41.24", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.24.tgz", + "integrity": "sha512-1A0MXPwZiMOD3DPMuOKUKcpkdPo8Lq33UGggZ7xio6wJ/jV1dAu5cXDrOfGDnldUroPIRLsr/DT43/GqOA4RFQ==", "requires": { "@types/anymatch": "*", "@types/node": "*", @@ -2692,9 +2651,9 @@ } }, "@types/webpack-sources": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz", - "integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.0.0.tgz", + "integrity": "sha512-a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg==", "requires": { "@types/node": "*", "@types/source-list-map": "*", @@ -2709,17 +2668,17 @@ } }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "15.0.10", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz", + "integrity": "sha512-z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==", "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" }, "@webassemblyjs/ast": { "version": "1.9.0", @@ -2958,30 +2917,30 @@ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" }, "algoliasearch": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.8.5.tgz", - "integrity": "sha512-GjKjpeevpePEJYinGokASNtIkl1t5EseNMlqDNAc+sXE8+iyyeqTyiJsN7bwlRG2BIremuslE/NlwdEfUuBLJw==", - "requires": { - "@algolia/cache-browser-local-storage": "4.8.5", - "@algolia/cache-common": "4.8.5", - "@algolia/cache-in-memory": "4.8.5", - "@algolia/client-account": "4.8.5", - "@algolia/client-analytics": "4.8.5", - "@algolia/client-common": "4.8.5", - "@algolia/client-recommendation": "4.8.5", - "@algolia/client-search": "4.8.5", - "@algolia/logger-common": "4.8.5", - "@algolia/logger-console": "4.8.5", - "@algolia/requester-browser-xhr": "4.8.5", - "@algolia/requester-common": "4.8.5", - "@algolia/requester-node-http": "4.8.5", - "@algolia/transporter": "4.8.5" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.5.1.tgz", + "integrity": "sha512-b6yT1vWMlBdVObQipKxvt0M6SEvGetVj+FFFlo0Fy06gkdj6WCJaS4t10Q/hC3I2VG9QmpCqlK3Esgg1y1E+uw==", + "requires": { + "@algolia/cache-browser-local-storage": "4.5.1", + "@algolia/cache-common": "4.5.1", + "@algolia/cache-in-memory": "4.5.1", + "@algolia/client-account": "4.5.1", + "@algolia/client-analytics": "4.5.1", + "@algolia/client-common": "4.5.1", + "@algolia/client-recommendation": "4.5.1", + "@algolia/client-search": "4.5.1", + "@algolia/logger-common": "4.5.1", + "@algolia/logger-console": "4.5.1", + "@algolia/requester-browser-xhr": "4.5.1", + "@algolia/requester-common": "4.5.1", + "@algolia/requester-node-http": "4.5.1", + "@algolia/transporter": "4.5.1" } }, "algoliasearch-helper": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.4.2.tgz", - "integrity": "sha512-xuNY+xfyMmrTyD6c8vdYdsBkWqsFGmBM/uxZs4lWgjWxeNb2Jsi2ZaMR51aBn4DeCK4NRdp4LOLvdFEOCoeBkQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.2.2.tgz", + "integrity": "sha512-/3XvE33R+gQKaiPdy3nmHYqhF8hqIu8xnlOicVxb1fD6uMFmxW8rGLzzrRfsPfxgAfm+c1NslLb3TzQVIB8aVA==", "requires": { "events": "^1.1.1" }, @@ -3065,11 +3024,44 @@ "picomatch": "^2.0.4" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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" + } + }, + "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" + } + } + } + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -3188,11 +3180,6 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -3213,11 +3200,34 @@ } }, "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", "requires": { - "follow-redirects": "^1.10.0" + "follow-redirects": "1.5.10" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "babel-code-frame": { @@ -3273,13 +3283,14 @@ } }, "babel-loader": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", - "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", "requires": { - "find-cache-dir": "^3.3.1", + "find-cache-dir": "^2.1.0", "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", "schema-utils": "^2.6.5" }, "dependencies": { @@ -3304,42 +3315,28 @@ } }, "babel-plugin-apply-mdx-type-prop": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", - "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.19.tgz", + "integrity": "sha512-zAuL11EaBbeNpfTqsa9xP7mkvX3V4LaEV6M9UUaI4zQtTqN5JwvDyhNsALQs5Ud7WFQSXtoqU74saTgE+rgZOw==", "requires": { "@babel/helper-plugin-utils": "7.10.4", - "@mdx-js/util": "1.6.22" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - } + "@mdx-js/util": "1.6.19" } }, "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "requires": { "object.assign": "^4.1.0" } }, "babel-plugin-extract-import-names": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", - "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.19.tgz", + "integrity": "sha512-5kbSEhQdg1ybR9OnxybbyR1PXw51z6T6ZCtX3vYSU6t1pC/+eBlSzWXyU2guStbwQgJyxS+mHWSNnL7PUdzAlw==", "requires": { "@babel/helper-plugin-utils": "7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - } } }, "bail": { @@ -3416,9 +3413,9 @@ "integrity": "sha1-4pf2DX7BAUp6lxo568ipjAtoHnA=" }, "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "batch": { "version": "0.6.1", @@ -3447,9 +3444,17 @@ "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" }, "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } }, "bip39": { "version": "3.0.3", @@ -3469,6 +3474,27 @@ } } }, + "bl": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", + "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "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" + } + } + } + }, "blakejs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", @@ -3620,12 +3646,19 @@ } }, "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "bn.js": "^5.0.0", + "bn.js": "^4.1.0", "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "browserify-sign": { @@ -3660,15 +3693,14 @@ } }, "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "version": "4.14.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", + "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" + "caniuse-lite": "^1.0.30001135", + "electron-to-chromium": "^1.3.571", + "escalade": "^3.1.0", + "node-releases": "^1.1.61" } }, "bs58": { @@ -3789,6 +3821,25 @@ "schema-utils": "^2.0.0" }, "dependencies": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -3806,6 +3857,43 @@ "emojis-list": "^3.0.0", "json5": "^1.0.1" } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.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==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "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==" + }, + "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==", + "requires": { + "find-up": "^4.0.0" + } } } }, @@ -3843,15 +3931,6 @@ } } }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", @@ -3886,18 +3965,18 @@ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" } }, "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.1.0.tgz", + "integrity": "sha512-WCMml9ivU60+8rEJgELlFp1gxFcEGxwYleE3bziHEDeqsqAWGHdimB7beBFGjLzVNgPGyDsfgXLQEYMpmIFnVQ==" }, "camelcase-css": { "version": "2.0.1", @@ -3916,9 +3995,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001185", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz", - "integrity": "sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg==" + "version": "1.0.30001151", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001151.tgz", + "integrity": "sha512-Zh3sHqskX6mHNrqUerh+fkf0N72cMxrmflzje/JyVImfpknscMnkeJrlFGJcqTmaa0iszdYptGpWMJCRQDkBVw==" }, "ccount": { "version": "1.1.0", @@ -4016,57 +4095,16 @@ "lodash.reduce": "^4.4.0", "lodash.reject": "^4.4.0", "lodash.some": "^4.4.0" - }, - "dependencies": { - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - } } }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.3.1", + "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", @@ -4085,13 +4123,6 @@ "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } } }, "ci-info": { @@ -4205,6 +4236,28 @@ } } }, + "clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", + "requires": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -4240,6 +4293,11 @@ } } }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, "collapse-white-space": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", @@ -4413,6 +4471,16 @@ "unique-string": "^2.0.0", "write-file-atomic": "^3.0.0", "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + } } }, "connect-history-api-fallback": { @@ -4421,15 +4489,20 @@ "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" }, "consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.0.tgz", + "integrity": "sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ==" }, "console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -4505,9 +4578,9 @@ "integrity": "sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ==" }, "copy-webpack-plugin": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz", - "integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz", + "integrity": "sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q==", "requires": { "cacache": "^15.0.5", "fast-glob": "^3.2.4", @@ -4522,10 +4595,29 @@ "webpack-sources": "^1.4.3" }, "dependencies": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "globby": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", - "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -4535,12 +4627,59 @@ "slash": "^3.0.0" } }, - "p-limit": { + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "requires": { + "p-try": "^2.0.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==", + "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==", + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "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==" + }, + "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==", "requires": { - "yocto-queue": "^0.1.0" + "find-up": "^4.0.0" } }, "schema-utils": { @@ -4556,16 +4695,16 @@ } }, "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" }, "core-js-compat": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.3.tgz", - "integrity": "sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog==", + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", + "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", "requires": { - "browserslist": "^4.16.1", + "browserslist": "^4.8.5", "semver": "7.0.0" }, "dependencies": { @@ -4577,9 +4716,9 @@ } }, "core-js-pure": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.3.tgz", - "integrity": "sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA==" + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", + "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==" }, "core-util-is": { "version": "1.0.2", @@ -4587,15 +4726,15 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "requires": { "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", + "import-fresh": "^3.1.0", "parse-json": "^5.0.0", "path-type": "^4.0.0", - "yaml": "^1.10.0" + "yaml": "^1.7.2" } }, "create-ecdh": { @@ -4639,12 +4778,13 @@ "sha.js": "^2.4.8" } }, - "cross-fetch": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", - "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", + "create-react-context": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.2.tgz", + "integrity": "sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A==", "requires": { - "node-fetch": "2.6.1" + "fbjs": "^0.8.0", + "gud": "^1.0.0" } }, "cross-spawn": { @@ -4675,11 +4815,6 @@ "randomfill": "^1.0.3" } }, - "crypto-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", - "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" - }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -4787,14 +4922,14 @@ } }, "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" } }, "css-select-base-adapter": { @@ -4819,9 +4954,9 @@ } }, "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" }, "cssdb": { "version": "4.4.0", @@ -4880,19 +5015,6 @@ } } }, - "cssnano-preset-advanced": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-4.0.7.tgz", - "integrity": "sha512-j1O5/DQnaAqEyFFQfC+Z/vRlLXL3LxJHN+lvsfYqr7KgPH74t69+Rsy2yXkovWNaJjZYBpdz2Fj8ab2nH7pZXw==", - "requires": { - "autoprefixer": "^9.4.7", - "cssnano-preset-default": "^4.0.7", - "postcss-discard-unused": "^4.0.1", - "postcss-merge-idents": "^4.0.1", - "postcss-reduce-idents": "^4.0.2", - "postcss-zindex": "^4.0.1" - } - }, "cssnano-preset-default": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", @@ -4954,26 +5076,26 @@ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" }, "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.1.0.tgz", + "integrity": "sha512-h+6w/W1WqXaJA4tb1dk7r5tVbOm97MsKxzwnvOR04UQ6GILroryjMWu3pmCCtL2mLaEStQ0fZgeGiy99mo7iyg==", "requires": { - "css-tree": "^1.1.2" + "css-tree": "^1.0.0" }, "dependencies": { "css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0.tgz", + "integrity": "sha512-CdVYz/Yuqw0VdKhXPBIgi8DO3NicJVYZNWeX9XcIuSp9ZoFT5IcleVRW07O5rMjdcx1mb+MEJPknTTEW7DdsYw==", "requires": { - "mdn-data": "2.0.14", + "mdn-data": "2.0.12", "source-map": "^0.6.1" } }, "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.12.tgz", + "integrity": "sha512-ULbAlgzVb8IqZ0Hsxm6hHSlQl3Jckst2YEQS7fODu9ilNWy2LvcoSY7TRFIktABP2mdppBioc66va90T+NUs8Q==" }, "source-map": { "version": "0.6.1", @@ -4983,9 +5105,9 @@ } }, "csstype": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.6.tgz", - "integrity": "sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz", + "integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA==" }, "cyclist": { "version": "1.0.1", @@ -4993,9 +5115,9 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "requires": { "ms": "2.1.2" } @@ -5036,11 +5158,6 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, "default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -5131,6 +5248,11 @@ "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", "optional": true }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -5151,13 +5273,18 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, "detab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", - "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.3.tgz", + "integrity": "sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A==", "requires": { "repeat-string": "^1.5.4" } }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, "detect-node": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", @@ -5257,19 +5384,12 @@ } }, "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", - "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==" - } + "domelementtype": "^1.3.0", + "entities": "^1.1.1" } }, "domain-browser": { @@ -5291,21 +5411,21 @@ } }, "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "requires": { "dom-serializer": "0", "domelementtype": "1" } }, "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", + "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "no-case": "^3.0.3", + "tslib": "^1.10.0" } }, "dot-prop": { @@ -5372,22 +5492,22 @@ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" }, "electron-to-chromium": { - "version": "1.3.662", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.662.tgz", - "integrity": "sha512-IGBXmTGwdVGUVTnZ8ISEvkhDfhhD+CDFndG4//BhvDcEtPYiVrzoB+rzT/Y12OQCf5bvRCrVmrUbGrS9P7a6FQ==" + "version": "1.3.584", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.584.tgz", + "integrity": "sha512-NB3DzrTzJFhWkUp+nl2KtUtoFzrfGXTir2S+BU4tXGyXH9vlluPuFpE3pTKeH7+PY460tHLjKzh6K2+TWwW+Ww==" }, "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", + "bn.js": "^4.4.0", + "brorand": "^1.0.1", "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" + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" }, "dependencies": { "bn.js": { @@ -5417,6 +5537,24 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -5426,9 +5564,9 @@ } }, "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", "requires": { "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", @@ -5469,14 +5607,14 @@ } }, "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "requires": { "prr": "~1.0.1" } @@ -5487,34 +5625,25 @@ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { "is-arrayish": "^0.2.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - } } }, "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", "requires": { - "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.0", "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", + "object-inspect": "^1.8.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { @@ -5587,9 +5716,9 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "eta": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/eta/-/eta-1.12.1.tgz", - "integrity": "sha512-H8npoci2J/7XiPnVcCVulBSPsTNGvGaINyMjQDU8AFqp9LGsEYS88g2CiU+d01Sg44WtX7o4nb8wUJ9vnI+tiA==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-1.11.0.tgz", + "integrity": "sha512-lfqIE6qD55WFYT6E0phTBUe0sapHJhfvRDB7jSpXxFGwzDaP69kQqRyF7krBe8I1QzF5nE1yAByiIOLB630x4Q==" }, "etag": { "version": "1.8.1", @@ -5727,6 +5856,11 @@ } } }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" + }, "expect": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", @@ -5895,9 +6029,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -5921,52 +6055,54 @@ } }, "fastq": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz", - "integrity": "sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", "requires": { "reusify": "^1.0.4" } }, "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "requires": { "websocket-driver": ">=0.5.1" } }, "fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", + "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", "requires": { - "fbjs": "^3.0.0" + "fbjs": "^0.8.4" } }, "fbjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", - "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "cross-fetch": "^3.0.4", - "fbjs-css-vars": "^1.0.0", + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", "loose-envify": "^1.0.0", "object-assign": "^4.1.0", "promise": "^7.1.1", "setimmediate": "^1.0.5", "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } } }, - "fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, "feed": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", - "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.1.tgz", + "integrity": "sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg==", "requires": { "xml-js": "^1.6.11" } @@ -6005,6 +6141,11 @@ } } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "filesize": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", @@ -6048,22 +6189,21 @@ } }, "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "requires": { "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } }, "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^3.0.0" } }, "flatten": { @@ -6105,24 +6245,32 @@ } }, "flux": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.1.tgz", - "integrity": "sha512-emk4RCvJ8RzNP2lNpphKnG7r18q8elDYNAPx7xn+bDeOIo9FFfxEfIQ2y6YbQNmnsGD3nH1noxtLE64Puz1bRQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", + "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", "requires": { - "fbemitter": "^3.0.0", - "fbjs": "^3.0.0" + "fbemitter": "^2.0.0", + "fbjs": "^0.8.0" } }, "follow-redirects": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz", - "integrity": "sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==" + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "^1.0.1" + } + }, "fork-ts-checker-webpack-plugin": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz", @@ -6320,15 +6468,19 @@ } } }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "requires": { - "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs-minipass": { @@ -6380,9 +6532,9 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "optional": true }, "function-bind": { @@ -6390,6 +6542,54 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -6400,16 +6600,6 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, "get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -6428,6 +6618,11 @@ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + }, "github-slugger": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", @@ -6470,18 +6665,11 @@ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "requires": { - "ini": "1.3.7" - }, - "dependencies": { - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" - } + "ini": "^1.3.5" } }, "global-modules": { @@ -6575,6 +6763,11 @@ "strip-bom-string": "^1.0.0" } }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + }, "gzip-size": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", @@ -6582,13 +6775,6 @@ "requires": { "duplexer": "^0.1.1", "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } } }, "handle-thing": { @@ -6629,6 +6815,11 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -6708,9 +6899,9 @@ } }, "hast-to-hyperscript": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", - "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.0.tgz", + "integrity": "sha512-NJvMYU3GlMLs7hN3CRbsNlMzusVNkYBogVWDGybsuuVQ336gFLiD+q9qtFZT2meSHzln3pNISZWTASWothMSMg==", "requires": { "@types/unist": "^2.0.3", "comma-separated-tokens": "^1.0.0", @@ -6722,22 +6913,22 @@ } }, "hast-util-from-parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.0.tgz", + "integrity": "sha512-3ZYnfKenbbkhhNdmOQqgH10vnvPivTdsOJCri+APn0Kty+nRkDHArnaX9Hiaf8H+Ig+vkNptL+SRY/6RwWJk1Q==", "requires": { "@types/parse5": "^5.0.0", - "hastscript": "^6.0.0", + "ccount": "^1.0.0", + "hastscript": "^5.0.0", "property-information": "^5.0.0", "vfile": "^4.0.0", - "vfile-location": "^3.2.0", "web-namespaces": "^1.0.0" } }, "hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz", + "integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==" }, "hast-util-raw": { "version": "6.0.1", @@ -6769,11 +6960,10 @@ } }, "hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", + "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", "requires": { - "@types/hast": "^2.0.0", "comma-separated-tokens": "^1.0.0", "hast-util-parse-selector": "^2.0.0", "property-information": "^5.0.0", @@ -6877,9 +7067,9 @@ "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" }, "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==" }, "html-minifier-terser": { "version": "5.1.1", @@ -6906,16 +7096,16 @@ "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" }, "html-webpack-plugin": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.1.tgz", - "integrity": "sha512-yzK7RQZwv9xB+pcdHNTjcqbaaDZ+5L0zJHXfi89iWIZmb/FtzxhLk0635rmJihcQbs3ZUF27Xp4oWGx6EK56zg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz", + "integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==", "requires": { "@types/html-minifier-terser": "^5.0.0", "@types/tapable": "^1.0.5", "@types/webpack": "^4.41.8", "html-minifier-terser": "^5.0.1", "loader-utils": "^1.2.3", - "lodash": "^4.17.20", + "lodash": "^4.17.15", "pretty-error": "^2.1.1", "tapable": "^1.1.3", "util.promisify": "1.0.0" @@ -6961,13 +7151,6 @@ "entities": "^1.1.1", "inherits": "^2.0.1", "readable-stream": "^3.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - } } }, "http-cache-semantics": { @@ -6999,11 +7182,6 @@ } } }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" - }, "http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", @@ -7196,9 +7374,9 @@ } }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -7231,46 +7409,6 @@ "requires": { "pkg-dir": "^3.0.0", "resolve-cwd": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - } } }, "imurmurhash": { @@ -7294,9 +7432,9 @@ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "infima": { - "version": "0.2.0-alpha.18", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.18.tgz", - "integrity": "sha512-ndSEffXzjgM/eiSm5jpLTX6ON9MmylzxqBnV2bTiC3kCSyDYdvzTs+bSwf+C4TWayuqnRTnBK1JUePo3m6Bnfg==" + "version": "0.2.0-alpha.13", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.13.tgz", + "integrity": "sha512-BxCZ1pMcUF0PcL4WV07l/lvaeBBdUUw7uVqNyyeGAutzDpkDyFOl5gOv9wFAJKLo5yerPNFXxFPgDitNjctqIA==" }, "inflight": { "version": "1.0.6", @@ -7313,9 +7451,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inline-style-parser": { "version": "0.1.1", @@ -7467,17 +7605,14 @@ } }, "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "requires": { - "call-bind": "^1.0.0" - } + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" }, "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-binary-path": { "version": "2.1.0", @@ -7493,9 +7628,9 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" }, "is-ci": { "version": "2.0.0", @@ -7526,9 +7661,9 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.0.0.tgz", + "integrity": "sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw==", "requires": { "has": "^1.0.3" } @@ -7626,9 +7761,9 @@ } }, "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" }, "is-npm": { "version": "4.0.0", @@ -7687,11 +7822,10 @@ } }, "is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "requires": { - "call-bind": "^1.0.2", "has-symbols": "^1.0.1" } }, @@ -7779,6 +7913,15 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, "jest-diff": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", @@ -7799,9 +7942,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7860,9 +8003,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7921,9 +8064,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7963,9 +8106,9 @@ "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==" }, "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "version": "26.6.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.1.tgz", + "integrity": "sha512-R5IE3qSGz+QynJx8y+ICEkdI2OJ3RJjRQVEyCcFAd3yVhQSEtquziPO29Mlzgn07LOVE8u8jhJ1FqcwegiXWOw==", "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -7987,27 +8130,15 @@ } } }, - "joi": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz", - "integrity": "sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.0", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "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==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -8044,20 +8175,19 @@ "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "requires": { "minimist": "^1.2.5" } }, "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" + "graceful-fs": "^4.1.6" } }, "keyv": { @@ -8095,6 +8225,11 @@ "package-json": "^6.3.0" } }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -8134,11 +8269,12 @@ } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^4.1.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -8309,9 +8445,9 @@ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", + "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==" }, "loose-envify": { "version": "1.4.0", @@ -8322,11 +8458,11 @@ } }, "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", "requires": { - "tslib": "^2.0.3" + "tslib": "^1.10.0" } }, "lowercase-keys": { @@ -8351,11 +8487,19 @@ } }, "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "requires": { - "semver": "^6.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, "map-cache": { @@ -8395,21 +8539,21 @@ } }, "mdast-util-definitions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-3.0.1.tgz", + "integrity": "sha512-BAv2iUm/e6IK/b2/t+Fx69EL/AGcq/IG2S+HxHjDJGfLJtd6i9SZUS76aC9cig+IEucsqxKTR0ot3m933R3iuA==", "requires": { "unist-util-visit": "^2.0.0" } }, "mdast-util-to-hast": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", - "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-9.1.1.tgz", + "integrity": "sha512-vpMWKFKM2mnle+YbNgDXxx95vv0CoLU0v/l3F5oFAG5DV7qwkZVWA206LsAdOnEVyf5vQcLnb3cWJywu7mUxsQ==", "requires": { "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-definitions": "^4.0.0", + "@types/unist": "^2.0.3", + "mdast-util-definitions": "^3.0.0", "mdurl": "^1.0.0", "unist-builder": "^2.0.0", "unist-util-generated": "^1.0.0", @@ -8470,6 +8614,26 @@ } } }, + "merge-deep": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", + "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", + "requires": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -8526,16 +8690,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==" + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" }, "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "requires": { - "mime-db": "1.45.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -8586,17 +8750,6 @@ "json5": "^1.0.1" } }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", @@ -8709,6 +8862,22 @@ } } }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" + } + } + }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", @@ -8717,6 +8886,11 @@ "minimist": "^1.2.5" } }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", @@ -8764,10 +8938,15 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + }, "nanoid": { - "version": "3.1.20", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", - "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==" + "version": "3.1.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.16.tgz", + "integrity": "sha512-+AK8MN0WHji40lj8AEuwLOvLSbWYApQpre/aFJZD71r43wVRLrOYS4FmJOPQYon1TqB462RzrrxlfA74XRES8w==" }, "nanomatch": { "version": "1.2.13", @@ -8806,6 +8985,11 @@ } } }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -8822,12 +9006,27 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "lower-case": "^2.0.1", + "tslib": "^1.10.0" + } + }, + "node-abi": { + "version": "2.19.3", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz", + "integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==", + "requires": { + "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, "node-emoji": { @@ -8839,15 +9038,30 @@ } }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } }, "node-forge": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" }, + "node-hid": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-1.3.0.tgz", + "integrity": "sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g==", + "requires": { + "bindings": "^1.5.0", + "nan": "^2.14.0", + "node-abi": "^2.18.0", + "prebuild-install": "^5.3.4" + } + }, "node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", @@ -8905,9 +9119,14 @@ } }, "node-releases": { - "version": "1.1.70", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==" + "version": "1.1.64", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.64.tgz", + "integrity": "sha512-Iec8O9166/x2HRMJyLLLWkd0sFFLrFNy+Xf+JQfSQsdBJzPcHpNl3JQ9gD4j+aJxmCa25jNsIbM4bmACtSbkSg==" + }, + "noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" }, "normalize-path": { "version": "3.0.0", @@ -8920,9 +9139,15 @@ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } }, "npm-run-path": { "version": "2.0.2", @@ -8939,6 +9164,17 @@ } } }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, "nprogress": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", @@ -8996,6 +9232,11 @@ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -9030,17 +9271,17 @@ } }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" }, "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", + "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" } }, "object-keys": { @@ -9057,24 +9298,43 @@ } }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", + "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", "requires": { - "call-bind": "^1.0.0", "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" } }, "object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "requires": { - "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "object.pick": { @@ -9086,14 +9346,34 @@ } }, "object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", "requires": { - "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", "has": "^1.0.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "obuf": { @@ -9131,9 +9411,9 @@ } }, "open": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.0.tgz", - "integrity": "sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", + "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", "requires": { "is-docker": "^2.0.0", "is-wsl": "^2.1.1" @@ -9210,11 +9490,11 @@ } }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^2.2.0" + "p-limit": "^2.0.0" } }, "p-map": { @@ -9289,12 +9569,12 @@ } }, "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", + "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" + "dot-case": "^3.0.3", + "tslib": "^1.10.0" } }, "parent-module": { @@ -9331,9 +9611,9 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -9342,9 +9622,9 @@ } }, "parse-numeric-range": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.2.0.tgz", - "integrity": "sha512-1q2tXpAOplPxcl8vrIGPWz1dJxxfmdRkCFcpxxMBerDnGuuHalOWF/xj9L8Nn5XoTUoB/6F0CeQBp2fMgkOYFg==" + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz", + "integrity": "sha1-tPCdQTx6282Yf26SM8e0shDJOOQ=" }, "parse5": { "version": "6.0.1", @@ -9357,12 +9637,12 @@ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "no-case": "^3.0.3", + "tslib": "^1.10.0" } }, "pascalcase": { @@ -9381,9 +9661,9 @@ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, "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==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", @@ -9433,9 +9713,9 @@ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pinkie": { "version": "2.0.4", @@ -9451,11 +9731,11 @@ } }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "requires": { - "find-up": "^4.0.0" + "find-up": "^3.0.0" } }, "pkg-up": { @@ -9464,38 +9744,6 @@ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "requires": { "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } } }, "pnp-webpack-plugin": { @@ -9517,9 +9765,9 @@ }, "dependencies": { "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { "ms": "^2.1.1" } @@ -9661,15 +9909,6 @@ } } }, - "postcss-combine-duplicated-selectors": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/postcss-combine-duplicated-selectors/-/postcss-combine-duplicated-selectors-9.4.0.tgz", - "integrity": "sha512-rMnO1H3wgR1T6QSlK3i8Slz9p3xD+0yOi4J7qwh/5PGR3z8jbgYvRlNKAIvXDtGBQbJKoWs4df5skL3a/fdUEA==", - "requires": { - "postcss": "^7.0.0", - "postcss-selector-parser": "^6.0.0" - } - }, "postcss-convert-values": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", @@ -9787,28 +10026,6 @@ "postcss": "^7.0.0" } }, - "postcss-discard-unused": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-4.0.1.tgz", - "integrity": "sha512-/3vq4LU0bLH2Lj4NYN7BTf2caly0flUB7Xtrk9a5K3yLuXMkHMqMO/x3sDq8W2b1eQFSCyY0IVz2L+0HP8kUUA==", - "requires": { - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, "postcss-double-position-gradients": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", @@ -9989,24 +10206,6 @@ "postcss": "^7.0.2" } }, - "postcss-merge-idents": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-4.0.1.tgz", - "integrity": "sha512-43S/VNdF6II0NZ31YxcvNYq4gfURlPAAsJW/z84avBXQCaP4I4qRHUH18slW/SOlJbcxxCobflPNUApYDddS7A==", - "requires": { - "cssnano-util-same-parent": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, "postcss-merge-longhand": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", @@ -10295,6 +10494,11 @@ "postcss-value-parser": "^3.0.0" }, "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + }, "postcss-value-parser": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", @@ -10430,22 +10634,6 @@ } } }, - "postcss-reduce-idents": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-4.0.2.tgz", - "integrity": "sha512-Tz70Ri10TclPoCtFfftjFVddx3fZGUkr0dEDbIEfbYhFUOFQZZ77TEqRrU0e6TvAvF+Wa5VVzYTpFpq0uwFFzw==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, "postcss-reduce-initial": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", @@ -10493,9 +10681,9 @@ } }, "postcss-selector-not": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", - "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", + "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", "requires": { "balanced-match": "^1.0.0", "postcss": "^7.0.2" @@ -10512,15 +10700,6 @@ "util-deprecate": "^1.0.2" } }, - "postcss-sort-media-queries": { - "version": "1.31.21", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-1.31.21.tgz", - "integrity": "sha512-h+HbXXfOVFeLvCJOzl/Z9SqQ25MNpG/73k71756ftisaaJy75h06/Dn6KOwC4OCMN10ewT2PXMzHV03JNKwBbg==", - "requires": { - "postcss": "^7.0.27", - "sort-css-media-queries": "1.5.0" - } - }, "postcss-svgo": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", @@ -10564,14 +10743,26 @@ "uniq": "^1.0.1" } }, - "postcss-zindex": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-4.0.1.tgz", - "integrity": "sha512-d/8BlQcUdEugZNRM9AdCA2V4fqREUtn/wcixLN3L6ITgc2P/FMcVVYz8QZkhItWT9NB5qr8wuN2dJCE4/+dlrA==", - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" + "prebuild-install": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", + "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^2.7.0", + "noop-logger": "^0.1.1", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0", + "which-pm-runs": "^1.0.0" } }, "prepend-http": { @@ -10626,9 +10817,9 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" } } }, @@ -10643,9 +10834,9 @@ "integrity": "sha512-MgMhSdHuHymNRqD6KM3eGS0PNqgK9q4QF5P0yoQQvpB6jNjeSAi3jcSAz0Sua/t9fa4xDOMar9HJbLa08gl9ug==" }, "prismjs": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.23.0.tgz", - "integrity": "sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.22.0.tgz", + "integrity": "sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w==", "requires": { "clipboard": "^2.0.0" } @@ -10812,11 +11003,6 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, - "queue-microtask": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", - "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -10862,12 +11048,13 @@ } }, "react": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", - "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" } }, "react-base16-styling": { @@ -11082,6 +11269,15 @@ } } }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -11186,6 +11382,14 @@ "json5": "^1.0.1" } }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -11211,6 +11415,19 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "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==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "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==" + }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -11219,6 +11436,11 @@ "pify": "^3.0.0" } }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -11251,19 +11473,20 @@ } }, "react-dom": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", - "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "scheduler": "^0.20.1" + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" } }, "react-error-overlay": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", - "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==" + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.8.tgz", + "integrity": "sha512-HvPuUQnLp5H7TouGq3kzBeioJmXms1wHy9EGjz2OURWBp4qZO6AfGEcnxts1D/CbwPLRAgTMPCEgYhA3sEM4vw==" }, "react-fast-compare": { "version": "3.2.0", @@ -11287,11 +11510,11 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-json-view": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.1.tgz", - "integrity": "sha512-AonvGea4nWlsnNXCbnSdUHsetyNS8rUMhbFHS9eFaDB1oeaxgHcVsqo5LhGRMvWybfDdjVUo0xzDoMQP7jbrXw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.19.1.tgz", + "integrity": "sha512-u5e0XDLIs9Rj43vWkKvwL8G3JzvXSl6etuS5G42a8klMohZuYFQzSN6ri+/GiBptDqlrXPTdExJVU7x9rrlXhg==", "requires": { - "flux": "^4.0.1", + "flux": "^3.1.3", "react-base16-styling": "^0.6.0", "react-lifecycles-compat": "^3.0.4", "react-textarea-autosize": "^6.1.0" @@ -11303,12 +11526,13 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-live": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-live/-/react-live-2.2.3.tgz", - "integrity": "sha512-tpKruvfytNETuzO3o1mrQUj180GVrq35IE8F5gH1NJVPt4szYCx83/dOSCOyjgRhhc3gQvl0pQ3k/CjOjwJkKQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-live/-/react-live-2.2.2.tgz", + "integrity": "sha512-kJYAzKnPsR4oXleAX9lLsJA330BhTmSWHhr3ienZA2E/0eFDRodGl3I7sge8pp1vjc2K5Aaz73KpFUnV7Lq/DQ==", "requires": { "buble": "0.19.6", "core-js": "^2.4.1", + "create-react-context": "0.2.2", "dom-iterator": "^1.0.0", "prism-react-renderer": "^1.0.1", "prop-types": "^15.5.8", @@ -11412,9 +11636,9 @@ } }, "react-side-effect": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz", - "integrity": "sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz", + "integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg==" }, "react-simple-code-editor": { "version": "0.10.0", @@ -11456,9 +11680,9 @@ } }, "reading-time": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.3.0.tgz", - "integrity": "sha512-RJ8J5O6UvrclfZpcPSPuKusrdRfoY7uXXoYOOdeswZNtSkQaewT3919yz6RyloDBR+iwcUyz5zGOUjhgvfuv3g==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.2.0.tgz", + "integrity": "sha512-5b4XmKK4MEss63y0Lw0vn0Zn6G5kiHP88mUnD8UeEsyORj3sh1ghTH0/u6m1Ax9G2F4wUZrknlp6WlIsCvoXVA==" }, "rechoir": { "version": "0.6.2", @@ -11477,9 +11701,9 @@ } }, "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==" }, "regenerate-unicode-properties": { "version": "8.2.0", @@ -11531,12 +11755,32 @@ } }, "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "regexpu-core": { @@ -11553,9 +11797,9 @@ } }, "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", + "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", "requires": { "rc": "^1.2.8" } @@ -11574,9 +11818,9 @@ "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" }, "regjsparser": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", - "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", "requires": { "jsesc": "~0.5.0" }, @@ -11610,17 +11854,6 @@ "xtend": "^4.0.1" } }, - "hastscript": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", - "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", - "requires": { - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, "parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", @@ -11678,33 +11911,33 @@ "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==" }, "remark-mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", - "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.19.tgz", + "integrity": "sha512-UKK1CFatVPNhgjsIlNQ3GjVl3+6O7x7Hag6oyntFTg8s7sgq+rhWaSfM/6lW5UWU6hzkj520KYBuBlsaSriGtA==", "requires": { - "@babel/core": "7.12.9", + "@babel/core": "7.11.6", "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-syntax-jsx": "7.12.1", - "@mdx-js/util": "1.6.22", + "@babel/plugin-proposal-object-rest-spread": "7.11.0", + "@babel/plugin-syntax-jsx": "7.10.4", + "@mdx-js/util": "1.6.19", "is-alphabetical": "1.0.4", "remark-parse": "8.0.3", "unified": "9.2.0" }, "dependencies": { "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", + "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", + "@babel/generator": "^7.11.6", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.5", + "@babel/types": "^7.11.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -11715,25 +11948,20 @@ "source-map": "^0.5.0" } }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", + "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" + "@babel/plugin-transform-parameters": "^7.10.4" } }, "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -11782,13 +12010,13 @@ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "renderkid": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz", - "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz", + "integrity": "sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==", "requires": { - "css-select": "^2.0.2", + "css-select": "^1.1.0", "dom-converter": "^0.2", - "htmlparser2": "^3.10.1", + "htmlparser2": "^3.3.0", "lodash": "^4.17.20", "strip-ansi": "^3.0.0" }, @@ -11818,6 +12046,11 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -11839,11 +12072,11 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", "requires": { - "is-core-module": "^2.1.0", + "is-core-module": "^2.0.0", "path-parse": "^1.0.6" } }, @@ -11942,12 +12175,9 @@ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" }, "run-queue": { "version": "1.0.3", @@ -11957,6 +12187,11 @@ "aproba": "^1.1.1" } }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" + }, "rx-sandbox": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/rx-sandbox/-/rx-sandbox-1.0.4.tgz", @@ -11972,13 +12207,6 @@ "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "requires": { "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } } }, "safe-buffer": { @@ -12005,9 +12233,9 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "scheduler": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", - "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -12260,6 +12488,32 @@ "safe-buffer": "^5.0.1" } }, + "shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "requires": { + "is-buffer": "^1.0.2" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" + } + } + }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12293,12 +12547,49 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "requires": { + "mimic-response": "^2.0.0" + } + }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" + } + } + }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "requires": { "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } } }, "sitemap": { @@ -12420,43 +12711,46 @@ } }, "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", "requires": { - "faye-websocket": "^0.11.3", + "faye-websocket": "^0.10.0", "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" + "websocket-driver": "0.6.5" } }, "sockjs-client": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", - "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", "requires": { - "debug": "^3.2.6", + "debug": "^3.2.5", "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.4.7" + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" }, "dependencies": { "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { "ms": "^2.1.1" } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "requires": { + "websocket-driver": ">=0.5.1" + } } } }, - "sort-css-media-queries": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-1.5.0.tgz", - "integrity": "sha512-QofNE7CEVH1AKdhS7L9IPbV9UtyQYNXyw++8lC+xG6iOLlpzsmncZRiKbihTAESvZ8wOhwnPoesHbMrehrQyyw==" - }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -12504,9 +12798,9 @@ } }, "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "sourcemap-codec": { "version": "1.4.8", @@ -12576,9 +12870,9 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", "requires": { "minipass": "^3.1.1" } @@ -12764,21 +13058,21 @@ } }, "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" } }, "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" } }, "string_decoder": { @@ -12913,6 +13207,31 @@ "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } } } }, @@ -12922,9 +13241,9 @@ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" }, "tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -12941,6 +13260,36 @@ } } }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + } + } + }, + "tar-stream": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", + "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, "term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -12989,12 +13338,78 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "p-limit": { + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "requires": { + "p-try": "^2.0.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==", + "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==", + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "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==" + }, + "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==", "requires": { - "yocto-queue": "^0.1.0" + "find-up": "^4.0.0" } }, "schema-utils": { @@ -13013,9 +13428,9 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "terser": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", - "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz", + "integrity": "sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ==", "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", @@ -13233,15 +13648,23 @@ "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==" }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -13269,21 +13692,15 @@ "is-typedarray": "^1.0.0" } }, - "typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", - "dev": true - }, "u2f-api": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz", "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==" }, "ua-parser-js": { - "version": "0.7.23", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.23.tgz", - "integrity": "sha512-m4hvMLxgGHXG3O3fQVAyyAQpZzDOvwnhOTjYz5Xmr7r/+LpkNy3vJXdVRWgd1TkAb7NGROZuSy96CrlNVjA7KA==" + "version": "0.7.22", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", + "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==" }, "unescape": { "version": "1.0.1", @@ -13340,9 +13757,9 @@ }, "dependencies": { "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" }, "is-plain-obj": { "version": "2.1.0", @@ -13402,14 +13819,14 @@ "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==" }, "unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.5.tgz", + "integrity": "sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw==" }, "unist-util-is": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.4.tgz", - "integrity": "sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", + "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==" }, "unist-util-position": { "version": "3.1.0", @@ -13417,9 +13834,9 @@ "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" }, "unist-util-remove": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.0.1.tgz", - "integrity": "sha512-YtuetK6o16CMfG+0u4nndsWpujgsHDHHLyE0yGpJLLn5xSjKeyGyzEBOI2XbmoUHCYabmNgX52uxlWoQhcvR7Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.0.0.tgz", + "integrity": "sha512-HwwWyNHKkeg/eXRnE11IpzY8JT55JNM1YCwwU9YNCnfzk6s8GhPXrVBBZWiwLeATJbI7euvoGSzcy9M29UeW3g==", "requires": { "unist-util-is": "^4.0.0" } @@ -13460,9 +13877,9 @@ } }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, "unpipe": { "version": "1.0.0", @@ -13536,9 +13953,9 @@ } }, "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "requires": { "punycode": "^2.1.0" }, @@ -13610,6 +14027,23 @@ } } }, + "usb": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/usb/-/usb-1.6.3.tgz", + "integrity": "sha512-23KYMjaWydACd8wgGKMQ4MNwFspAT6Xeim4/9Onqe5Rz/nMb4TM/WHL+qPT0KNFxzNKzAs63n1xQWGEtgaQ2uw==", + "requires": { + "bindings": "^1.4.0", + "nan": "2.13.2", + "prebuild-install": "^5.3.3" + }, + "dependencies": { + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" + } + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -13702,27 +14136,28 @@ "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" }, "vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.0.tgz", + "integrity": "sha512-a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==", "requires": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", + "replace-ext": "1.0.0", "unist-util-stringify-position": "^2.0.0", "vfile-message": "^2.0.0" }, "dependencies": { "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" } } }, "vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.1.0.tgz", + "integrity": "sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g==" }, "vfile-message": { "version": "2.0.4", @@ -13743,33 +14178,62 @@ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, - "wait-on": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-5.2.1.tgz", - "integrity": "sha512-H2F986kNWMU9hKlI9l/ppO6tN8ZSJd35yBljMLa1/vjzWP++Qh6aXyt77/u7ySJFZQqBtQxnvm/xgG48AObXcw==", + "wait-file": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/wait-file/-/wait-file-1.0.5.tgz", + "integrity": "sha512-udLpJY/eOxlrMm3+XD1RLuF2oT9B7J7wiyR5/9xrvQymS6YR6trWvVhzOldHrVbLwyiRmLj9fcvsjzpSXeZHkw==", "requires": { - "axios": "^0.21.1", - "joi": "^17.3.0", - "lodash": "^4.17.20", - "minimist": "^1.2.5", - "rxjs": "^6.6.3" + "@hapi/joi": "^15.1.0", + "fs-extra": "^8.1.0", + "rx": "^4.1.0" + }, + "dependencies": { + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + } } }, "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", "requires": { "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" + "watchpack-chokidar2": "^2.0.0" } }, "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", "optional": true, "requires": { "chokidar": "^2.1.8" @@ -13899,7 +14363,11 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } }, "glob-parent": { "version": "3.1.0", @@ -14038,9 +14506,9 @@ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" }, "webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", "requires": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", @@ -14050,7 +14518,7 @@ "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", + "enhanced-resolve": "^4.3.0", "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", "loader-runner": "^2.4.0", @@ -14161,24 +14629,6 @@ } } }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -14220,15 +14670,6 @@ "json5": "^1.0.1" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -14237,15 +14678,6 @@ "yallist": "^3.0.2" } }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -14266,32 +14698,6 @@ "to-regex": "^3.0.2" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -14310,11 +14716,6 @@ "ajv-keywords": "^3.1.0" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, "serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", @@ -14416,9 +14817,9 @@ } }, "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", "requires": { "memory-fs": "^0.4.1", "mime": "^2.4.4", @@ -14428,16 +14829,16 @@ }, "dependencies": { "mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==" + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" } } }, "webpack-dev-server": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", - "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", "requires": { "ansi-html": "0.0.7", "bonjour": "^3.5.0", @@ -14459,11 +14860,11 @@ "p-retry": "^3.0.1", "portfinder": "^1.0.26", "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", + "selfsigned": "^1.10.7", "semver": "^6.3.0", "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", "spdy": "^4.0.2", "strip-ansi": "^3.0.1", "supports-color": "^6.1.0", @@ -14615,7 +15016,11 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } }, "glob-parent": { "version": "3.1.0", @@ -14711,11 +15116,6 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -14900,12 +15300,10 @@ } }, "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, @@ -14914,6 +15312,11 @@ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" }, + "whatwg-fetch": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz", + "integrity": "sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ==" + }, "whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", @@ -14937,6 +15340,43 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "which-pm-runs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", + "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -15039,9 +15479,9 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { "version": "4.0.0", @@ -15070,36 +15510,6 @@ "yargs-parser": "^13.1.2" }, "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -15128,11 +15538,6 @@ } } }, - "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==" - }, "zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", diff --git a/website/package.json b/website/package.json index 22bcc8e218..f21dd05a6f 100644 --- a/website/package.json +++ b/website/package.json @@ -5,31 +5,26 @@ "start": "docusaurus start", "build": "docusaurus build", "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "netlify:preview": "netlify deploy --site $NETLIFY_SITE_ID --auth $NETLIFY_AUTH_TOKEN --json --alias=$short_sha --message 'Deployment for $GITHUB_REF'", - "netlify:publish": "netlify deploy --site $NETLIFY_SITE_ID --auth $NETLIFY_AUTH_TOKEN --json --prod --message 'Deployment for $GITHUB_REF'" + "deploy": "docusaurus deploy" }, "dependencies": { - "@docusaurus/core": "^2.0.0-alpha.70", - "@docusaurus/preset-classic": "^2.0.0-alpha.70", - "@docusaurus/theme-live-codeblock": "^2.0.0-alpha.70", - "@fortawesome/fontawesome-svg-core": "^1.2.34", - "@fortawesome/free-solid-svg-icons": "^5.15.2", - "@fortawesome/react-fontawesome": "^0.1.14", + "@docusaurus/core": "^2.0.0-alpha.63", + "@docusaurus/preset-classic": "^2.0.0-alpha.63", + "@docusaurus/theme-live-codeblock": "^2.0.0-alpha.63", + "@fortawesome/fontawesome-svg-core": "^1.2.32", + "@fortawesome/free-solid-svg-icons": "^5.15.1", + "@fortawesome/react-fontawesome": "^0.1.11", "@ledgerhq/hw-transport-u2f": "^5.28.0", - "@taquito/beacon-wallet": "^9.0.0", - "@taquito/ledger-signer": "^9.0.0", - "@taquito/signer": "^9.0.0", - "@taquito/taquito": "^9.0.0", - "@taquito/tezbridge-wallet": "^9.0.0", - "@taquito/tzip12": "^9.0.0", - "@taquito/tzip16": "^9.0.0", - "@taquito/utils": "^9.0.0", - "@taquito/michelson-encoder": "^9.0.0", - "@thanos-wallet/dapp": "^2.2.1", + "@taquito/beacon-wallet": "7.1.0-preview.1", + "@taquito/ledger-signer": "7.1.0-preview.1", + "@taquito/signer": "7.1.0-preview.1", + "@taquito/taquito": "7.1.0-preview.1", + "@taquito/tezbridge-wallet": "7.1.0-preview.1", + "@taquito/utils": "7.1.0-preview.1", + "@thanos-wallet/dapp": "^0.7.0", "classnames": "^2.2.6", - "react": "^17.0.1", - "react-dom": "^17.0.1" + "react": "^16.13.1", + "react-dom": "^16.13.1" }, "browserslist": { "production": [ @@ -43,7 +38,5 @@ "last 1 safari version" ] }, - "devDependencies": { - "typescript": "^4.1.5" - } + "devDependencies": {} } diff --git a/website/sidebars.json b/website/sidebars.json index a82b594b9f..db42cb2b68 100755 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -5,33 +5,22 @@ "label": "General", "items": [ "quick_start", - "boilerplate", - "batch_API", + "boilerplate", + "wallet_API", + "making_transfers", + "originate", "set_delegate", + "smartcontracts", "estimate", - "lambda_view", + "validators", "maps_bigmaps", - "michelsonmap", - "originate", - "rpc_nodes", + "web3js_taquito", "rpc_package", - "signing", - "smartcontracts", - "tickets", - "making_transfers", - "tutorial_links", - "tzip12", - "metadata-tzip16", - "validators", - "wallet_API", - "web3js_taquito" + "rpc_nodes", + "lambda_view", + "batch_API" ] }, - { - "type": "category", - "label": "Packages", - "items": ["michelson_encoder"] - }, { "type": "category", "label": "Signer", @@ -48,7 +37,7 @@ "items": ["ledger_integration_test", "rpc_nodes_integration_test"] }, { - "Upgrading Guide": ["upgrading_guide"] + "Upgrading Guide": ["v7_breaking_changes"] }, { "type": "link", diff --git a/website/src/theme/CodeBlock/index.js b/website/src/theme/CodeBlock/index.js index 477fa667f2..09796cd8a2 100755 --- a/website/src/theme/CodeBlock/index.js +++ b/website/src/theme/CodeBlock/index.js @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import { TezosToolkit, MichelsonMap, compose } from '@taquito/taquito'; +import { TezosToolkit, MichelsonMap } from '@taquito/taquito'; import { importKey } from '@taquito/signer'; import { validateAddress, @@ -22,9 +22,6 @@ import { BeaconWallet } from '@taquito/beacon-wallet'; import { InMemorySigner } from '@taquito/signer'; import { LedgerSigner, DerivationType } from '@taquito/ledger-signer'; import { TezBridgeWallet } from '@taquito/tezbridge-wallet'; -import { Tzip16Module, tzip16, bytes2Char, MichelsonStorageView } from '@taquito/tzip16' -import { Tzip12Module, tzip12 } from "@taquito/tzip12"; -import { Schema, ParameterSchema } from "@taquito/michelson-encoder"; import { ThanosWallet } from '@thanos-wallet/dapp'; import TransportU2F from "@ledgerhq/hw-transport-u2f"; import Playground from '@theme/Playground'; @@ -79,14 +76,12 @@ export default ({ }, [button.current, target.current]); if (live) { - const Tezos = new TezosToolkit('https://api.tez.ie/rpc/florencenet'); - const wallet = new BeaconWallet({name:"exampleWallet"}); + const Tezos = new TezosToolkit('https://api.tez.ie/rpc/carthagenet'); return ( <Playground scope={{ ...React, Tezos, - wallet, importKey, validateAddress, validateChain, @@ -101,20 +96,10 @@ export default ({ BeaconWallet, InMemorySigner, LedgerSigner, - Tzip16Module, - tzip16, - bytes2Char, - MichelsonStorageView, - Tzip12Module, - tzip12, TezBridgeWallet, ThanosWallet, DerivationType, - TransportU2F, - compose, - Schema, - ParameterSchema - }} + TransportU2F }} code={children.trim()} theme={prism.theme || defaultTheme} transformCode={code => code.replace(/import .*/g, '')} diff --git a/website/src/theme/Playground/index.js b/website/src/theme/Playground/index.js index 4264e219f1..fd54613e75 100755 --- a/website/src/theme/Playground/index.js +++ b/website/src/theme/Playground/index.js @@ -46,10 +46,12 @@ function println(value) { render(_printlnBuffer); } -Tezos.setProvider({ rpc: 'https://api.tez.ie/rpc/florencenet' }); +Tezos.setProvider({ rpc: 'https://api.tez.ie/rpc/carthagenet' }); ${this.props.wallet ? - `const network = {type:"florencenet"}; + `const option = {name:"exampleWallet"}; + const wallet = new BeaconWallet(option); + const network = {type:"carthagenet"}; wallet.requestPermissions({network}) .then(permission => { return Tezos.setWalletProvider(wallet); @@ -57,7 +59,7 @@ ${this.props.wallet ? .then(() => { ${this.code} });`: - `fetch('https://api.tez.ie/keys/florencenet/', { + `fetch('https://api.tez.ie/keys/carthagenet/', { method: 'POST', headers: { Authorization: 'Bearer taquito-example' }, }) @@ -108,39 +110,12 @@ const contractMap8pairs = const contractMapBigMap = [ { "prim": "parameter", "args": [ { "prim": "unit" } ] },{ "prim": "storage","args":[ { "prim": "pair","args":[ { "prim": "big_map","args":[ { "prim": "pair","args": [ { "prim": "nat" }, { "prim": "address" } ] },{ "prim": "int" } ], "annots": [ "%thebigmap" ] },{ "prim": "map","args":[ { "prim": "pair","args": [ { "prim": "nat" }, { "prim": "address" } ] },{ "prim": "int" } ], "annots": [ "%themap" ] } ] } ] },{ "prim": "code","args":[ [ { "prim": "DUP" }, { "prim": "CDR" },{ "prim": "NIL", "args": [ { "prim": "operation" } ] },{ "prim": "PAIR" },{ "prim": "DIP", "args": [ [ { "prim": "DROP" } ] ] } ] ] } ] -//signer required for examples in complex_parameter.md +//signer for example with complex storage/parameters const emailExample = "zsjpcmui.oysiavbv@tezos.example.org" const passwordExample = "4rW0D22yXt" const mnemonicExample = "arrange ceiling whisper churn congress double step carpet empty rice prevent swallow silk casual champion" const secretExample = "af552679c4943509bd77643b8ef3f8dcf42e61b3" -// This is the code of the contract use in complex_parameter.md -const contractJson = [{"prim":"parameter","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"lambda","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"address","annots":["%owner"]},{"prim":"big_map","args":[{"prim":"bytes"},{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"option","args":[{"prim":"address"}],"annots":["%address"]},{"prim":"map","args":[{"prim":"string"},{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"address","annots":["%address"]},{"prim":"bool","annots":["%bool"]}]}, -{"prim":"or","args":[{"prim":"bytes","annots":["%bytes"]},{"prim":"int","annots":["%int"]}]}]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"key","annots":["%key"]},{"prim":"key_hash","annots":["%key_hash"]}]},{"prim":"or","args":[{"prim":"nat","annots":["%nat"]},{"prim":"signature","annots":["%signature"]}]}]}]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"string","annots":["%string"]},{"prim":"mutez","annots":["%tez"]}]},{"prim":"timestamp","annots":["%timestamp"]}]}]}],"annots":["%data"]}]},{"prim":"pair","args":[{"prim":"address","annots":["%owner"]},{"prim":"option","args":[{"prim":"nat"}],"annots":["%ttl"]}]}]}, -{"prim":"option","args":[{"prim":"nat"}],"annots":["%validator"]}]}],"annots":["%records"]}]},{"prim":"map","args":[{"prim":"nat"},{"prim":"address"}],"annots":["%validators"]}]},{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"address","annots":["%owner"]},{"prim":"big_map","args":[{"prim":"bytes"},{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"option","args":[{"prim":"address"}],"annots":["%address"]},{"prim":"map","args":[{"prim":"string"},{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"address","annots":["%address"]}, -{"prim":"bool","annots":["%bool"]}]},{"prim":"or","args":[{"prim":"bytes","annots":["%bytes"]},{"prim":"int","annots":["%int"]}]}]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"key","annots":["%key"]},{"prim":"key_hash","annots":["%key_hash"]}]},{"prim":"or","args":[{"prim":"nat","annots":["%nat"]},{"prim":"signature","annots":["%signature"]}]}]}]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"string","annots":["%string"]},{"prim":"mutez","annots":["%tez"]}]},{"prim":"timestamp","annots":["%timestamp"]}]}]}],"annots":["%data"]}]},{"prim":"pair","args":[{"prim":"address","annots":["%owner"]}, -{"prim":"option","args":[{"prim":"nat"}],"annots":["%ttl"]}]}]},{"prim":"option","args":[{"prim":"nat"}],"annots":["%validator"]}]}],"annots":["%records"]}]},{"prim":"map","args":[{"prim":"nat"},{"prim":"address"}],"annots":["%validators"]}]}],"annots":["%admin_update"]},{"prim":"pair","args":[{"prim":"contract","args":[{"prim":"option","args":[{"prim":"address"}]}],"annots":["%callback"]},{"prim":"bytes","annots":["%name"]}],"annots":["%resolve"]}]},{"prim":"or","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"option","args":[{"prim":"address"}],"annots":["%address"]}, -{"prim":"map","args":[{"prim":"string"},{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"address","annots":["%address"]},{"prim":"bool","annots":["%bool"]}]},{"prim":"or","args":[{"prim":"bytes","annots":["%bytes"]},{"prim":"int","annots":["%int"]}]}]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"key","annots":["%key"]},{"prim":"key_hash","annots":["%key_hash"]}]},{"prim":"or","args":[{"prim":"nat","annots":["%nat"]},{"prim":"signature","annots":["%signature"]}]}]}]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"string","annots":["%string"]},{"prim":"mutez","annots":["%tez"]}]}, -{"prim":"timestamp","annots":["%timestamp"]}]}]}],"annots":["%data"]}]},{"prim":"pair","args":[{"prim":"bytes","annots":["%label"]},{"prim":"address","annots":["%owner"]}]}]},{"prim":"pair","args":[{"prim":"bytes","annots":["%parent"]},{"prim":"option","args":[{"prim":"nat"}],"annots":["%ttl"]}]}],"annots":["%set_child_record"]},{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"option","args":[{"prim":"address"}],"annots":["%address"]},{"prim":"map","args":[{"prim":"string"},{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"address","annots":["%address"]}, -{"prim":"bool","annots":["%bool"]}]},{"prim":"or","args":[{"prim":"bytes","annots":["%bytes"]},{"prim":"int","annots":["%int"]}]}]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"key","annots":["%key"]},{"prim":"key_hash","annots":["%key_hash"]}]},{"prim":"or","args":[{"prim":"nat","annots":["%nat"]},{"prim":"signature","annots":["%signature"]}]}]}]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"string","annots":["%string"]},{"prim":"mutez","annots":["%tez"]}]},{"prim":"timestamp","annots":["%timestamp"]}]}]}],"annots":["%data"]}]},{"prim":"pair","args":[{"prim":"bytes","annots":["%name"]},{"prim":"address","annots":["%owner"]}]}]}, -{"prim":"option","args":[{"prim":"nat"}],"annots":["%ttl"]}],"annots":["%update_record"]}]}]}]},{"prim":"storage","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"address","annots":["%owner"]},{"prim":"big_map","args":[{"prim":"bytes"},{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"pair","args":[{"prim":"option","args":[{"prim":"address"}],"annots":["%address"]},{"prim":"map","args":[{"prim":"string"},{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"or","args":[{"prim":"address","annots":["%address"]},{"prim":"bool","annots":["%bool"]}]},{"prim":"or","args":[{"prim":"bytes","annots":["%bytes"]}, -{"prim":"int","annots":["%int"]}]}]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"key","annots":["%key"]},{"prim":"key_hash","annots":["%key_hash"]}]},{"prim":"or","args":[{"prim":"nat","annots":["%nat"]},{"prim":"signature","annots":["%signature"]}]}]}]},{"prim":"or","args":[{"prim":"or","args":[{"prim":"string","annots":["%string"]},{"prim":"mutez","annots":["%tez"]}]},{"prim":"timestamp","annots":["%timestamp"]}]}]}],"annots":["%data"]}]},{"prim":"pair","args":[{"prim":"address","annots":["%owner"]},{"prim":"option","args":[{"prim":"nat"}],"annots":["%ttl"]}]}]},{"prim":"option","args":[{"prim":"nat"}],"annots":["%validator"]}]}],"annots":["%records"]}]}, -{"prim":"map","args":[{"prim":"nat"},{"prim":"address"}],"annots":["%validators"]}]}]},{"prim":"code","args":[[{"prim":"DUP"},{"prim":"CDR"},{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"AMOUNT"},{"prim":"COMPARE"},{"prim":"GT"},{"prim":"IF","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"AMOUNT_NOT_ZERO"}]},{"prim":"FAILWITH"}],[{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"IF_LEFT","args":[[{"prim":"DUP"},{"prim":"IF_LEFT","args":[[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"}, -{"prim":"DUG","args":[{"int":"2"}]},{"prim":"SWAP"},{"prim":"EXEC"},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"PAIR"},{"prim":"DIP","args":[[{"prim":"DROP"}]]}],[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"PAIR"},{"prim":"DUP"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"}, -{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"GET"},{"prim":"IF_NONE","args":[[{"prim":"NONE","args":[{"prim":"address"}]}],[{"prim":"DUP"},{"prim":"CAR"},{"prim":"CAR"},{"prim":"CAR"},{"prim":"DIP","args":[[{"prim":"DROP"}]]}]]},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"TRANSFER_TOKENS"},{"prim":"CONS"},{"prim":"DIP","args":[[{"prim":"DROP","args":[{"int":"3"}]}]]},{"prim":"PAIR"}, -{"prim":"DIP","args":[[{"prim":"DROP"}]]}]]},{"prim":"DIP","args":[[{"prim":"DROP"}]]}],[{"prim":"DUP"},{"prim":"IF_LEFT","args":[[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"DUP"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"},{"prim":"DUP"},{"prim":"CAR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"GET"}, -{"prim":"IF_NONE","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"PARENT_NOT_FOUND"}]},{"prim":"FAILWITH"}],[{"prim":"SENDER"},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"COMPARE"},{"prim":"NEQ"},{"prim":"IF","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"NOT_AUTHORIZED"}]},{"prim":"FAILWITH"}],[{"prim":"PUSH","args":[{"prim":"bytes"},{"bytes":""}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"COMPARE"},{"prim":"EQ"}, -{"prim":"IF","args":[[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"CAR"}],[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"CAR"},{"prim":"PUSH","args":[{"prim":"bytes"},{"bytes":"2e"}]},{"prim":"CONCAT"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"CONCAT"}]]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]}, -{"prim":"CAR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"6"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"7"}]},{"prim":"CDR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"7"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"8"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"7"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"8"}]},{"prim":"CAR"},{"prim":"CAR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"8"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"9"}]},{"prim":"CAR"},{"prim":"CAR"}, -{"prim":"CAR"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"SOME"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"UPDATE"},{"prim":"DIP","args":[[{"prim":"DUP"},{"prim":"CDR"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"CAR"}]]},{"prim":"SWAP"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"3"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"4"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"GET"},{"prim":"IF_NONE","args":[[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"}, -{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"IF_NONE","args":[[{"prim":"NIL","args":[{"prim":"operation"}]}],[{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"DIG","args":[{"int":"7"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"8"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"7"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"8"}]},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"DUP"},{"prim":"CAR"},{"prim":"CAR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"}, -{"prim":"GET"},{"prim":"IF_NONE","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"INVALID_VALIDATOR_INDEX"}]},{"prim":"FAILWITH"}],[{"prim":"DUP"},{"prim":"CONTRACT","args":[{"prim":"bytes"}],"annots":["%validate"]},{"prim":"IF_NONE","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"INVALID_VALIDATOR_CONTRACT"}]},{"prim":"FAILWITH"}],[{"prim":"DUP"},{"prim":"PUSH","args":[{"prim":"mutez"},{"int":"0"}]},{"prim":"DIG","args":[{"int":"4"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"5"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"TRANSFER_TOKENS"},{"prim":"DIP","args":[[{"prim":"DROP"}]]}]]},{"prim":"DIP","args":[[{"prim":"DROP"}]]}]]}, -{"prim":"DIP","args":[[{"prim":"DROP"}]]},{"prim":"CONS"},{"prim":"DIP","args":[[{"prim":"DROP"}]]}]]}],[{"prim":"DROP"},{"prim":"NIL","args":[{"prim":"operation"}]}]]},{"prim":"PAIR"},{"prim":"DIP","args":[[{"prim":"DROP"}]]}]]},{"prim":"DIP","args":[[{"prim":"DROP"}]]}]]},{"prim":"DIP","args":[[{"prim":"DROP","args":[{"int":"4"}]}]]}],[{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"PAIR"},{"prim":"DUP"},{"prim":"CAR"},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CDR"}, -{"prim":"DUP"},{"prim":"CAR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"GET"},{"prim":"IF_NONE","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"RECORD_NOT_FOUND"}]},{"prim":"FAILWITH"}],[{"prim":"SENDER"},{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"2"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"COMPARE"},{"prim":"NEQ"},{"prim":"IF","args":[[{"prim":"PUSH","args":[{"prim":"string"},{"string":"NOT_AUTHORIZED"}]},{"prim":"FAILWITH"}],[{"prim":"DIG","args":[{"int":"1"}]},{"prim":"DUP"}, -{"prim":"DUG","args":[{"int":"2"}]},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"2"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"3"}]},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"6"}]},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"6"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"7"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"CDR"},{"prim":"PAIR"},{"prim":"DIG","args":[{"int":"6"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"7"}]},{"prim":"CAR"},{"prim":"CAR"},{"prim":"CDR"},{"prim":"DIG","args":[{"int":"7"}]}, -{"prim":"DUP"},{"prim":"DUG","args":[{"int":"8"}]},{"prim":"CAR"},{"prim":"CAR"},{"prim":"CAR"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"PAIR"},{"prim":"SOME"},{"prim":"DIG","args":[{"int":"5"}]},{"prim":"DUP"},{"prim":"DUG","args":[{"int":"6"}]},{"prim":"CAR"},{"prim":"CDR"},{"prim":"CAR"},{"prim":"UPDATE"},{"prim":"DIP","args":[[{"prim":"DUP"},{"prim":"CDR"},{"prim":"SWAP"},{"prim":"CAR"},{"prim":"CAR"}]]},{"prim":"SWAP"},{"prim":"PAIR"},{"prim":"PAIR"}]]},{"prim":"DIP","args":[[{"prim":"DROP"}]]}]]},{"prim":"DIP","args":[[{"prim":"DROP","args":[{"int":"3"}]}]]},{"prim":"NIL","args":[{"prim":"operation"}]},{"prim":"PAIR"},{"prim":"DIP","args":[[{"prim":"DROP"}]]}]]}, -{"prim":"DIP","args":[[{"prim":"DROP"}]]}]]}]]},{"prim":"DIP","args":[[{"prim":"DROP","args":[{"int":"2"}]}]]}]]}] - //contracts for examples of storage with and without annotations const contractStorageAnnot = [ { "prim": "parameter", "args": [ { "prim": "unit" } ] },{ "prim": "storage","args":[ { "prim": "pair","args":[ { "prim": "pair","args":[ { "prim": "pair","args":[ { "prim": "address", "annots": [ "%theAddress" ] },{ "prim": "bool", "annots": [ "%theBool" ] } ] },{ "prim": "pair","args":[ { "prim": "nat", "annots": [ "%theNat" ] },{ "prim": "int", "annots": [ "%theNumber" ] } ] } ] },{ "prim": "mutez", "annots": [ "%theTez" ] } ] } ] },{ "prim": "code","args":[ [ { "prim": "DUP" }, { "prim": "CDR" },{ "prim": "NIL", "args": [ { "prim": "operation" } ] },{ "prim": "PAIR" },{ "prim": "DIP", "args": [ [ { "prim": "DROP" } ] ] } ] ] } ] diff --git a/website/static/img/FlowchartGetTokenMetadata.png b/website/static/img/FlowchartGetTokenMetadata.png deleted file mode 100644 index 2b3266c60ec2e6ad490ee2573aa8481220733d1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244461 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�OCmVnK`Zvl|oh<2iS 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 diff --git a/website/static/img/Tzip16ExecuteView.png b/website/static/img/Tzip16ExecuteView.png deleted file mode 100644 index e6f27e2fbf123faa5343a36c39cfacc738a40634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172698 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 QL=IVH*Z!SxJM=I9Ki(aLN&o-= diff --git a/website/static/img/diagramTzip16Metadata.png b/website/static/img/diagramTzip16Metadata.png deleted file mode 100644 index 8cfd55528007a1261ecae5b211f6cded5c94c10b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218209 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�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 VKR|yVl%WA4cSz}A%zmBA{{=grANT+O diff --git a/website/static/img/nomadic.png b/website/static/img/nomadic.png index 2087b3d6cc6dff246ab094c8bd218f0ab3c913bc..b19aac0d68d377ea56f603f16d23ef5586788eba 100644 GIT binary patch literal 64581 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 z%0A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 literal 54977 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∋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%0AM$|d zMA}q!LaN%9GCmmX5yv>$Hm8|x!no`hKcLVh+FP^^bruYeKAVFM&{`{eu3qvZzDhNr zXU|ZF8e+Qe+l3Oda=xT$H_&IZJsZWeD!s9e!S;W)viAQDm4)XRSPVX+Z0b9iyxp@W zO8JD{=qyH;*8?4ZGrmJ**`RZ8=S;|%O1FvHe^`Gvvp0P48j=~2gDn>}w&A>Of{z4Z zMsuUxF01G3v?{gW4oVZ$5w;H}XOyw~?N%hSo@(rf25Ic~2c_TypIODRqRUipOy1rZ z5XYFTW|;5jloO<OA3Rze^iv$uWycqv-}v_Jc=MLv%Cn(7KZm!2&&oR%FSZ)DcCC0e zatpK+@F*vm=}*`HkSFJ@+a!f&Rs~-*WFub@g*>9)mN2b<w6K}U6Wz@nDzjG1xgKcy zgssm5RuUZV_;Xi7HEA2GS(s$VJ#lf(i*ucm*n$_B;$Mr3+$Q}NyD6X88GLcI$UJyP zrKaK+2SZO>WVnpL_ebb9D91Use*4Y?O~$r_nHHVx#svN!lYKeMzs>|!5>{cdBE>-| z_l=yMe@X3_uqb_W$xd~4RXViFJzveRbK|!z(V)ZE=vTTVDyKNviG;Xa%$TlAq5pB| zi(hO}Q&ac1+f1uo!LP&%)lURmw9DnITdxz)Q-n@rgeZ7x6`v))Xh=cl6R0<*PI4;0 zdhB7rGvOKXKFMTR@9oqZll};ef1*3}MGVY&rsA?wc5WH+SOkXAZ(sQk)s7zVct!cA z{&i~5gLt{(qm>e{Io?zQ>(85ay+d4?gRA1M)wf=_)7slIS0|)*;CJtONL+Bv;N&FX z(wD*L%^RfOC!blQsr_`p*GFVf9u*B^Mt*(8M-i@EW;#jn6<Kp9vPj@2>VB&WA=9_t zZd$~Y4^b+1rwy!M`8a6#o)o!%Ab)I&g$(2MZJm<9F<2S<$1<kVHKg*}nmDRtHU=|} zWTvDvy-;T{KJm+%n84`eSKFhS8A|DNS5iIS6-XLe<S5miDpqS>a4ZtmI$4j~b-#$4 zmbCRfFCosG{w0hr&;kEV^U}cx#74N+ySc#zb!=I?QHM0Tl#9~~lx|G^=*ti|*V0Q^ zm~j^~5VM+Ifyog^Cj@oUOE(FT0WMnZOD8zRA+n-5FOoeHYHV)46zWhvE3A1WgrNR# zoPlwS(y%*idPx&p#cZ&-v$Wa&m1;%oZQriQF=xB@p-zEm>l!hxGvXc|^~x`xd�G zX&y7c^l-%TKIePAk)IXvVM1vRLGN*8hD-?~xj<FoQJrd^!k0ywUS-FJpT+rHi%a}` zHZ)+L3sx-N>(hKjxanw!49@3SQme;A!Yo=m(d)aDhUWM2>S!sU8|gz~BA#y7Es@jW z%l+8?7k>Pa=*?;6xYY3V=*WOj<igF+{<pf4k6)N1F^>K|rKWs2-7M(%T2^F$;`g1T z@dY?>8P~WUh3)Sbbjz5JHw@4~H*8}rexdHPpqm*5ulEQ@IJJ#*tIoYqO)JH+jVmUN za~ZdcEZp_xeKrEg!LHYDc1@Bm-J4uhf{on#6k|Q00c3k+zZw3K$hTSG`;($>Sl;}k zNqTN+AguLw^04EL3u&n`I|1ItQ8+v~a!Ykh0+c0a%{IQt^Kg~J5XnRx;9Tdz=b(@& z!4+3{;2vA+V%{qRp7i~xpRd&)t1A$VIM*|={bEr!oTD1i^AL{6NUr##E1TDg2*=N9 zux*X>H|cKrxcueoC=-~wvDjX#-Tgsk>R<!Y;Y$`L9Tor8_`q+%oE&YM``pEsInX25 zB%YF+yj(f{K9~F8r>_EmBVX|LPRwd#WbrH5N@ywC`})$2^e=n<q@y{*+v?x>t@gY_ zcwA-}cWthRJa70)23ERfzGmNC)t<;J<&<FMwbsZVwRbrjYNt*_^g??-o}s35!{@>4 z#0}B*v$+~#P!3S=On-iGLm;bP^Wct?p<whCKfQ((b;y=7F@wPI7u(fal<>x^{?;%^ z085~PL2>ew|EZGC_iw{Se$sgd4S3MWp799!St+?(d$*NG99Z|7N7W^TgEW;+a&pk` z<D$>TwVk1EvSJ+Th4ie~De>|>rlUVUH0*Rvll11l-~5zfh|~$nx|6JzzOea^{QKK3 zODwyhB`U)EVmP178^V=^@d5C)*vU_ylj?lMv<V!$%6JwzU$mIDhuABj^aBBRtdt(< z4Y(`d%0jh(+w+P~r??-QEEW%yw+G^c5TL?FZtePDAjxbc<3*%D<-U4mL2Mx78Y5A~ zfGU&B%zq<F{GD26W4P1+OT<BBBrNFdy<{eE*Tf^%GG!y1bm*?f_0$Jmx7;dU?qc_j zT8(Q88II2<-Fs<uqF8wVnYOLWTBdWN_Q7{Z_>FYJgO`oI?(|Qk87qHWO5@}#J~JO1 zCe1j8^Gi0czCy-D23W>bN(IBhb$TrCy$n@;act{UU%wuPt%6caAWiBCMMggEL=CvR z+(ljIzd7ASTzD;+jewE5=QRa54Ww(=L@V3Sw3|EDt%fy)^m^L%;ku_XpO2)Ck@O}( zx|QwoTWXCD*df!%>EB&<!wWa^t*1tiZmTB*E{6r|o+jSbx#3(-Aa#3b@p2Z&MK;#U zF;?kK$O{Ds1&UGm4c6Vw7<RLUq}srEs=qjld5C(v8FUk5Y+zAotD8K1ROKJ+wq4y` zE8I6Z5T7Fa4J)HMo!Rc>(Ni8eEW^tE9eQwgN3`d6ykA&1|IrXoi9>buy}6@eN$dSS zLF>%t{FA|2YwDI$;zJj*cbLe3$3C%|tm0=5iEL1QM>&|PX56}wKQs8D__%7utj*2q zBa>Sq-@f3(Upmg^H?lKL!_<fVc{x6AoWa_lDx9bP>J(=bnnD-%tHO!vXSX_8x0#E` ze8fq3q$_#z37@Z8Nk8cIQlVvzLD{)1XI-&Xfemz|N)yZK0aLu;XAME+JJXr}&==`T zSPlGCR_c>!SD3J&Z)nirO}rUDz$v{s=-YLbXe0cMa-KQ2FpML>0bC|n5o*mE64CG> z>Ef3lU|ZWBh>)AkU{(%-5DvYm6sV(Wx=WWHUOwtduxDX9LkPXfRR7Do_;!xG11aI2 z<$wGfWQmHTXZ}6*GYS^yVx{#~zpjhUm)71y26)fGqT(YCp7Ci65pNUSzPl!kJD2zr z30mLdYZO}B@pkPg>bt(!4fodHY;N(9>({4#1kns_ody%*-=#kf%8l>IEsC@|3Fwzx z&vF(e-X(@|dg))kD<E_}^m`7p_|s5EVaZY0vh(9@yiGz#oZ=<s0JXJa21bg?*)8q) zEIsm$^@B===w?~;viYSj!-ynkuXr&ABlhz-K1HrwM(>jZ{s7WuezJRdIKsjZ$tTUc zd_Vl$tAWoA3@VI5PZ5<mB;BK{OoFD{rRhg^6<WP4=92INdJU!Gw<a#}1R&hD$2(&? zJX(C{70qw;aBg0Xy6T)_NRViDUcXCr^>Z>=Sq6a3CQstiih;$shr~2)dyi+8dTdQY zzhde3*~FhBrXI)vZRyUOBv$^z&y0xL^t{Avx(kz^_|z74CwS?t>2|^4^a{nB`}R&U ziZ`JxASlmQaxFG8-~n<$KkAzE<Xs{U=lTY=-$B4V(?H7Yx2{2y-@9pkZG8s+8r<3C z-$AMo4dhwf)Uy-pixC#*8JEBL1|18`cw_#k>}FtTS_Va2kLd3te$ZG~WA2fY{%LPl zSuJ17X|mURk-&p*zVWFXm^3DSuHne^lM{q0k%)KR;g&E<gnn~bx!mF%QbIlz#^i3u zb;(G4m~O^Na@y&w)r7){Ek0rnK9Akslrh2tV$i03w^9wZ)fO2Lh;(ZFd{$8s_@m<D zBBczG7HWgqt85Jk4UUg#?3dQCzK|)+=9DwiDedhnqx{w*;}m}A^kcuTmjnc~GR!*9 zzJl5Ep}Rr2fFjOX7V0i@5T+P-4NooS3iPO`&?_Krk$GUGld1}6Cz9ERc!F2<2lAue zz44u$1<bx<SJ~6u&-*%L?XL8oOom^<@{ZOBnyRiGSfPFn@0mgPE%!s<fl8ZBbN)=P z9+wyrs0_m;^A?gLYd|h2O5ltVDr9qDz0xD5^{({8uuilPh!-k?g<VT$5Y!D(+WJu| zaIRRDRB$8;q=WH2;#W=Bz>+n@6EgG|h_Vthg`AAzzTtxOyGPez*_F<Lix(U`<t7YK zjRd@5M3nHi775(hsO!#yXFwkG2?zY(ic%2snk4a_%40<R_jh=g^NdbcL%%u(HC9Y9 z65XS&oM_M&hxQ6<u`d1&6IpEkP{J3XgJwYks`@W~rxxC$q6cMHvvfC^Hbt0>DY9A| z^z3Ju#va5Ew028qQM?*vPFq9_ks#ZW-f!2niB;r!mk2P)6!YJKE)g!B8O_al0%LLf zmKtdO5Ur;T9bQ+SwVis5SBS_L{-z;;>lSdg$xc|euJ3O>&rk$ug6#qu>Iy8Q^r^bk z{>_Py5#V9l0*2##ed&#RD>YSFMq#&$o@jGF9NFVJGw*z0iCp;3F3>_pEbjQ6y;8!p z#tZIfsJVbUdHVU_`+*2>{b3b2_Ukn(TsM80*VM<=>aR`-y;Om0wRtzctgv&W3)f3u z&)MXLy07?n-mrRPphG(9TrA2Ir3Ql9EJ*mB8~BaoB`$X<oR6|vfaxjD%nzH}IIR-M zX!Y*iEpOW|cxw6tl0D1jsHM?<!^xVXrf*Q@;~y@S@o#wra&j_ZVEN*Z`B&l&KF%B& z3-}CJb7Z8DuS#}lMC#N#Cl_?@%U_8H>bQymnD2ejz|Ws>v*RynNpGni@SLQfi%|q8 zpYKZ_{2SjBs10bp<@PJ2oL?RbmvbDB1xR=%=Db^!7G}DWe%aa`o~sJOrR{sC6jzUt z#+IH1GFL=dUzr}c)*nm#_zT@^?>g2vZYLG!)Nqkgq0@Bx2Yblo5!EvrGx(7R(J4$* zc^1j^Mmj>HX(~mRy(0ZNdef@O4ST5+%ipkn)>BT^vzFO34K<GPN~<|hqafVG7E)$u z7*4NVIQYb`*Lx<T0lHo5b1u#M`SY}E?9$2$dHpk6SCCG=4jcD*N?2<Oumo3I5AT<I zDxezg7_Le8!Ts&&@M~czW8ARi@mCA@K+bg=37p#a?pPee`nl?4-H;jHMfjUg>X3}$ ziaObQa&des*>NC!?9@*jr|qZ5?Gmk%k8X^wSIR$0{kXm)xXR+;(57mg)3;CTFeWb< zI600u3HJtt2Bc^OMXD=oTj6uizG>t6IYTJqHO^8r|ApbA+T#I=fkrLIN-FslZ;YjS zBd$*Z96${{0*yPHBjP--v3{M{&AHx@t<*jFTmoOt7jkfqd@VVNZp7!>q!_LuQC(zj zGZNe-CF)(5@mMEg;W^1@M4_GIYPItBEj_1ee83&6_UL%vSdZiQsM8onfWn2&Z>#3< z5nLEY6U+Nvw_<EO3>c?}vz3B8h#t9i1H!%rm+y<Mg<MitH29hAA`0bzGmQs}Dw;t2 zUpX=qoteLEV-i-~uuH8Hi~ptCd&Xct`9}I@r5JwKWQ2l*ZxvmV#R)|yhs<o6-{!Lw zI!%^_%*PA=i>9mKit6vW6NDlmB3%js4oEi)B}j+T4FV1wl0yw3Do7*UD2zxe-3)?+ zl+q#0NH;?_y!ZdC^?ra^bMLvoIA@=I_O>u6D(zbrm^l8C22;RlVNxjf;QLAglgWA8 zz_95D`1iF<jJVWu(rAYr1<QnkZ|%Sa3{0Cyq}(TJOE`f5qFo*zxN;3PetlTdAB#v} z9VvtIxk=Tg0?Tn=9%Dke7n?lNBu2_d6iS<X=d+RcB%=kl%6j^?&Z_v3<Bu>5u+PzR zRWUC%CfXk3Ya)^MS%?Za1yY_iZE|iYwsq%``(;gb%Yd&D;`Nh-d10qxp3283gJ;Vv zTUz#Bb%vh^$aNkS-QV=p=xx;6g&jEz5^N5GY#SX$8{~$0eC$I0?#fS#c($!RllhHp zO=qfUi)(Q_(e=#t7_5ll0c<QAwO10MPl!`C?NRh_{>RXD_Fn(olP+bcZygOyJ8fb~ zOo!6>v8+IG7>r4i7HKw|6XaZL<xdIU!Nx~gC5m$gQ+w!V$)aTacYkR7nul&5>Stzk z+z8`_n?!rtlFqBLvz@Q+PzuIp+pH+<qZo)2SOr9W$v1NX30ia5<}BW%2OJ{5D%Li& zh@!PU`&03d|6fxJ=@UNwcC6C;Uf>}@qTD=MuaD;zIj<ZmW~yR#uE7O)7s=!=IlS5u zQ>Yy4M($<O3GMF;UHvUnET^oV6(s1N^ewtqgHSvn9L5;R+uTI2O>Z5~I-vP#D{TFK zH{?rFe;#pPM}BZ0_)M|4T3Cm3)gpUj@yJUGuelGMa%;}xhoXjzD@Fr*t6z$xoePWn zIoEshu3&Pg=Jk<n&CtLjVxxGvlLKV;{uue;zPxGs(bWD%w=7T^5Tkefz>?zlU&$lg zGE5@woWyIpGb@?ue*?QO$~>86z7o7tz8DP@PObN`pBx@vs<|^VR57Yj=NMCW`&0t2 zgW>(Mtlti_H6tS_Qc%-!$<E)_(-CZ|Y9V$?m+o2O^s<$oWU(Zk>bZ;;`9pv8&hc_F zk-_SDO?x#{L^Jj7=`AiE-U+f@t@hlm%qP3E!p1~8dcR6%(<b>Laq*FiSwR6Tl%u^m z+uG|RVL#P9Gm|S*6uR$qd+Nk#7QTp!yrU7}`fV&{QN8oJ!IS0qbH=MGt!ZK;V!Hf- zB`Y;>JYz5GkIVd*So-<C2k!Ybf(5RFW3uEeF?Ev#uNbHtiUPl1egWJ6_Q-D~eG<R% zX5W<fFG&!~sTDvwlzVUXnss)FJ11voASN=JF3>~j`Njr&=uQ5KxU~5#cs;-n&}+=I zx)qebWR874v-D5qwnwt{zZK^34A*mTfgA-S?x8z*eR|7_zmRM&HZUhVvT=!Qxw*Kq zzWC6;{Z>#7>0j}BcDff8Jx9y6F6NTgRpxR@znmXR;!w);_Dt&JLpnUKWKf!yRL-A$ zJ#%(+at)-5$XM$c00EWZZDR|*aXz#N6J;7?7$Pfg$vb`cXwYN{zJldBY4)uVj!5KM z5fNNDm%_)Q%;=MJO-;^EV>f%`FGxJ`LDZ7Bs_RGt-qUHUevg4e0Vr~BdzowT`pT`Y zT~i{o@fD~h^82fph!i=$&9d5_gacjCM!lm%OmuUZc`CU5@vDR7<dO0~<X$`lsoSGr zq9))9j+7|Kj!;SI_;JVw1DvsMSSYdEN!>x-sf#jb8DpcN<x^jKD#;^^YNNlU)pge1 z_Si?}8o~eiwpup{_mCMnxx4|7ZL3)W`+f-}Sn3fmGycjmO0aKmg}suRG34j1tjXEW zvYc7YK)2AORb}arI}EP>*v}x!)+Q$v8~-OA+0vmoc;w8B=kfHoq7q#$W}3Vvi{}{~ zJnVUIHOwLRxMKRQ2cbXb4uHrT`F_nM^}<G!8>LOsYP4p6FLfGO#?36B?`X_f-|<)c zUI}7VgU#u_2yFKGEBMsXAV3n|=SepBke^*H<MJ->je<uZIPTI<zQ1W19=SK1q>KIJ zo&TsC5W&GeR~k!UZJ-2aJZ0SH{HApx%t~_UrWEv9t5iL%Fyl6LY3T0Oy1MYTaV7DL z5%fljy!Wpbd1&mAP+O6An_&Xf+)P)UhoR}=FdP4sOd_0d{iGM1<F+p?A|c$qgt&pu zWUadCl<|lEtpv$A^pJ)pj}T%ADfeD_O6AEtUPT{gp!LG!xcH~1HFu@+T3QZ>y5DR% z_X$5VlPtYSn{~9ONdYf9Vj7n?M(5If*ZB6KL$kg97Q39os+L+qMXfQ}Sf3-7pl*)Y zWNh0~1dU3nXP^sxsGr6e8AL^?tBiA|U_?0&0xw$-YRJCK|K|lmqkZ>EZmR=q;pY9$ zmN+=iMkx%v+4M5TWJd95qSliDFVbX-{-K452;(nIuGp!o(uS2oQ2LeyjydE!l~!4q ziqZmvr+S%IK2=Oey+(1h8I+kU6Qw)5&T}O1An_~~6qIs25GDKN(=|q>=Anvz`{t4S zg%IvY9$*dld;=S+SiT7Y5YzW?=LM4`6CSU%xMaeJMEg)N(N1SD{*v!;METN~z>Tid zLaFrgJU8Bs<I1E_@=NNYB2S4dIMoeL@b8LwP*Cw4BPP{%MF>|FdFr{IE|-4!_9mIn zahIPrr;uZbIDa#&cH5!7KYW53ec1*Hih(O$j$?`~bWvV?Jj|#$OyDpGmDfU&FUGzU zVdf5Ta~^&FEwh13Z}<H-#ia;gR)PvguX!y;Ga!Rp8FL{xy^r_BiNnymt<Uis<)gLB z9NSw`G6nyJjm;{)Q=pUo^2^V>zG!{OHvgjgab^Cr!Ho)3hxodc%xe3AX&#wv;h|re zu~(+(??o)Xt~#SMy&YCt@f$b#kOx;87LnvffgK}!C3#z-wBsa1(r0*|_2KZhU?@HU zqa#ge$7&R>3~*Gyc@K!c$-R(zRhtQcw+}>ZpIyi>qt;%`v@(Y2B#D3U=k*_rpV8BI zf&2#`r06zDqP=yvW_FWDQgu-`MirH52?xQGESR~p70=*d4q{E`>NhQRhtxpLKw4!q zal1dT@)CT6mI9#XRwGcQ4(zJ?L9<j)`I84lpTGKuU95FuDxaKm^#^eD@@@a{kt&WM z%+e&3Rzjs8<yy>rwb(F%p~;r6wAy|(+>a$oCxDBy%?R!}JRBsL;jiu%amTQ&8QXqC zFWm$MINskWxk~6OcF$a^8Q>^-TI|!kM&l`!V2@6o&(Jls>i;-$&!hca_U!d;-@2$% zxtu+OVt>Ou@CrzU1H|!<_JzJ@hN}sGeH?$#uzzt&a(OcC>qW<!r3fA)#CA`zSGKfj zH&BNj-`4uYe5)x<_?P@AF(W9y8Z7wRmp-};9dxWrYBu?|Uy4tl2dn7hYhHBC#2EL6 zp8ZGr8nN{Vj8(dv$;|R=00r&DMQ2{pd1n4m-kp5qX+yPMtlV3S9TR|V=eXZBgx)CS z8W?z?b(VsDYMsh>I%P7DB_3SfsHv~_P)`=b0v!O_?^-)MQCrVY-wKDu5~KSl>|}>p z#VyPGm^>MZ8Txm*aj%xpZ)#Jqn)?F>hFMR8CF_g;<<0B<SK~h1;crzE(%L4LY;dn& zX#T)d{SU=sX98Yh?=W|C)vb>7i-%>x5nONof?GZn2QL=NdeGw2mii>LGVZ{|*f_;c z=`SDv+}cJoGutH}NchWhc{mYDU%TU-7Yb$njLwOUOn-`ElPLPJ+d_Y;gNp@LLUTS# zY=Zrh_Q>pl#=2=`z5fci=auJi<B4Xyl0EIJIgZZ}&<g`|lwZ<la!`892wM3LyNz-* z_TV9AA*yZhmj6x4jaaW`?Nulh_olO@iZ<G(tw@DBL!p(55~WREbu%(rh@zp4?h9lU zt%U><AbAG2s@aeFjm1On^aiGgrU?0jw!}{+lA%&M-k%RcF>q(~1Jatw(Z?|f_AxD# z4b>x^*#t~e3n%cnmYSBjSa?0i3S^n9+f)?2@uD!9@8N1<d(#g^c+`ravV)C}ov1(I zAO#P+#YCUUfq%LFeRjnX&)A8;9ZwY2kOIQ0QGKTB=UApO->@GtKw;h*-peRBxxj+E zK_{aeX6_iQtYfZInDvrh_eF<ckx`FWbh`z$EZni6HXH%OF}}wstC#*ZpMyu4FO!ef z(@c-O-{;8Ox=#5(i`X9?>gyUy7TuFZ$jBtee^lS9$}WvFhkfd$WuYw%X429yv=wyt zQ(N}-L2va;QNT~X8q^c^;ae51J$taR#->++%ne2mBYh<D;`fhi)T{9qNx}`j<HMo# z=;Vn&j>*!$*!WMmms^TU)J}QFTVJ2*6jj{j0-HlyfNn@5#g`=+UIe5lQSVUnB|RQs zEHbCojeYz+a|8@}`H%&7dE*9%3@OE3?@IJDjKHDWKIa1dqpgX*;+*f5&pEhD`A=)P zX62*OvRU1=(k2V~dwCwE8v2@3baH5j0$h{fv3kjkOTcxFaM_O*PqPvDxQXB2Ft9Wm z!t|6`A%7Wj5o*>NR4Ps;QU7`Ij2>?YeP5!b#H4J&BL|uQxmWnRvlS20fb7K&=h-p* zq3$LFx*EZ$h|zV~RK)(*cqf}JQ4ruXdQi?XDD>O%laSu-ZrE(VW$6xKw$Zep1#!!V zfYFmJb(tCUp{tu0o^5BQ+3L&d3g?A6^pG}nO9sm%lcjOt+BB?y<nX~6HH#&WbaK)2 zp78H4al}in#)&jG#mSHk96eRwQ=q$}t`p6DNN0NCQA2%Qd&r7zGct7GC1UygTg3%3 zpQSrv?Wn=aTv`sEf993+iv}8@tV9LgOTlcsj|=2G`iTpO3p);&1GN<V2s`-B8`K_d zdWkBhi@8w&4uaNuy)elbEYw_E=ByAn$YLYaELWH-S;awCd^wk<nxETb7<Vc!fwB>6 zt>WOfyU7b{_l#vxL7o0_ECsZ<YGg{V15rD>c~4H{i<Kz~-mSNp;@*r*xE+tFwr{7& zmUW!8-#Tsk`9ySqak*`x_j$tQx0dC_iF=)n8~<iyF?#GjKE#tz^cs8;GTRp(OMyz% zmJB6Nv$j0I{y!H0+^+Y>FM8yUzZJy<nq!Ijp6Fn*MAo@3(NQTswBE=YekW|&Vj`?L zE`Y^u5Nevj?-8;wy|(%$dF0Hp!eY_y>tfin3?>B3D8m7K;{j;gqgBoFj;awW^PTBL zl(UeBcKG73AJmK&QB0W?8ZUZ!y*gs9>Ej>n+9`=i$~m240+yed!n|Ok(dN7)HS;hh z&OHzr-nt92DqBMiRXA8rPwJ{0fob)uDvsS??Ho&og0-X{5u;6G(g$Je+-H`%wRJuz z!aS03?ogvlH`NrW)Jyql8Y^N{t}eqK5GS7plH0GSDhN>vGU`q)*<z%Zw;Ir&;w8c+ zc3w)%$BLv~`-$O=#;D^rVMH^VZgh1CX-$783Ve1CqvBRImSP<O8u?mNvQeLi4jlL< zKl#r2g+7daSszR|rQ7$t#`BvPtFeBEU(?(3<9ola3^3WHRqqFxji6Y7>b_t0RX0L! zI9IeDnx_dXKdw<d*_Y2Wdw0=}F^x8M8najm?#mP)lW6>O(w2)jnKru>B*2zyP3<TH z-9BojX{aJ@pLDF@YwgH2)zPLO-E0hTf4JLb5l#T_?QdqleyJeyY91uSG+CZMr4*!> z$dnoh35sgcwQ}s?OoB${_)5#>znCL0h|_muUn0(24OB0@kSP7s_S+O!v?IeV%7d;U zKjj$I<Yvrol)vC`rL$ro4|>FQEyT7WR`cE23fO!hogU(nI)RnEi}0`j-H0Hnh9-*C z?Q-_vzm+dnlzz}}i#Adj+X!yey~GvC9OpRQPIZF}>A)HnJ_lx#Xs+W0V?ahJW5xhI z-o^@-u1;>xj{j73{$iw6CIJE2HiC$owdk6eD`@{5aSC6$UC5iJ+XQX+uyO*<x^oG| z-^Qs?e#dN7t&-OGMQ9XrEvu9=S*TqxvK0-koyF$;3V#cL1;N{=|9<}+wc5_jGa+c^ z?X4yc=+n>aS8L+od+6>^yz}~TPDnyq@!wgr=^zn#$&ztJ*Yws%u(TiLMUqjj$UpHz zM1XOzveD>3csUri7U|&hrf<?w_BXktm=}xW)b+neq?!_wTkUjp)TeWcXYpu`2gD}M z>3>jAd_QXXEhk!}DY@-^EF(osWNT~7CY?q?9>5;47`4UP-}6u<?0HT2ZD3>EfM(QO zcJ{-J=5D#r3-=5QHO4#mjO35&jfLCTVNT$t258=T>R()wXC4437n6&-&AYApxX}0H zR|hrXj2)!7*O=K*_h(%fYzv8$g6wQWn!LiViDsHR$(G;?t#*7qOV``uOsCTOUe?bD zdtPWf(3u{j>2UL#|4cla=!l_YmVN)y^E}>XqN<`w?!SN}!_A(Tj1PF0d(Q~?E4r(l z_&f&EHKPRr+Tyv2!VH<SV@RCqTDm*5Z6d5HlZ=V5B{DnUR2@*WUSwOyk4zuMJ-N=c z&TqX_m^_hiz;*mKQsOhIfRrnh#|w2w+dP9}s~0NVpJCpz30x?~$8Dn@r`VkXwl1EO z;pkG6yr@c=nbcOH+q6gh>Y_fc<RriV-z3gw2E9bA_i<+vyrdscUY7}<*3i8$*A^D6 zg)ONSYE3~};)k}si{DPS?0&~j+(rseQFU;llzR=45-_$E)7Bj`j}7wrgwgWDADxM3 zWIm?8<L4vK4*@=TIpu5NGuSIGBWg`2{Fg!tzldkwRNnUqCm*jL^XtBm7hPI5d$AL| z!6&?S8C4rCLsl~NU~oBj-T+&aL66eqmq<V?aPa7=uh^%}Y;L^Y@f&q`?4zj;V_P7> z31bd;oM`j(Ewg&F1}s@ACqJ@2up~E6)HTHprwqymo)|w16np9r5!|bDEmh7B-TtW) zrt*8hv-d-$rVL|Pah$&PoC{q;G|R0TT2X?T$v?!51}7gQjX?t?xaa1#KV_0VA65## z0}MF0?xIpduN<x()xX3^X&5^l$cv-LDZjtXZmLUJoL?8A8&!pse~8op#}~HMG>?WZ z0z5k=D>K5f50TEHtcgZL7HXD#RPu+NC3?{9jkk?slnz#@x~AhrtGJmFI$xpRxxZr7 zHa-Z_3ydgYi{4wWb89+|xpM0D{E~)lmrOs9{Ha^SOS~gC__4;~B1sQkJ7ak69wJao zBMvD7mhdQp?9M^h4SSJ$hN<H;`NxCtU4v^B6CUX~;P|#>cj+A_o^3%0$KuJIM+QTG zvMhBVni;=+F>)p!nBbLiQrfRkFsY{Z)pnw+@ItEijaUG{2A|UVV}KZ$CT>Uwr_+E_ zml%JJGqCd;ZEUI3-Tv}hv&`;oOUI|e<L0IqLDOK0Tw2P&qGUty5l2;Ew&D7F%rL56 z<5xgvV9%xYlS*0$P~fr9LTR6M`7HGr)E6bE9zA^~{JR20y}YnvB>v}2U+IICp_u9n zig8*^5mTP~zCurNBYk%LGThG5K781pnyE)->AuCs9cMXfU+Av%$g1u0;-noXhZy0E z_qISm4IsU%7_MGMQNQXw%)<V;;{KP)$t15<D`IoVB^%m1xE`edgnmpu$TTAU;o9yX zYeXn|ERp4@Zt#lHh<0)FSi&0{>eiHQwO0GkmJH(}Ucw2aRN=Ohlk$at_M-$T^!vW| zfeVwE=rD>uR~^T$v$KE9cfn-@hDu#InEJ3?P#RbfhOSs!q(GJzLyy^3JvO`r^7Eu6 zYlChS_=$_9J`B0nRj0r=m1c6zc_fKu8+jYf6`SOQ9XM${K|D_^i`g?XySyH_rWfiT z>z_$V8eLF(pD2biA1$76?7lkiz`6HHZtz2{W!bdjBmF4_YghPz35=^Jm)FeoR!UF4 zajPFw)Cp>8J3ml!>UP>!wgZC2XPb3i+Z3`$)TL|h;<Oe#TX&+a4%1bagIH>jH=R@| zX$uSIz{77U0e?v=uq7?!s&W@tl%=5<@b=V=W#&=S^)mdDTxU!=a^=MKV1B!pr_jyU zw$eNVh6Z@W_i(XG@YO4uyGRfJIjA`kr5s^frfySNYPh%Ze?v!)j%ZmO)VJ$@u_Z_$ z6m{mh^qTG=sr`K~<_@unE&iB-KH<4`I!e~)NNj9mSmc@mYtR3Nfd2cb&xhm@AzUkF zu`la=#itv{&S>a6Om*0B+9Y7dUa8HT01QOs)DTX&2m*sSwc|079(n<QKd!O5qXgQU z5^skS#ptXL)Ac_PU_`RvWpH!<^}z?6PQn0Eh|0_x^|+T#d3g~GZ8w=fBFcYTO*cCI z!tgkp3xT3fQ2%Jh`h8ZK7Urr73noC4OX9Antex|6H|a5~&>P|wVK!~2)d)rhBd)&? zmol70+|Gf*{0m@-My7=qGS}#hRAf5Ny;xRW`wssOyh+$uuwbbAIs&JNsSf1=SrJT( z=6z4Q3SEWf#YLtmbuIY@eGT*V`SFE>Z=Yamyl2&#L^3Vqk?ZhtLf5g^z*Z18@3;!4 z6zJ3Y^s6#ylSd*>F)SF)tZSxKcdIaN{^Z<7NLh``ixHS_q6Y?Wq{GbmvV<s3{`j*J z(4_6&Tt`l|uMg^y)c^|4G1~mIYMAhgQ>JWlhHPzyhwc*(i}}FjdJ2p(oqB(Kb_gbX zPU(mQnBQ+0b(U3`q$|Ie`6D{hh4c}uX!<B6+2-&=dEaj2yv;+M9q4BQ#Z+OkrAi#M z_0}n!2jw^5mbmful*$Mpj&l{7+KFNH`7wunm^t2ItGbl);bQ!g_cb8)y-#JJcC_vt zP^pG__}|+pF$>$#fW`f#^ouERxg>Fms@5zXwM9xz@yi%fYb;IsuE<{vrH$k(N6x9X zY`8{Cz^jm!VNl+ONcK>wP`%L6u%yuNfEIF1wxUr0-G+I*(qm<-oi*K<N`8rrlz^kh z;=}iZxf`y-r96)`nktWSc8DPtN?kPoVM|A4a>~5#>dFDvoJ(%tL}#qq@p|Atzvr;z zkAW+yCv}N%*w=BQ&`$izZ)3NK#o@l|+%Pm_7$f@v<5EP_1*ivVpEhaZIq*0(@F*$* z>K-2{_k@Dg6zGXa{qx<p^=$~mGFHT#!=T&a@;wP=Q2L%euDY+9*ZsiTTPq^iQK_sH z_dM>{<*N-lCQ3bS8M&WJC;K~jr@UB3g{YTNNQ&s=jJsUsZ5pF2Da4zrlZT!YADY=0 zOmRF*#(PY-PfN-D6dZD2)3xIYw2ChD66Nk8{ghe+&^3)I?k@QjIp3m&+-p=EA7~R@ zSLTt(vC)8uf1h!E?DX!t$5TvEUV)=qNz!AabJ*qE?Bz+7@{gCC8_ka*uIZ$FZOaki zMI)K=F3fj*K2>atmf=AWzU4Pt>demD_vb~xmAo1FDfAafJ@0ZY_|ygH{{q2C)Ems! z)E<|}V=~+59vtTa>p=KGvcEUPQ)gUn`}_MBX@Obp|L>+ad2uEe1J|e-tpiO4N~(_g z0K*1uUvbY@z$zd)e3^HOSucgI^mGqgitShf#(U!ZRhKa=g_=~8Re#2mOIG!yRXIzQ zSvaz^qEK5hdxChT{<vSJrqKAz5qJ`>zCb75C$@D3eg5-0AcSw<WF}e5V>Tc^wiquF z7yVtKZJu8s>>pQj(66N|9(w91mmI95`H*;KRo_FxtQSnLcGOt##x|Xt$v*eE!poN4 z+q)`W@?Fco(dK`vgxP~DhoVM@gFmNjNRMsKxg|hHNkov+`L4vTd#N)#Y&2rt!*frW z8MFO9=a>^cf%3&hDtLMXlYgU?TtkWB<@ZTXi<cspM89N7-bQ*V{hcbgF9fyp+(=+_ z;M|?7Fuj${L|Lr!>+0J`g7>8*v3ZK_%m(^_fupyfXA!f`e74HmVg<?0u3lf`BeZEb z*Q#Q9hX$KX$$vX0h3xMzQJC!$)8cJ%{;N*ISxs%xaiER^h!Ox%0buMH0q2jU3MxHB z1b-iwgW>O`A~V!gNxjoc0lKD>_-5el0IZsQjg4Ciq@Z}N)zl3~N<n#4Cenr@!n-^z zOuw9WOt5p$&U0SQXYwjoBO?B#5FQtqzOw!tovPRKWi-LaFLx1^SSM}hxPYp&Qp&d8 zQ+M@&11gG!v$y`b?aiC1J3d0!aG+}h(cVC*-VZ}hf+-&Ay!V#{w0lKy;!C%0<#^x6 zuiX=#wFR;i80~YFd}f>`F4@pRpE`>Wo|ql?Y4r0LSj~rltrEUba}^e$^tO1Xsi)i< zr5woS{`*i~CxV+f)a^kfQ^`x8RS{ggt3CRnAv~L;eEgV@<-g}SlDAfd?lylq3>N)< ztpkjA0w|>*`Y;VM8fp&(XpE`>&xk2@-_<-;b_1f}$#wK3Bj<L@8${~8aXUeOqh*E| z5N!ax>i7)A+@$aOrK}J9!C05nZ^lq7Bag?#;39uz{qF!#1h^3%_}}EJAk_;48%Z5( z;?sk_+Q0igcEGj(+TSSWT*%uD%i>+0V-a^zhgoFmp5F(0j<=VOp6x5fI4u5q!nwOw z(?bfJ+jS7R3ZN$Et+Z@y)Fiaj5Y~C^*W;SruURrpvoF-f08egltZnM~NzK%GANS&w z2gmr@Ow{>PVsJYvrLYX|i2IzTu;g1RfJ}K@9f_`!xF=B<cEbE{SDKdQ^&N)p<cTlI z*CBw$guS1^cJO6&(W9h<r`#Mhq25aRC75Rftnx1TQ_G*(-UNW}yzywIZQZa{kY{bU z^_b+=Et*0S-KSi4)t}zsy{pRp@L_CnU-HrA_lbwLng}7`RllKKzoC<>fE*)|mn#FZ zfxFmw=iS!hexy`}4mbiL4vGFca2td8b)QN<-=YK!&@EJUi|8eO4mcf+v?}h^2>QR~ z&&_<Qv@iL49TTrm(c3ZW7<Fx8o4SB}!nL~yvNjrL?kipmlavgQV+E5x52W;Weo_OH zdzbUh4`f!H{H*E~;`Y?-DYkHaELhVJme#tvtqH6BlDtDG``$`FKzh1xf1`wQs-4M7 z6$&dhTokmvH_g<uIcf$uCWx!-i0C&w70d=p2AKI7<rmyfy!K~C!nk%{$yrkbKYF)! z>&#el4s;5cHb-%cV87#q;LnUK#aLp%+TfagL%UkyUQVA5q&1hYvp!|Cos&c^`J?E% ziLj#dk6Yd9u0R{e27aSxt(J-<pZYb>eSC5U_M2~9gcZpKM1k=1bH=t64<QrGHm-;N zMpe?^%pDZ}GtPvvuTm0IE$PqC9!52&**FvZ&!;3X<Ao9H7tJ%8XF?u~XVc!0wxrF# znQ^}TROw#M-??}VP((@OGoe~RRFmADZA>`#!WKFi0Z1UUsn$835J6{;PNE&|a*Wp` z2chG^Q$!Md17f@Z|GFQoKfgR)f^Q@8Vu)WVJ;FjW2{B%h{?f4k)Tp?4>+6ykk4K31 zeE$R71wzc2HG1iHxFE|=v@#AGRxmah1@d5>UUDRsphL$~_GxC*O*8gxwB<(N`=6tQ zyhf=pJ^*>qnLap+#=80%MM*e=o*`SV$kr0T9LNWE4!pnL5{V@bV#VIh<f8ih>?_+d zK|<q%q?0N^)KmLv25zhpN}Dl7j|cTvmj4*kR)YDo<naVfp;MH`)ft)xx^T8{R{b(u z-GLDd5c^<<xa;xsz158&x0hN`8H;#rQF2AMU%mbJ-al`w?qc~F;A*v6od<d=gMFt% z$4~1hg=YyRXxkmQbXLIeMakZjC8~mO<u;mba-udH#Nac2V_`;;piqW^2&UqWTqt5` ziMJMH)!`@lVQFw#GDyb^+)m&-(ZlXjL3XMF{O>4cg&UEm3CL&X{+Zk%aMOXoep@oP zcZhqWO4k~(qk8n(9|Ir%_#VnJb9pOR6pV#v3s!$&qyC!VN)FhMBy`rFFtIdHB|=nT zt+!fKQNGS1pqsGOIlf228i+c256ZUwFNS)V1KoP>mVZtlch-5wsyOU96Z0+vngWPD z+A_AkGS}<&%<Snqn9T8tLgdQ1*p`{yDZ2Pihc?cRkTE`JDX%f~>GId*d5q*;xo2~` zw@Xz;8CAJFC{PNB`52Hkw9WFZh!ADVG=0PUQ}O+@xP0mcezb^+s8!+fYx1&Re=g{W zF2@GuEoyK&q~|BGLNZZ8Tj{-f2UntSi9fkX^<yBW_x$<sy49&nCM1`z_(6&D(yY+d z=(;_nLd{{J&TvN)*ZWRHaU#_@`ZH{=js)Q;ZiZg(h+m+NowD9o8C$qrvFrk2^7r7$ zecJ7LIxj{r#JSpxTlgG*73PI!*Yzir<t4Z-+2GTa2!W<9ZOOQjU6M}~J%+UnxG<q~ zHv+6_FCA>kvj~=4UmtA(?`k_%!@*?;u1^5MG?C2{M_d7tbwu!<Hx!Z&a?IXo!xClZ zA9Lu|37$CM4lsDqyxEg{`M}!RMOwpEPy8cY0~neE396H+bf=_<yPO#yANm(=2Zdi@ z+`~>*kNhLBzplPIwW$6(Uz5ZPN^YfL$+Ic8GFEf85fgR@RsufgP?wIzcyz>G@=Jd+ zRXLW^#Ee*jJ84XZ--$FiX5qiDL|NJ|RyBoZRr4~(Oc*WVh{vl;Nu3Ge1}>1wg|`+C z#}hFqyZST0kyHuZjt-E*-<NGHkZ)f4=^mOPi3*7Y{493|w@8H<Ew{rGGDN%4MeR`3 z+uirQUR<YMGBHXdn<Lq6m2;sQp;!B2lCj>Fvmn}qvngx@D`h1k3@yILe97Z=s(Isw zg9y*6hmrLun3+TtC7UKM)=M%-+-{f{h$~C+r3&^@j46%CnC2`=tfHaXd$(BTLXxc> z%-bDp_fi9A_n>sF{k{7me}!ijN8j~ewMIMteZ}v0PZj59g#^g4iAbJY9rsSvS>3+d z9T-&wd=8S8wbP4cbvk%yQx{ITp2HOy=yg8t3##}TZ$Z)5!L}BvDtfGi6NBfQ4TojP zB@G7}6M<B4TpRPwi16_N^sgOIE@xixeGSvl*1eyT8iOur5+){el=`eL2-^V{FWe2N zNG0S-$Rm>myJW=~hHBcitZJ=Z5x_|ZGv?o;UDvyjy)OZs66|z8kn+&@EBbicXh%zv z`E*Y5>a&LHBmVF-ZQ<to5)4-F2C6x&`ElwvWgI`^_^trpkT)KC*p=_xlYW;ee)Tcm z8$(<ghGg73@dvlXM12Sg>qE?A+!LI|>CRq6sX&7}kuQWC(ssXn@<0YHi8waHwR@WS z&40iudL(985W&m)lJtwq2gIu7l;y-854%%iVW<9=g+rnUUv>cwbaFHN;B|bDaZraB zX`2_ah^~J(3fnU_o?8-IMQ#M?0WrRss?#RSEo$4XWym^^eZIfh|3_Ikun;s1sxSTO zwHM^xr6ZoE$Mb56qY_v+eNW)SrxYanC}P}MJ9&p+pteZ0bZCUG`a%Dg|08QgYu3w; zqpf>$S<hx1y`=G>5L&jMDY{O=)w5w-dw<vbMQ%}e>^dWipdr9PWgMn3Z;b;5am^_F zQQ7Rm$z9lLqV}7r0mJa^Q_>qdgm_Uh=d!=sCvJmkfDs$X52Egnz%e3!UnvMT6A!<- za!Ae630O<2?+RaE+zUNd#vo3Wb6+0@k$5v&KRDCy=NLb^k4pQoDwG{f*2BM*o1>d) ztn-dB+9nSg*Gc<RDL^kIu1kmO6+M?Dlur$|ewIK%hVgxMoyna1@1q&v42L*CCmGxt z#t_3M+&+@w<xg2K_Mz_($4sae{6n0H;p*QSAI${4w1^)o7(V3lD+^2=Ml~v<+8yj6 ziRw~UirV%MTHTG4WR=?j0gB~PG{k&A_!(Swci&h&L2+KDFOXxn@OsKwi)Yb{23ivv z9PqSjddZMH=|zP)+kq_w90NS3$1`7eGf=syuvFEVo-ui2Zq`OK|ACTg+&kLLX-8z+ zF&pnxERpP6ez759MCNokas%@L*%UiMH#Jeud-R+0J;>}|$Kh+t4u<CRc2O!_9>r$o zfs=Jjb&)>%tJvddN5svYAgRvR&!eQSgoQ8E)g7J6)0}G#Vr{mLr`L3VAVnN^jb6kJ zoSJFHH6|=6QsKjdLIzVDRGP<dAcPZB)|@0!?=$B$#-Gm34u{)<#Yp;e;(-po9X|`l z+Ef3Cf6cDSKbJ~wQ_S2K)v@F95ceqHQ=l&XaNXEBa7~$%-%?b;KzD@~JEa`q3M(Dh znqP}B!iDAe=DQBca{C&PMankNV|nEsoo`%)b{4d|O&B}1ZfKWgT#3G+@~@QUMdID= zT#n6{<7jZc!dWpzFPvh}N5N&LlMrnJicAw`0p9VVvE>u=?roMQPqrK8Xy_Q0Md_ww zQM`l<DV_DcbMd<_H$h<R1<pY_YmxD})aP<|*lJz~QMxUn^7jE}%)=KqW_bO3W;p3l z@ekL2nl<GkrHT7bv_<|gTHbd^tM!NIZ0>&`ZC8Qjmh7q^d~MVn5#=<9r7;u*-YY0f zfsv+A{D=#@3mW3OpsHua?7}+TR*x>HGx5)`lVLw$Xy4$4n*|IVf7+<0wW%c0JvM(Y zN&L&p$EX+K189X1$9t__EgOAIxGezoGH^`Hd@bj}jQ9B!a;8bcu!kA8+}r5#TakOW zTV)9v5UQ>dy>9=6d~Q$h?KSDVcqdeDL|kvrLY|A-j%_X!5U~$qwUr~M_@>jTQ!?14 zQ>rCi?IW|Axp>1*I3nH^{x<gX^Lh8)$!uvrFGEtxfeob5L?Pt;2%DbQ*v-{~0YU63 zTY2wH8Hf)fuK!AgQvzb_h>+8S$>?dkqiam@>(IMqrX4m*oDcA;>6zofw{n6e^#z!B zj*%rLTw$AoTQ99kY<S#{9)^dyBLrA2q9EJ4(ZKmJxTT4Ef6G@Dd?5?h0&-B2#LSJn z!GWQlex9*BxcJ|pMM2XFd5E8zLnOk@_f8-GY#a#Gg6=W<HLV#|?bsKAXcx~A)S)G1 zh|7=qi9WT%J)x!eW|gXAM{7Od3q$qwKbh%|GGhtjh-Hgciw_G}n8BCgZ3QyU{d;p; z(cGu(I}trU$U8>$wV|9D)4Z6s$s;jRl@OK1^)LO6g7s9$FHDlBJ|<~P<5w6R1JZX# zcRh0X<f)7M)K*F{H(wtWQm{Z#5xb<ci9RRQ<rsH7*&X$EBNMWvlLbVd%7ytG;+Z0& zHM1S!%lQFv;p!E()Qk)cVMZH-RrhZGDIZCd26kiQfv`0BX^6ht3vY;r**pHT`H1l% z#JybQl~GJ1rX1m$n9({pkjcLMN(Run-iw~<Z-v!E8%oWgw-e#y)-z$)1<5wFF%1~2 zK${;mRwcKXrWAF!GVLZPm{~G%cl~?o01+w_OZ6Z{^v6J*zM!i3wihIqyu2KOt)SFV z2%z?OlM&0UE}3DXxMh7K!BTcfjn_6T(x)=PHjUXK%y7lyLp?eZhHQg)7u+Na?N5Da zBHpok$8>gB95O|D%H|=A7x0M6*mgk_L^sh*Mqk?*;h3t_nj4~oezH<Kq``p(A}u~D z>a&0$q#eZahwv+#sOv-2>v1^syF(#~?{pH98wru#SW8Y^^JHqN2)B~}3S6q{ha!g? z74LxPSgtyj5x)5u%VNgN(o^-FemG0;CFO9z+|$>))=3-VMK3V+`2O{F)n#34KS)Ri zbSC9c>~dsxM+6ccIv1LU1E0u2tc0siGNva)4T%}T6!%6^fp&+kxdfJvduVm@E%xD! z0++p8)0lfHsyjZQdI;^8WI*s%$*C!1hhT@0uhZz}S-_$KE{&Tg@yJsawHvEHBw*bV zr4T@OXRzB#$;gu_82|)vN0Nz89~up~u;NrO%YXcsV-~bW>YGG<55)c0eR5_M#O22! zLvmS0vhLwWAhx@FBTOf83%eam=8=(+<BafQ|1|>w-G8B`q@b^oHC^{io8J~;8>$x; z-OJajeQ5MbjiRvsIma$ET}-%{u6=32VSL&=kX}LtU6?G$cJxP%U%cAtU!&s5Q|V;8 ztIeSjWL-PsX@a^^p;<rPqD&eG=INV%ZheP3yeuMX&-*d90)H|`&>nN-A)E!uCWMn2 zbLdcKnfwS}V-M{N8~z7l7VGAxN&V#r${Z-W-9FpNZNd6Wzlb4}4DYR|0&NBrl;RC( z7CPoksISi=K<+($Whdj0t*zk07dALD>(q?7xFU}LreP&(|5iQz^HlJu+IuSep-H&# zWojkJFS!(czb2VYv)3qny7;tY{=$H*u?8f;hdzvndRka<zDkeqB|(+x_H3cWeeCNp zuI^8XaW0#Fr8EgN6SU6E2<AVZt}ku1b9?YDF-l>gAh<%L`T&1OmSTC!Ip%E7K8zg? zn(;>*i=Y^SOlTA)R855GDBkZ-V=sa+s_=%2>tZQc(iUPQ2^MrhDlj|nWuaq2>{94_ z=(JV_J!ZHq&I}$`cu~|1X6?`;ceVI=K1O~?ftRPI;eM|YqDzi`_KosI?ggl5G3?|b z>^8#J>e8Ph_e(`>X2*%K1Kk_``$4o;4)o8%0`Oe8TF+oXpq70co_>b#eS$X%BF<jw z(Zyw9WPl^DX)AA6xSDnG4D8dGa`<KEuRFpXd_zlDaF24mu2oZ{dUUVZqt57qom)#r ztU8SM`3qGF%UIt=UYS*cp{ML9lEu!w0P+UrbO*%fUf?j|zh2sMw93r;m#0s$-IxkY z?jA#VyqtLE!of6>_r_I_MJb2{Nri2d#ttABi@v0GRrcc_9I(OPbuT3A1~y_H2=sau z?qr%R&@SzK$op9C8&kzR?1OryUR+Cp4RNXYUPZx<e;19g*28^8njF3yhQx!1GpEfj zSt`UspS^C^MJ)VS8pJ2r5ie#r*Oyvn41?V?VZ8kIw)bIC8JIm}#V?uPPW~)UI`|>y z8tTQ0KOgGWqX1)^^VF!P0qZBHl#{HZ?Y32HqWoxYy+XnU0;~-8H2u5X61{wj0H-tr z!mlfP&E76+-a6QYwX*V`BR>K(I_N?vKt}OpsLM~HQZi2)neQ&aqQpwQ*qnIkw)pz- zdwr$O#oD@OGX_ZO;M;9s6=do0#M!jz(@|e(s~6kTHu}m=y>tZWJN@+C@3+Urp4T{z zmGk!MnD^joxaHJggQch9CwJsdFtl~t6Yu^-Gn+voy0E+-hW%JdY3)|J4m^n3j1L%o zr|M?TN9Vaa1YH*_dSMBsU>hA`WwJk?tGS*c=GB%jKW{ujtA?j*3kTkB_g=9H8rLYX zmqbl>^Lw8atInMamwy-b7Y_1!%h&qxs9c&EaqN64(sd#tM!o(A8%DKv=bcKigpjc8 z8*t^<$96KguUrwnw^<%beYkwWl=fyZ&@ZFi2gHNVUzj273b%kh&piqd08yZhlOa{q z6m4l`=8MB~j&T7gCsLx!5@P5>mz1^;D*QZCa_2YXc0>1SEBATa@o9C&be6@n7MB28 z1N+g&P2!7&jKhZj0SQ#QLQ2TQG{(KZF^gFXQ5YIdCtM8-tU_oPR0?XUTlWpY;vjoi zFCW_<xpo?uU3Y<=%1Colb=Lsj4?ol3r;B=tZnOQ|!p%g(j)9zQJkPIO&tlP4%_Qhk zSFd*&IrKiOdXmAZDZaB5<6NArA_A5ijAK*7;>4#Uxr=S4M7VXY{jVIBGBUK-@7;Nf zo^WN8+u2#V0WE*6jHQPPBZ0;=Yz`E38>!Es`#O5B;JOFkvg*H%R86}+`#@Kyt?#JH zzd7WLDL(z#l*3I4Jd6fouIx%Fa>xSKu7K%Ad^xK+{Nl<-s10_TsMahLu<X#gk2M*L zmf!okm36=63F9Pk*`FPwh5QmzHHuM)f+w6w1ID-C)C+7<A@*P{VDAC<h8=J4!O~jR zuI~T-P7^+SL(NT=$TF*8uf84tpF<KcbrbJVrlqQFq1w7`40IccJZT&cO6xv?Lq6 zc0BGElqY|{_+133dFvcLRR1GG6a;QJu}FK3aHhoPVW!n-+1X@}Y((WG*Q%9;$p|pE zThFGZSV<{B1T3fK&AXY$Z#1DJ%7;jrL8i(;gXk$%($$q7rCG-N1}Kuh*#Z%N*7r!k zbK`?AJ=ZjWy89Vxmv^`PiZF&1f5)=$as}5@Jj8$UjFL?^DYzP)`~`rO@}x$dem(qh zJpdgdLJ_SUCaVr#ZR=k?`tuI+G(~-SD{^&!dR=2S`~9j@J2fxUi87be?FZA7-~0Z^ zy7wz4%nfue(nfIq&Ml|M_yIg>y9`d%FyG>ouz^j%j?;$%MjX0g+ZZT@5{54Isv6;8 z`?;P~1nT*h#^tOsY1%!`o#r!<gT|cTTekWCdr=o*uP}E|5m={0>6Z<>Dcj_HlFuHL zN6bg)&DLP=6}q{X)6HhG2HF9|0dol%1*hGzn7hI7i~wp0QM9+u1oppwM~4lN1QGw; z!?1HFqRa@*2>=C)!-ObBrSmCqoetWkA%rz0O7m5B8_13GKO5W6eNP^#+^eChFa6&G z0BCJ=sBNgT%@eL*aU!}Rn*>x{|Jf;IiegVcd%sdDwEbU}@Q{4;y^pae7(&dRpj=-P zH1y?pq|gBgY8Ypba*80S(I_XgGu<=57la=C{$AZCU@eB1#2qG&^aHY@>-JcHnV78& zu`Fowd(DVv@(^iDFZMQ<X@;KO^WgiY`SamOLC+rHko%&vk|@hg^R@wj?)%rjAvh+S zvCzOBb9v^|;##WDE^bfPi8vUm@%^1Q!sz6lq>mxQEI&sz*K3^pS1pq8NzW#YHnO;X z^VLcutZTxwh})n+OmecNEy&Hu+pQn0zWCh2PbQDpP)A257rR>$nUe-VC?MmrJHDL< zu~v7OKI%46ZcmwFn`~idqrLopuQ7KViYiofTmdWe)p=P=%Bi*~;om@aabdk7bC^oA zdD!lZEJW^);jnEe`K1z;5Tk(M07O<`9E5b}zlNZCPy{4xS)%PV6mJQbhF4-VYv_yG zQ-8K>E@FaHG^q;Zo5v2V0TBq^w&ts+^3v6l<y1QL2U>800li;6d~EcG{W&mnVA#oG zu^nQ(FWwEKbm=)Y3^b-+xUT74t*gQ;=&2I#;BE8Ss&>RiS*`}ZV`%Xj^gi5$e!d2j zsu_8<ItxWJLj+$YUJ4FCDt?GtW@qbWR`?g$ExpFIhv}@yv{43k?gM0A<mJX)9P!@Y zTy%WZq$LOy(^F?ze#n-~=a(2j_Zx1H-~xxlDGU~cc5r9Z!=ZqVdzNly$->=4lEZ%Y z^l5tJ{Ptp4JfybC)<X(!hTBLUxpRKluN#8MnuhI}%ZYJrhU*KlZMq1TW3U5T4}(tD z?D2#;gM`iX5aSY?1k#zMd%_oz031uvrxHfyeA$CyKBa0iJLyRN=)0+&YP-u5R;sJ6 zL;Wp80IqxxlVNeIg>i~mf^Le@B6B9kFzDefo3%}?cAtX>$B|I_I>C-ub<bY^C+(QH zl8hO$9q%G49V#zDz)IdmU9AWItnlNNCnG+7Ee)W25pNl?2Uq=bWT*h4pqd7(S!!2} z!vncQDB9s83J`Sju+eg`iSMVQxL2rL`m`KAS*WO+pv`2PD0=U;G@dSZ#ug%=xBlc& z!Lb8INjOk!rKkuRIAI+4WKi<vEpgkIFUcFhd+JwezCNy$x!g;aU!8fJ^Ye@e{=P&2 z9wA`H#XBo`5MLr9rI5sp7A>EJ=9^(6mRQeH1|ZRzClb*Z*b>9JT_RR(_t@7MC)5Is zKUgUtsqulh<y(f4k@}@psJVd(C<`dALx;tcoRk+AUrl0s>o3tI1WB^?Jb`ocyjp;h zm7@FYqKLJX^`n_(%b|d|w(d$-B;GDDswiO_k()7hH)$j|v=V&r6N$8DrhX=!t8Pz^ zhok7{Vv$XKVn<lrPsa_t18zTQePtm*ciP|jJ^o3S%S$|u3C~@{74y%G<*s#&W?T{> zxdgb+|041^7ASe0s9UQba=fn<$7<<ojVIX<!o&b5p#xb3ODp98=G7c+qruP(uC;mk zg9>|~yb)|$_CMXKCV9e{FGx&?HC9adDo8A+LnWFpDd$^XN#G`0Ep7AW^?iKqTAA3_ z4(&BjIL?a}^>zcza7ll#FaKwb_G))iS7FnNC0FvDxj+ocpAWAm+zdK>f_gnTgi$8U zcrMEryfuy~JYrfxX9pqPvG6}Lsf_B|<QjD0x}>{Sz=#Q+CG2o<M;qsG+P=Cx(}IJ} zoHT9hyDF<gO{nKn(u?YJsi>y-7XJZ>vUqOvrD~AMwj1Gk;Dybrv40tYV!3aNz9TIy z6drajYmHgoE!GHZk)r8{gUCkaNlcf>%N>wfdpg3Cbu-6%nnv}%1x#n{{VKqufd|Ss zx?zi<<ze43amdWsL`-C)mdh<t6|VTEOfpUI4snGhY<w^{2!LCHJ|Tq!rUy_=M=K!f z_%-2fXx6v`WetR1+3cL%!^m9BVwOT)n2{*x7M<a8p8IR_Oamms_d#2g#o$maGZKzI zROPKR6rO!3^(A<(CB<wK({-kRvxMJZ0piP~^HG>BLJ^<yZQQ&=6O)9L{U(-Tl{Y}J z10=pY#%HxSX%c0_v+^f|ZrZTc7f{y#k=%IvgUh8q&Ar&C6ESO6?j7Nx{9Shb!6DsR zi>sx+6+f3@Xboq4qX3Cj*|dyhU{6=Ud<%&;=wPvyltP4$XyxCXXLlARpIKbDJmRNH zTcaTF2Y`5xIj!WdvkzPpGQ~49bdAIXC%w5b9$rY(mW|sr47r^S<fqYg2Jya~;({rG z=F=pX6)e8WS=0GQ-&SHID{A9W{7DQicn7-EHOi-@4r`r`&kIxxO8oSfi;>DhgHkLT z@c6P85#apwQiR2uHH=tC1sDA(YeC^OcJDr0ts4uAaR`W_N-kU1w2bA%YGYUe?t3a` zEq!^|rTs!DYRey9=Mw@SE?PP=$)^@f4B1K6)m#vZy4@XNYa>oXfnO56F@W(KFrqs5 zwe|w&ji28+>r*OpyI3Z}7t}6>br$H%lVeS0o_~^^ZfdcN2hU?eKm6(88{<mZlp2fN zC13=*P%1>v?NPZFG{t<-Bg{LP(2_BmZ0EUZqoT;=k32bNV-c|;)a-;VYlN*Xv;+3W zW{X&F0C|}8_6t4y?WU~EI8A7Uhl8e4$D5-L1o-MiEw?eFr`qkX(=SPcN+s-Q&16X3 z&lQJ=MZ9!3dEDw0h8tclWfDv=n1eY&Vw}MOa_F&7I!{KM0Q~BwbKGz{A;mX}nAdx= zi@V+bnis{RuxZ_LS{B{#xhwUQ^W)m1)uaU<qZq#x=p9?5`a^Sjq8>UVz|*~AK3y4U z{frXvU02-y_NlMwP&DV1vpWz!<~C|GpK|e&nsDY>Q%Hj7v(;)pQm1P&xi_+pS!{Uq zS08)vpjy6(a`x+VS+8mbp(~*dMl5j3;!m=T-pLIxqNv^24=c_1IXJK2AG*6#3D=}} zb#PzGpPn`d{9f>u65M*U;`XbTn=fF@R*GY2S6fdhSx#p3yX+Mdd{JZFWy1Hzr~8ld zu&<uX|5@Huw>>o3Q-8r_)eT*<fU<a>)ox-<+_jA&4{bDCBy&v>m2|A`Kjer5Ge2)9 z3v(C{w`COaLik<F+IVpOK}mhKrwb#aWtPu3p3CuyPS9v<19?v86~-Yx%hxf2_YV={ z`SglubBp0WE=5id#bU?N^68uMT+y?Q(q<y9QHBt=NZBBlv83&S3YWXK`3igP-9M3E z?`t@i_D?m1jnlq9HYl#-LqE-+S<H>t(^E~dePX#WY%uvtoXD+9IAJS_|I032a9=Mn zHH`-7ywFpn3Ey?M$XzVob9Nj$@*Zg9{Mpcu^X6yWeFxh0U}8~D&LwH32>m9cjSD<m ztjmZrs~^9e`m9H9=0i0|F4ss3a&b>U5?y1S7ZW+=nD;kkwf-+TMW)+3)>xMgKm6UR z{ZOBn@YF6$g$$})<a{E7663Giqq|w>78_$9XvGy@?Iig#Qne;Yp=?O7g^UICH+j5B zRXuq3K~wu*!DlyS45PldX2dMMe`p2g=ReTnbua`$@Fei<Ph8fB@CTdK^gR5-!f0bD zm0imp>eGE%bpN^4eXk)S8~7m{=tb2iaahzJIZNDRKOMk>whRx06`%gl6W{~StHK8L z)K(X&-6BzTS?O}F)WbW2c)|?M%eS#V?IrH(IKG+-8tPy4;#@Ji^SLsEW%zIe(jWay zgLT$onI`etM;U616XKJ~c<~2D7B~6Df=DzL336~q8*+5he4y^?NzH<De08*J=T+d9 z8O@q9qU}SOxO1^G63749%FU!l&f+b<Q(cd|)m3Svs{i@Fe}7I)V?Kx%UN8f-Tr3AJ z?3i#P>DmA7*Ht$6qkoDS_63*bI$rFX(Y=l(YU@r1m#P=xyW*zV&6)T9e56>d&msSV zdjeml0^5on+vWy1`xxwcW-Gnpn8NaskY!7Rfyb(~c8mmYW#@nX9D~a<uN1e>WdH(C LS3j3^P6<r_zI``} diff --git a/website/static/img/taquito-michelson-encoder.png b/website/static/img/taquito-michelson-encoder.png deleted file mode 100644 index f3fc257aaa0e679346bdf0ec35703a63860b4d2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241404 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%0AJYuOt$8X-IBW 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	Kj2?HEUr^h5@0mH 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�<jVID6ApJ=V>u~<y)nTq(Hc)3VGCJni()<7WI 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 H(}4dAOxEQV diff --git a/website/yarn.lock b/website/yarn.lock index 5a367429eb..164bb752a8 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -2,181 +2,155 @@ # yarn lockfile v1 -"@airgap/beacon-sdk@^2.2.3": - version "2.2.4" - resolved "https://registry.yarnpkg.com/@airgap/beacon-sdk/-/beacon-sdk-2.2.4.tgz#580fc062eb4b29049174466b0301ac2ac8523f92" - integrity sha512-2TRZTOCCA9Dz0mWjZu0RKxTLVYdL5KkVpg+ULG02CVXKS/l048T2vJ2VkxGmZkkhxzJ3ER6tYBUiM8+TBRkERA== +"@airgap/beacon-sdk@^2.0.0-beta.12": + version "2.0.0-beta.13" + resolved "https://registry.yarnpkg.com/@airgap/beacon-sdk/-/beacon-sdk-2.0.0-beta.13.tgz#b79f378960bc5b7dd5168c5150ee2a6991c27ce8" + integrity sha512-NzxwbL863UVYxIUSFzwvmrO/mwuaHdo7pKWg6t1UficwIbid0BYBfgN2l1NMpgsXuM6emG+bTyWE8jRyzEERAg== dependencies: "@types/chrome" "0.0.115" "@types/libsodium-wrappers" "0.7.7" - axios "0.21.1" + axios "0.19.2" bignumber.js "9.0.0" bs58check "2.1.2" libsodium-wrappers "0.7.8" qrcode-generator "1.4.4" -"@algolia/autocomplete-core@^1.0.0-alpha.35": - version "1.0.0-alpha.42" - resolved "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.0.0-alpha.42.tgz" - integrity sha512-0vpVVXO4EhY2L3BLWcikkdcdgb8xUVp9a8LRKFpPKvVi6EQe4/PJGR+cfCMzJeY3dc689IekebNIM8BCb8ONlQ== - dependencies: - "@algolia/autocomplete-shared" "1.0.0-alpha.42" - -"@algolia/autocomplete-preset-algolia@^1.0.0-alpha.35": - version "1.0.0-alpha.42" - resolved "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.42.tgz" - integrity sha512-UHyYba+UOASrfV2KyILS3BleSRp2zdSxoAixMbYw7rXcCwpZhF/meFZX3s5Mjdo1u+wkuofTx+gs66UwCQoDsQ== - dependencies: - "@algolia/autocomplete-shared" "1.0.0-alpha.42" - -"@algolia/autocomplete-shared@1.0.0-alpha.42": - version "1.0.0-alpha.42" - resolved "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.0.0-alpha.42.tgz" - integrity sha512-vjSw/LFUFJf87fdBeU97AG0E1997P7f4IiDaXtXIZ7GWXiDAOb6ZCYwQGPkPAXWa/UCl7CrxYvKhkjpP8bN7lQ== - -"@algolia/cache-browser-local-storage@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.8.5.tgz" - integrity sha512-9rs/Yi82ilgifweJamOy4DlJ4xPGsCN/zg+RKy4vjytNhOrkEHLRQC8vPZ3OhD8KVlw9lRQIZTlgjgFl8iMeeA== +"@algolia/cache-browser-local-storage@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.5.1.tgz#bdf58c30795683fd48310c552c3a10f10fb26e2b" + integrity sha512-TAQHRHaCUAR0bNhUHG0CnO6FTx3EMPwZQrjPuNS6kHvCQ/H8dVD0sLsHyM8C7U4j33xPQCWi9TBnSx8cYXNmNw== dependencies: - "@algolia/cache-common" "4.8.5" + "@algolia/cache-common" "4.5.1" -"@algolia/cache-common@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.8.5.tgz" - integrity sha512-4SvRWnagKtwBFAy8Rsfmv0/Uk53fZL+6dy2idwdx6SjMGKSs0y1Qv+thb4h/k/H5MONisAoT9C2rgZ/mqwh5yw== +"@algolia/cache-common@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.5.1.tgz#3aefda3382dc30b67091b01a3d7461d937082821" + integrity sha512-Sux+pcedQi9sfScIiQdl6pEaTVl712qM9OblvDhnaeF1v6lf4jyTlRTiBLP7YBLuvO1Yo54W3maf03kmz9PVhA== -"@algolia/cache-in-memory@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.8.5.tgz" - integrity sha512-XBBfqs28FbjwLboY3sxvuzBgYsuXdFsj2mUvkgxfb0GVEzwW4I0NM7KzSPwT+iht55WS1PgIOnynjmhPsrubCw== +"@algolia/cache-in-memory@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.5.1.tgz#127cd473474f62300a157f4ee3b3f6836003cf35" + integrity sha512-fzwAtBFwveuG+E5T/namChEIvdVl0DoV3djV1C078b/JpO5+DeAwuXIJGYbyl950u170n5NEYuIwYG+R6h4lJQ== dependencies: - "@algolia/cache-common" "4.8.5" + "@algolia/cache-common" "4.5.1" -"@algolia/client-account@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.8.5.tgz" - integrity sha512-DjXMpeCdY4J4IDBfowiG6Xl9ec/FhG1NpPQM0Uv4xXsc/TeeZ1JgbgNDhWe9jW0jBEALy+a/RmPrZ0vsxcadsg== +"@algolia/client-account@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.5.1.tgz#7d3ccda09d3c7849b171c915da0833e7649bab33" + integrity sha512-2WFEaI7Zf4ljnBsSAS4e+YylZ5glovm78xFg4E1JKA8PE6M+TeIgUY6HO2ouLh2dqQKxc9UfdAT1Loo/dha2iQ== dependencies: - "@algolia/client-common" "4.8.5" - "@algolia/client-search" "4.8.5" - "@algolia/transporter" "4.8.5" + "@algolia/client-common" "4.5.1" + "@algolia/client-search" "4.5.1" + "@algolia/transporter" "4.5.1" -"@algolia/client-analytics@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.8.5.tgz" - integrity sha512-PQEY+chbHmZnRJdaWsvUYzDpEPr60az0EPUexdouvXGZId15/SnDaXjnf89F7tYmCzkHdUtG4bSvPzAupQ4AFA== +"@algolia/client-analytics@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.5.1.tgz#bfc2a7292a9ea789ca3c99f79b1f96c08d378828" + integrity sha512-bTmZUU8zhZMWBeGEQ/TVqLoL3OOT0benU0HtS3iOnQURwb+AOCv3RsgZvkj2djp+M24Q6P8/L34uBJMmCurbLg== dependencies: - "@algolia/client-common" "4.8.5" - "@algolia/client-search" "4.8.5" - "@algolia/requester-common" "4.8.5" - "@algolia/transporter" "4.8.5" + "@algolia/client-common" "4.5.1" + "@algolia/client-search" "4.5.1" + "@algolia/requester-common" "4.5.1" + "@algolia/transporter" "4.5.1" -"@algolia/client-common@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.8.5.tgz" - integrity sha512-Dn8vog2VrGsJeOcBMcSAEIjBtPyogzUBGlh1DtVd0m8GN6q+cImCESl6DY846M2PTYWsLBKBksq37eUfSe9FxQ== +"@algolia/client-common@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.5.1.tgz#91a401eba6eafd7cc74a0aeccb4c6e6cb1e72026" + integrity sha512-5CpIf8IK1hke7q+N4e+A4TWdFXVJ5Qwyaa0xS84DrDO8HQ7vfYbDvG1oYa9hVEtGn6c3WVKPAvuWynK+fXQQCA== dependencies: - "@algolia/requester-common" "4.8.5" - "@algolia/transporter" "4.8.5" + "@algolia/requester-common" "4.5.1" + "@algolia/transporter" "4.5.1" -"@algolia/client-recommendation@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/client-recommendation/-/client-recommendation-4.8.5.tgz" - integrity sha512-ffawCC1C25rCa8/JU2niRZgwr8aV9b2qsLVMo73GXFzi2lceXPAe9K68mt/BGHU+w7PFUwVHsV2VmB+G/HQRVw== +"@algolia/client-recommendation@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/client-recommendation/-/client-recommendation-4.5.1.tgz#57a1fe30987c90b10d5119b8e7d6cd91c423e54c" + integrity sha512-GiFrNSImoEBUQICjFBEoxPGzrjWji8PY9GeMg2CNvOYcRQ0Xt0Y36v9GN53NLjvB7QdQ2FlE1Cuv/PLUfS/aQQ== dependencies: - "@algolia/client-common" "4.8.5" - "@algolia/requester-common" "4.8.5" - "@algolia/transporter" "4.8.5" + "@algolia/client-common" "4.5.1" + "@algolia/requester-common" "4.5.1" + "@algolia/transporter" "4.5.1" -"@algolia/client-search@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.8.5.tgz" - integrity sha512-Ru2MljGZWrSQ0CVsDla11oGEPL/RinmVkLJfBtQ+/pk1868VfpAQFGKtOS/b8/xLrMA0Vm4EfC3Mgclk/p3KJA== +"@algolia/client-search@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.5.1.tgz#cb798c99d6621e29a36334b92205518a74ecdf3e" + integrity sha512-wjuOTte9Auo9Cg4fL0709PjeJ9rXFh4okYUrOt/2SWqQid6DSdZOp+BtyaHKV3E94sj+SlmMxkMUacYluYg5zA== dependencies: - "@algolia/client-common" "4.8.5" - "@algolia/requester-common" "4.8.5" - "@algolia/transporter" "4.8.5" + "@algolia/client-common" "4.5.1" + "@algolia/requester-common" "4.5.1" + "@algolia/transporter" "4.5.1" -"@algolia/logger-common@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.8.5.tgz" - integrity sha512-PS6NS6bpED0rAxgCPGhjZJg9why0PnoVEE7ZoCbPq6lsAOc6FPlQLri4OiLyU7wx8RWDoVtOadyzulqAAsfPSQ== +"@algolia/logger-common@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.5.1.tgz#18d654516369a28e25ad7eee4fc2882fd47ed8ec" + integrity sha512-ZoVnGriinlLHlkvn5K7djOUn1/1IeTjU8rDzOJ3t06T+2hQytgJghaX7rSwKIeH4CjWMy61w8jLisuGJRBOEeg== -"@algolia/logger-console@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.8.5.tgz" - integrity sha512-3+4gLSbwzuGmrb5go3IZNcFIYVMSbB4c8UMtWEJ/gDBtgGZIvT6f/KlvVSOHIhthSxaM3Y13V6Qile/SpGqc6A== +"@algolia/logger-console@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.5.1.tgz#c9def97c20bea5eecb4b07f8d3f733c0192d1761" + integrity sha512-1qa7K18+uAgxyWuguayaDS5ViiZFcOjI3J5ACBb0i/n7RsXUo149lP6mwmx6TIU7s135hT0f0TCqnvfMvN1ilA== dependencies: - "@algolia/logger-common" "4.8.5" + "@algolia/logger-common" "4.5.1" -"@algolia/requester-browser-xhr@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.8.5.tgz" - integrity sha512-M/Gf2vv/fU4+CqDW+wok7HPpEcLym3NtDzU9zaPzGYI/9X7o36581oyfnzt2pNfsXSQVj5a2pZVUWC3Z4SO27w== +"@algolia/requester-browser-xhr@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.5.1.tgz#838b55209d2c83572df261338f7cd75be36de401" + integrity sha512-tsQz+9pZw9dwPm/wMvZDpsWFZgmghLjXi4c3O4rfwoP/Ikum5fhle5fiR14yb4Lw4WlOQ1AJIHJvrg1qLIG8hQ== dependencies: - "@algolia/requester-common" "4.8.5" + "@algolia/requester-common" "4.5.1" -"@algolia/requester-common@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.8.5.tgz" - integrity sha512-OIhsdwIrJVAlVlP7cwlt+RoR5AmxAoTGrFokOY9imVmgqXUUljdKO/DjhRL8vwYGFEidZ9efIjAIQ2B3XOhT9A== +"@algolia/requester-common@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.5.1.tgz#a34d02daa6093e112b528d3bcd5a5467c00ba823" + integrity sha512-bPCiLvhHKXaka7f5FLtheChToz0yHVhvza64naFJRRh/3kC0nvyrvQ0ogjiydiSrGIfdNDyyTVfKGdk4gS5gyA== -"@algolia/requester-node-http@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.8.5.tgz" - integrity sha512-viHAjfo53A3VSE7Bb/nzgpSMZ3prPp2qti7Wg8w7qxhntppKp3Fln6t4Vp+BoPOqruLsj139xXhheAKeRcYa0w== +"@algolia/requester-node-http@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.5.1.tgz#29911c104c6714a5cb29d3991f2b50c52301e091" + integrity sha512-BfFc2h9eQOKu1gGs3DtQO7GrVZW/rxUgpJVLja4UVQyGplJyTCrFgkTyfl+8rb3MkNgA/S2LNo7cKNSPfpqeAQ== dependencies: - "@algolia/requester-common" "4.8.5" + "@algolia/requester-common" "4.5.1" -"@algolia/transporter@4.8.5": - version "4.8.5" - resolved "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.8.5.tgz" - integrity sha512-Rb3cMlh/GoJK0+g+49GNA3IvR/EXsDEBwpyM+FOotSwxgiGt1wGBHM0K2v0GHwIEcuww02pl6KMDVlilA+qh0g== +"@algolia/transporter@4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.5.1.tgz#e0a5c64f358b6751f867001f51f384d6fc7ede14" + integrity sha512-asPDNToDAPhH0tM6qKGTn1l0wTlNUbekpa1ifZ6v+qhSjo3VdqGyp+2VeciJOBW/wVHXh3HUbAcycvLERRlCLg== dependencies: - "@algolia/cache-common" "4.8.5" - "@algolia/logger-common" "4.8.5" - "@algolia/requester-common" "4.8.5" + "@algolia/cache-common" "4.5.1" + "@algolia/logger-common" "4.5.1" + "@algolia/requester-common" "4.5.1" "@babel/code-frame@7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== dependencies: "@babel/highlight" "^7.8.3" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/compat-data@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.13.tgz" - integrity sha512-U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg== +"@babel/compat-data@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.1.tgz#d7386a689aa0ddf06255005b4b991988021101a0" + integrity sha512-725AQupWJZ8ba0jbKceeFblZTY90McUBWMwHhkFQ9q1zKPJ95GUktljFcgcsIVwRnTnRKlcYzfiNImg5G9m6ZQ== -"@babel/core@7.12.9": - version "7.12.9" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz" - integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== +"@babel/core@7.11.6": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" + integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.5" - "@babel/helper-module-transforms" "^7.12.1" - "@babel/helpers" "^7.12.5" - "@babel/parser" "^7.12.7" - "@babel/template" "^7.12.7" - "@babel/traverse" "^7.12.9" - "@babel/types" "^7.12.7" + "@babel/generator" "^7.11.6" + "@babel/helper-module-transforms" "^7.11.0" + "@babel/helpers" "^7.10.4" + "@babel/parser" "^7.11.5" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.11.5" + "@babel/types" "^7.11.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -186,805 +160,839 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.12.3": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.13.tgz" - integrity sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.12.13" - "@babel/helper-module-transforms" "^7.12.13" - "@babel/helpers" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.12.13" - "@babel/types" "^7.12.13" +"@babel/core@^7.7.5", "@babel/core@^7.9.0": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" + integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.1" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.1" + "@babel/parser" "^7.12.3" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" json5 "^2.1.2" lodash "^4.17.19" + resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.12.13", "@babel/generator@^7.12.5": - version "7.12.15" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.12.15.tgz" - integrity sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ== +"@babel/generator@^7.11.6", "@babel/generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz#0d70be32bdaa03d7c51c8597dda76e0df1f15468" + integrity sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.12.1" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz" - integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== +"@babel/helper-annotate-as-pure@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" + integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" + integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-builder-react-jsx-experimental@^7.12.1": + version "7.12.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz#55fc1ead5242caa0ca2875dcb8eed6d311e50f48" + integrity sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og== dependencies: - "@babel/types" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-module-imports" "^7.12.1" + "@babel/types" "^7.12.1" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz" - integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== +"@babel/helper-builder-react-jsx@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" + integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== dependencies: - "@babel/helper-explode-assignable-expression" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.13.tgz" - integrity sha512-dXof20y/6wB5HnLOGyLh/gobsMvDNoekcC+8MCV2iaTd5JemhFkPD73QB+tK3iFC9P0xJC73B6MvKkyUfS9cCw== +"@babel/helper-compilation-targets@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.1.tgz#310e352888fbdbdd8577be8dfdd2afb9e7adcf50" + integrity sha512-jtBEif7jsPwP27GPHs06v4WBV0KrE8a/P7n0N0sSvHn2hwUCYnolP/CLmz51IzAW4NlN+HuoBtb9QcwnRo9F/g== dependencies: - "@babel/compat-data" "^7.12.13" - "@babel/helper-validator-option" "^7.12.11" - browserslist "^4.14.5" + "@babel/compat-data" "^7.12.1" + "@babel/helper-validator-option" "^7.12.1" + browserslist "^4.12.0" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz" - integrity sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q== +"@babel/helper-create-class-features-plugin@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" + integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-member-expression-to-functions" "^7.12.13" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.12.1" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.10.4" -"@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.13.tgz" - integrity sha512-XC+kiA0J3at6E85dL5UnCYfVOcIZ834QcAY0TIpgUVnz0zDzg+0TtvZTnJ4g9L1dPRGe30Qi03XCIS4tYCLtqw== +"@babel/helper-create-regexp-features-plugin@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz#18b1302d4677f9dc4740fe8c9ed96680e29d37e8" + integrity sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-regex" "^7.10.4" regexpu-core "^4.7.1" -"@babel/helper-explode-assignable-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz" - integrity sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw== +"@babel/helper-define-map@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" + integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== dependencies: - "@babel/types" "^7.12.13" + "@babel/helper-function-name" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== +"@babel/helper-explode-assignable-expression@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633" + integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA== dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/types" "^7.12.1" -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.10.4" -"@babel/helper-hoist-variables@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.12.13.tgz" - integrity sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw== +"@babel/helper-hoist-variables@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" + integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.10.4" -"@babel/helper-member-expression-to-functions@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz" - integrity sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ== +"@babel/helper-member-expression-to-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz#fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c" + integrity sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.12.1" -"@babel/helper-module-imports@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz" - integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== +"@babel/helper-module-imports@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz#1644c01591a15a2f084dd6d092d9430eb1d1216c" + integrity sha512-ZeC1TlMSvikvJNy1v/wPIazCu3NdOwgYZLIkmIyAsGhqkNpiDoQQRmaCK8YP4Pq3GPTLPV9WXaPCJKvx06JxKA== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.12.1" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz" - integrity sha512-acKF7EjqOR67ASIlDTupwkKM1eUisNAjaSduo5Cz+793ikfnpe7p4Q7B7EWU2PCoSTPWsQkR7hRUWEIZPiVLGA== +"@babel/helper-module-transforms@^7.11.0", "@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" - "@babel/helper-simple-access" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" lodash "^4.17.19" -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" + integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.10.4" -"@babel/helper-plugin-utils@7.10.4": +"@babel/helper-plugin-utils@7.10.4", "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz" - integrity sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== +"@babel/helper-regex@^7.10.4": + version "7.10.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" + integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== + dependencies: + lodash "^4.17.19" -"@babel/helper-remap-async-to-generator@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz" - integrity sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA== +"@babel/helper-remap-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" + integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-wrap-function" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/types" "^7.12.1" -"@babel/helper-replace-supers@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz" - integrity sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg== +"@babel/helper-replace-supers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz#f15c9cc897439281891e11d5ce12562ac0cf3fa9" + integrity sha512-zJjTvtNJnCFsCXVi5rUInstLd/EIVNmIKA1Q9ynESmMBWPWd+7sdR+G4/wdu+Mppfep0XLyG2m7EBPvjCeFyrw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.12.13" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/helper-member-expression-to-functions" "^7.12.1" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" -"@babel/helper-simple-access@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz" - integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.12.1" "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== dependencies: "@babel/types" "^7.12.1" -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== +"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.11.0" "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - -"@babel/helper-validator-option@^7.12.11": - version "7.12.11" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz" - integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw== +"@babel/helper-validator-option@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" + integrity sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A== -"@babel/helper-wrap-function@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.13.tgz" - integrity sha512-t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw== +"@babel/helper-wrap-function@^7.10.4": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9" + integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/helper-function-name" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helpers@^7.12.13", "@babel/helpers@^7.12.5": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.13.tgz" - integrity sha512-oohVzLRZ3GQEk4Cjhfs9YkJA4TdIDTObdBEZGrd6F/T0GPSnuV6l22eMcxlvcvzVIPH3VTtxbseudM1zIE+rPQ== +"@babel/helpers@^7.10.4", "@babel/helpers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.1.tgz#8a8261c1d438ec18cb890434df4ec768734c1e79" + integrity sha512-9JoDSBGoWtmbay98efmT2+mySkwjzeFeAL9BuWNoVQpkPFQF8SIIFUfY5os9u8wVzglzoiPRSW7cuJmBDUt43g== dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" "@babel/highlight@^7.10.4", "@babel/highlight@^7.8.3": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== dependencies: "@babel/helper-validator-identifier" "^7.10.4" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/highlight@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz" - integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.12.13", "@babel/parser@^7.12.5", "@babel/parser@^7.12.7": - version "7.12.15" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.15.tgz" - integrity sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA== +"@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.12.1", "@babel/parser@^7.12.3", "@babel/parser@^7.9.4": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.3.tgz#a305415ebe7a6c7023b40b5122a0662d928334cd" + integrity sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw== -"@babel/plugin-proposal-async-generator-functions@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.13.tgz" - integrity sha512-1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA== +"@babel/plugin-proposal-async-generator-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e" + integrity sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-remap-async-to-generator" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz" - integrity sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA== +"@babel/plugin-proposal-class-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" + integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-proposal-dynamic-import@^7.12.1": version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-export-namespace-from@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz" - integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== +"@babel/plugin-proposal-export-namespace-from@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" + integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.13.tgz" - integrity sha512-v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg== +"@babel/plugin-proposal-json-strings@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" + integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-logical-assignment-operators@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.13.tgz" - integrity sha512-fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ== +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" + integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.13.tgz" - integrity sha512-Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" + integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz" - integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== +"@babel/plugin-proposal-numeric-separator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz#0e2c6774c4ce48be412119b4d693ac777f7685a6" + integrity sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz" - integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== +"@babel/plugin-proposal-object-rest-spread@7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" + integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.13.tgz" - integrity sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg== +"@babel/plugin-proposal-object-rest-spread@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.12.13" + "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-optional-catch-binding@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.13.tgz" - integrity sha512-9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg== +"@babel/plugin-proposal-optional-catch-binding@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" + integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.13.tgz" - integrity sha512-0ZwjGfTcnZqyV3y9DSD1Yk3ebp+sIUpT2YDqP8hovzaNZnQq2Kd7PEqa6iOIUDBXBt7Jl3P7YAcEIL5Pz8u09Q== +"@babel/plugin-proposal-optional-chaining@^7.10.3", "@babel/plugin-proposal-optional-chaining@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797" + integrity sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-private-methods@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.13.tgz" - integrity sha512-sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg== +"@babel/plugin-proposal-private-methods@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" + integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz" - integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" + integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-async-generators@^7.8.0": version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.13": - 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== +"@babel/plugin-syntax-class-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-json-strings@^7.8.0": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz" - integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== +"@babel/plugin-syntax-jsx@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" + integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-jsx@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz" - integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== +"@babel/plugin-syntax-jsx@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.0": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.0": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== +"@babel/plugin-syntax-top-level-await@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" + integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-typescript@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz" - integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== +"@babel/plugin-syntax-typescript@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz#460ba9d77077653803c3dd2e673f76d66b4029e5" + integrity sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-arrow-functions@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.13.tgz" - integrity sha512-tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg== +"@babel/plugin-transform-arrow-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" + integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-async-to-generator@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.13.tgz" - integrity sha512-psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A== +"@babel/plugin-transform-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" + integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-remap-async-to-generator" "^7.12.13" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" -"@babel/plugin-transform-block-scoped-functions@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz" - integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== +"@babel/plugin-transform-block-scoped-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" + integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz" - integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== +"@babel/plugin-transform-block-scoping@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1" + integrity sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-classes@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.13.tgz" - integrity sha512-cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA== +"@babel/plugin-transform-classes@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" + integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-define-map" "^7.10.4" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.13.tgz" - integrity sha512-dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA== +"@babel/plugin-transform-computed-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" + integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.13.tgz" - integrity sha512-Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ== +"@babel/plugin-transform-destructuring@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" + integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz" - integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" + integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-duplicate-keys@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz" - integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== +"@babel/plugin-transform-duplicate-keys@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" + integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-exponentiation-operator@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz" - integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== +"@babel/plugin-transform-exponentiation-operator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" + integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-for-of@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.13.tgz" - integrity sha512-xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ== +"@babel/plugin-transform-for-of@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" + integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz" - integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== +"@babel/plugin-transform-function-name@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" + integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz" - integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== +"@babel/plugin-transform-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" + integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz" - integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== +"@babel/plugin-transform-member-expression-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" + integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-amd@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.13.tgz" - integrity sha512-JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA== +"@babel/plugin-transform-modules-amd@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" + integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== dependencies: - "@babel/helper-module-transforms" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.13.tgz" - integrity sha512-OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ== +"@babel/plugin-transform-modules-commonjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" + integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== dependencies: - "@babel/helper-module-transforms" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-simple-access" "^7.12.1" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz" - integrity sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA== +"@babel/plugin-transform-modules-systemjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" + integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== dependencies: - "@babel/helper-hoist-variables" "^7.12.13" - "@babel/helper-module-transforms" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-hoist-variables" "^7.10.4" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-identifier" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.13.tgz" - integrity sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w== +"@babel/plugin-transform-modules-umd@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" + integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== + dependencies: + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" + integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + +"@babel/plugin-transform-new-target@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" + integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== dependencies: - "@babel/helper-module-transforms" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz" - integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== +"@babel/plugin-transform-object-super@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" + integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" -"@babel/plugin-transform-new-target@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz" - integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== +"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" + integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-object-super@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz" - integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== +"@babel/plugin-transform-property-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" + integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.13.tgz" - integrity sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA== +"@babel/plugin-transform-react-constant-elements@^7.9.0": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.1.tgz#4471f0851feec3231cc9aaa0dccde39947c1ac1e" + integrity sha512-KOHd0tIRLoER+J+8f9DblZDa1fLGPwaaN1DI1TVHuQFOpjHV22C3CUB3obeC4fexHY9nx+fH0hQNvLFFfA1mxA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz" - integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== +"@babel/plugin-transform-react-display-name@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d" + integrity sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-constant-elements@^7.12.1": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.13.tgz" - integrity sha512-qmzKVTn46Upvtxv8LQoQ8mTCdUC83AOVQIQm57e9oekLT5cmK9GOMOfcWhe8jMNx4UJXn/UDhVZ/7lGofVNeDQ== +"@babel/plugin-transform-react-jsx-development@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.1.tgz#0b8f8cd531dcf7991f1e5f2c10a2a4f1cfc78e36" + integrity sha512-IilcGWdN1yNgEGOrB96jbTplRh+V2Pz1EoEwsKsHfX1a/L40cUYuD71Zepa7C+ujv7kJIxnDftWeZbKNEqZjCQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-builder-react-jsx-experimental" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.12.1" -"@babel/plugin-transform-react-display-name@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz" - integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== +"@babel/plugin-transform-react-jsx-self@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz#ef43cbca2a14f1bd17807dbe4376ff89d714cf28" + integrity sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-jsx-development@^7.12.12": - version "7.12.12" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz" - integrity sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg== +"@babel/plugin-transform-react-jsx-source@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz#d07de6863f468da0809edcf79a1aa8ce2a82a26b" + integrity sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ== dependencies: - "@babel/plugin-transform-react-jsx" "^7.12.12" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.13.tgz" - integrity sha512-hhXZMYR8t9RvduN2uW4sjl6MRtUhzNE726JvoJhpjhxKgRUVkZqTsA0xc49ALZxQM7H26pZ/lLvB2Yrea9dllA== +"@babel/plugin-transform-react-jsx@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.1.tgz#c2d96c77c2b0e4362cc4e77a43ce7c2539d478cb" + integrity sha512-RmKejwnT0T0QzQUzcbP5p1VWlpnP8QHtdhEtLG55ZDQnJNalbF3eeDyu3dnGKvGzFIQiBzFhBYTwvv435p9Xpw== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/helper-builder-react-jsx" "^7.10.4" + "@babel/helper-builder-react-jsx-experimental" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.12.1" "@babel/plugin-transform-react-pure-annotations@^7.12.1": version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz" - integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== +"@babel/plugin-transform-regenerator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" + integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz" - integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== +"@babel/plugin-transform-reserved-words@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" + integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-runtime@^7.12.1": - version "7.12.15" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.15.tgz" - integrity sha512-OwptMSRnRWJo+tJ9v9wgAf72ydXWfYSXWhnQjZing8nGZSDFqU1MBleKM3+DriKkcbv7RagA8gVeB0A1PNlNow== +"@babel/plugin-transform-runtime@^7.9.0": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz#04b792057eb460389ff6a4198e377614ea1e7ba5" + integrity sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg== dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-shorthand-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz" - integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== +"@babel/plugin-transform-shorthand-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" + integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.13.tgz" - integrity sha512-dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg== +"@babel/plugin-transform-spread@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" + integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-sticky-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz" - integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== +"@babel/plugin-transform-sticky-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz#5c24cf50de396d30e99afc8d1c700e8bce0f5caf" + integrity sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-regex" "^7.10.4" -"@babel/plugin-transform-template-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.13.tgz" - integrity sha512-arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg== +"@babel/plugin-transform-template-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" + integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz" - integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== +"@babel/plugin-transform-typeof-symbol@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz#9ca6be343d42512fbc2e68236a82ae64bc7af78a" + integrity sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typescript@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.13.tgz" - integrity sha512-z1VWskPJxK9tfxoYvePWvzSJC+4pxXr8ArmRm5ofqgi+mwpKg6lvtomkIngBYMJVnKhsFYVysCQLDn//v2RHcg== +"@babel/plugin-transform-typescript@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz#d92cc0af504d510e26a754a7dbc2e5c8cd9c7ab4" + integrity sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw== dependencies: - "@babel/helper-create-class-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-typescript" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-typescript" "^7.12.1" -"@babel/plugin-transform-unicode-escapes@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz" - integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== +"@babel/plugin-transform-unicode-escapes@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" + integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-unicode-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz" - integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== +"@babel/plugin-transform-unicode-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" + integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/preset-env@^7.12.1": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.13.tgz" - integrity sha512-JUVlizG8SoFTz4LmVUL8++aVwzwxcvey3N0j1tRbMAXVEy95uQ/cnEkmEKHN00Bwq4voAV3imQGnQvpkLAxsrw== +"@babel/preset-env@^7.9.0", "@babel/preset-env@^7.9.5": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" + integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== dependencies: - "@babel/compat-data" "^7.12.13" - "@babel/helper-compilation-targets" "^7.12.13" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-validator-option" "^7.12.11" - "@babel/plugin-proposal-async-generator-functions" "^7.12.13" - "@babel/plugin-proposal-class-properties" "^7.12.13" + "@babel/compat-data" "^7.12.1" + "@babel/helper-compilation-targets" "^7.12.1" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-option" "^7.12.1" + "@babel/plugin-proposal-async-generator-functions" "^7.12.1" + "@babel/plugin-proposal-class-properties" "^7.12.1" "@babel/plugin-proposal-dynamic-import" "^7.12.1" - "@babel/plugin-proposal-export-namespace-from" "^7.12.13" - "@babel/plugin-proposal-json-strings" "^7.12.13" - "@babel/plugin-proposal-logical-assignment-operators" "^7.12.13" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.13" - "@babel/plugin-proposal-numeric-separator" "^7.12.13" - "@babel/plugin-proposal-object-rest-spread" "^7.12.13" - "@babel/plugin-proposal-optional-catch-binding" "^7.12.13" - "@babel/plugin-proposal-optional-chaining" "^7.12.13" - "@babel/plugin-proposal-private-methods" "^7.12.13" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" + "@babel/plugin-proposal-export-namespace-from" "^7.12.1" + "@babel/plugin-proposal-json-strings" "^7.12.1" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-properties" "^7.12.1" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.0" @@ -994,47 +1002,47 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.12.13" - "@babel/plugin-transform-arrow-functions" "^7.12.13" - "@babel/plugin-transform-async-to-generator" "^7.12.13" - "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.12.13" - "@babel/plugin-transform-classes" "^7.12.13" - "@babel/plugin-transform-computed-properties" "^7.12.13" - "@babel/plugin-transform-destructuring" "^7.12.13" - "@babel/plugin-transform-dotall-regex" "^7.12.13" - "@babel/plugin-transform-duplicate-keys" "^7.12.13" - "@babel/plugin-transform-exponentiation-operator" "^7.12.13" - "@babel/plugin-transform-for-of" "^7.12.13" - "@babel/plugin-transform-function-name" "^7.12.13" - "@babel/plugin-transform-literals" "^7.12.13" - "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.12.13" - "@babel/plugin-transform-modules-commonjs" "^7.12.13" - "@babel/plugin-transform-modules-systemjs" "^7.12.13" - "@babel/plugin-transform-modules-umd" "^7.12.13" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" - "@babel/plugin-transform-new-target" "^7.12.13" - "@babel/plugin-transform-object-super" "^7.12.13" - "@babel/plugin-transform-parameters" "^7.12.13" - "@babel/plugin-transform-property-literals" "^7.12.13" - "@babel/plugin-transform-regenerator" "^7.12.13" - "@babel/plugin-transform-reserved-words" "^7.12.13" - "@babel/plugin-transform-shorthand-properties" "^7.12.13" - "@babel/plugin-transform-spread" "^7.12.13" - "@babel/plugin-transform-sticky-regex" "^7.12.13" - "@babel/plugin-transform-template-literals" "^7.12.13" - "@babel/plugin-transform-typeof-symbol" "^7.12.13" - "@babel/plugin-transform-unicode-escapes" "^7.12.13" - "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/plugin-syntax-top-level-await" "^7.12.1" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-async-to-generator" "^7.12.1" + "@babel/plugin-transform-block-scoped-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-computed-properties" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-dotall-regex" "^7.12.1" + "@babel/plugin-transform-duplicate-keys" "^7.12.1" + "@babel/plugin-transform-exponentiation-operator" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-function-name" "^7.12.1" + "@babel/plugin-transform-literals" "^7.12.1" + "@babel/plugin-transform-member-expression-literals" "^7.12.1" + "@babel/plugin-transform-modules-amd" "^7.12.1" + "@babel/plugin-transform-modules-commonjs" "^7.12.1" + "@babel/plugin-transform-modules-systemjs" "^7.12.1" + "@babel/plugin-transform-modules-umd" "^7.12.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" + "@babel/plugin-transform-new-target" "^7.12.1" + "@babel/plugin-transform-object-super" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-property-literals" "^7.12.1" + "@babel/plugin-transform-regenerator" "^7.12.1" + "@babel/plugin-transform-reserved-words" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.1" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/plugin-transform-typeof-symbol" "^7.12.1" + "@babel/plugin-transform-unicode-escapes" "^7.12.1" + "@babel/plugin-transform-unicode-regex" "^7.12.1" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.12.13" - core-js-compat "^3.8.0" + "@babel/types" "^7.12.1" + core-js-compat "^3.6.2" semver "^5.5.0" "@babel/preset-modules@^0.1.3": version "0.1.4" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -1043,144 +1051,141 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.12.5": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.13.tgz" - integrity sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA== +"@babel/preset-react@^7.9.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.1.tgz#7f022b13f55b6dd82f00f16d1c599ae62985358c" + integrity sha512-euCExymHCi0qB9u5fKw7rvlw7AZSjw/NaB9h7EkdTt5+yHRrXdiRTh7fkG3uBPpJg82CqLfp1LHLqWGSCrab+g== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-transform-react-display-name" "^7.12.13" - "@babel/plugin-transform-react-jsx" "^7.12.13" - "@babel/plugin-transform-react-jsx-development" "^7.12.12" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-react-display-name" "^7.12.1" + "@babel/plugin-transform-react-jsx" "^7.12.1" + "@babel/plugin-transform-react-jsx-development" "^7.12.1" + "@babel/plugin-transform-react-jsx-self" "^7.12.1" + "@babel/plugin-transform-react-jsx-source" "^7.12.1" "@babel/plugin-transform-react-pure-annotations" "^7.12.1" -"@babel/preset-typescript@^7.12.1": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.13.tgz" - integrity sha512-gYry7CeXwD2wtw5qHzrtzKaShEhOfTmKb4i0ZxeYBcBosN5VuAudsNbjX7Oj5EAfQ3K4s4HsVMQRRcqGsPvs2A== +"@babel/preset-typescript@^7.9.0": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz#86480b483bb97f75036e8864fe404cc782cc311b" + integrity sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-validator-option" "^7.12.11" - "@babel/plugin-transform-typescript" "^7.12.13" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.12.1" -"@babel/runtime-corejs3@^7.12.5": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.13.tgz" - integrity sha512-8fSpqYRETHATtNitsCXq8QQbKJP31/KnDl2Wz2Vtui9nKzjss2ysuZtyVsWjBtvkeEFo346gkwjYPab1hvrXkQ== +"@babel/runtime-corejs3@^7.10.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.1.tgz#51b9092befbeeed938335a109dbe0df51451e9dc" + integrity sha512-umhPIcMrlBZ2aTWlWjUseW9LjQKxi1dpFlQS8DzsxB//5K+u6GLTC/JliPKHsd5kJVPIU6X/Hy0YvWOYPcMxBw== dependencies: core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.13.tgz" - integrity sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.1", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" + integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.13", "@babel/template@^7.12.7": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/traverse@^7.12.13", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz" - integrity sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" +"@babel/template@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5", "@babel/traverse@^7.12.1", "@babel/traverse@^7.9.0": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.1.tgz#941395e0c5cc86d5d3e75caa095d3924526f0c1e" + integrity sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.1" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.12.1" + "@babel/types" "^7.12.1" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.6", "@babel/types@^7.12.7", "@babel/types@^7.4.4": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz" - integrity sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ== +"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.12.1", "@babel/types@^7.4.4", "@babel/types@^7.9.5": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.1.tgz#e109d9ab99a8de735be287ee3d6a9947a190c4ae" + integrity sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" to-fast-properties "^2.0.0" "@csstools/convert-colors@^1.4.0": version "1.4.0" - resolved "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@docsearch/css@3.0.0-alpha.33": - version "3.0.0-alpha.33" - resolved "https://registry.npmjs.org/@docsearch/css/-/css-3.0.0-alpha.33.tgz" - integrity sha512-7k/d960WaCRPxZqKwasSH2+pmKW+IeQ14zvS8t7T59OeW24G4N9xuLnpBf1XZ6IyS2AS3KPwRomwRX78qpETVg== +"@docsearch/css@^1.0.0-alpha.28": + version "1.0.0-alpha.28" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-1.0.0-alpha.28.tgz#c8a2cd8c1bb3a6855c51892e9dbdab5d42fe6e23" + integrity sha512-1AhRzVdAkrWwhaxTX6/R7SnFHz8yLz1W8I/AldlTrfbNvZs9INk1FZiEFTJdgHaP68nhgQNWSGlQiDiI3y2RYg== -"@docsearch/react@^3.0.0-alpha.31": - version "3.0.0-alpha.33" - resolved "https://registry.npmjs.org/@docsearch/react/-/react-3.0.0-alpha.33.tgz" - integrity sha512-XOhaUsxiq62umpGMfgzey45H6Id7qOa2DyJJOIpZHEeo5uFVkxc7Qamng+ETdUIn9ql8tWRPzjTh5OAtjJAgxw== +"@docsearch/react@^1.0.0-alpha.27": + version "1.0.0-alpha.28" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-1.0.0-alpha.28.tgz#4f039ed79f8b3332b19a57677b219aebc5010e9d" + integrity sha512-XjJOnCBXn+UZmtuDmgzlVIHnnvh6yHVwG4aFq8AXN6xJEIX3f180FvGaowFWAxgdtHplJxFGux0Xx4piHqBzIw== dependencies: - "@algolia/autocomplete-core" "^1.0.0-alpha.35" - "@algolia/autocomplete-preset-algolia" "^1.0.0-alpha.35" - "@docsearch/css" "3.0.0-alpha.33" + "@docsearch/css" "^1.0.0-alpha.28" + "@francoischalifour/autocomplete-core" "^1.0.0-alpha.28" + "@francoischalifour/autocomplete-preset-algolia" "^1.0.0-alpha.28" algoliasearch "^4.0.0" -"@docusaurus/core@2.0.0-alpha.70", "@docusaurus/core@^2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-alpha.70.tgz" - integrity sha512-ccDcr5eb5T3C6k7VoqTclBFwjVkIHK1zISdhqzRNVl8AZTql1bYMvGUJP+2WbF6RSdmsGTNWreaUlrJc00dQqw== +"@docusaurus/core@2.0.0-alpha.66", "@docusaurus/core@^2.0.0-alpha.63": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-alpha.66.tgz#4e1d4296322df48c331f6051a8c0d39d99bd356b" + integrity sha512-9HKqObYoyArpzSTIDguyUXm7z54bpV3dSWSc0PbKGu0Us6zP1TiOuhRDX1diFsKyvjNy7VbCe8XH8LJIdKi5dQ== dependencies: - "@babel/core" "^7.12.3" - "@babel/generator" "^7.12.5" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/core" "^7.9.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.1" + "@babel/plugin-proposal-optional-chaining" "^7.10.3" "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-runtime" "^7.12.1" - "@babel/preset-env" "^7.12.1" - "@babel/preset-react" "^7.12.5" - "@babel/preset-typescript" "^7.12.1" - "@babel/runtime" "^7.12.5" - "@babel/runtime-corejs3" "^7.12.5" - "@babel/traverse" "^7.12.5" - "@docusaurus/cssnano-preset" "2.0.0-alpha.70" - "@docusaurus/types" "2.0.0-alpha.70" - "@docusaurus/utils" "2.0.0-alpha.70" - "@docusaurus/utils-validation" "2.0.0-alpha.70" + "@babel/plugin-transform-runtime" "^7.9.0" + "@babel/preset-env" "^7.9.0" + "@babel/preset-react" "^7.9.4" + "@babel/preset-typescript" "^7.9.0" + "@babel/runtime" "^7.9.2" + "@babel/runtime-corejs3" "^7.10.4" + "@docusaurus/types" "2.0.0-alpha.66" + "@docusaurus/utils" "2.0.0-alpha.66" + "@docusaurus/utils-validation" "2.0.0-alpha.66" "@endiliey/static-site-generator-webpack-plugin" "^4.0.0" + "@hapi/joi" "^17.1.1" "@svgr/webpack" "^5.4.0" - babel-loader "^8.2.1" - babel-plugin-dynamic-import-node "2.3.0" + babel-loader "^8.1.0" + babel-plugin-dynamic-import-node "^2.3.0" boxen "^4.2.0" cache-loader "^4.1.0" chalk "^3.0.0" - chokidar "^3.4.3" - clean-css "^4.2.3" + chokidar "^3.3.0" commander "^4.0.1" - copy-webpack-plugin "^6.3.0" + copy-webpack-plugin "^6.0.3" core-js "^2.6.5" css-loader "^3.4.2" del "^5.1.0" detect-port "^1.3.0" - eta "^1.11.0" + eta "^1.1.1" express "^4.17.1" - file-loader "^6.2.0" - fs-extra "^9.0.1" + file-loader "^6.0.0" + fs-extra "^8.1.0" globby "^10.0.1" - html-minifier-terser "^5.1.1" + html-minifier-terser "^5.0.5" html-tags "^3.1.0" - html-webpack-plugin "^4.5.0" - import-fresh "^3.2.2" + html-webpack-plugin "^4.0.4" + import-fresh "^3.2.1" inquirer "^7.2.0" is-root "^2.1.0" - joi "^17.2.1" leven "^3.1.0" - lodash "^4.17.20" + lodash "^4.5.2" lodash.flatmap "^4.5.0" lodash.has "^4.5.2" lodash.isplainobject "^4.0.6" @@ -1188,17 +1193,17 @@ mini-css-extract-plugin "^0.8.0" nprogress "^0.2.0" null-loader "^3.0.0" - optimize-css-assets-webpack-plugin "^5.0.4" + optimize-css-assets-webpack-plugin "^5.0.3" pnp-webpack-plugin "^1.6.4" postcss-loader "^3.0.0" postcss-preset-env "^6.7.0" react-dev-utils "^10.2.1" - react-helmet "^6.1.0" + react-helmet "^6.0.0-beta" react-loadable "^5.5.0" react-loadable-ssr-addon "^0.3.0" - react-router "^5.2.0" + react-router "^5.1.2" react-router-config "^5.1.1" - react-router-dom "^5.2.0" + react-router-dom "^5.1.2" resolve-pathname "^3.0.0" semver "^6.3.0" serve-handler "^6.1.3" @@ -1206,85 +1211,74 @@ std-env "^2.2.1" terser-webpack-plugin "^4.1.0" update-notifier "^4.1.0" - url-loader "^4.1.1" - wait-on "^5.2.0" + url-loader "^4.1.0" + wait-file "^1.0.5" webpack "^4.44.1" webpack-bundle-analyzer "^3.6.1" webpack-dev-server "^3.11.0" webpack-merge "^4.2.2" webpackbar "^4.0.0" -"@docusaurus/cssnano-preset@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-alpha.70.tgz" - integrity sha512-Zwk3SrlE5r/z5j/tjDcs4XoyeoyymCtEovoxLWLV7wb+iR1qb+Jdso4TRShAepbW/ff6SzjCZ8hRy8ahXPD9TA== - dependencies: - cssnano-preset-advanced "^4.0.7" - postcss "^7.0.2" - postcss-combine-duplicated-selectors "^9.1.0" - postcss-sort-media-queries "^1.7.26" - -"@docusaurus/mdx-loader@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-alpha.70.tgz" - integrity sha512-CDR4O4z7wO5/S8O3TAggCynnuBIGIlUT9q9uhhkDe8h5XDhF8n8d6bwqir0O+fUMN3EnyrMq6z1g4IDRB5G2vw== - dependencies: - "@babel/parser" "^7.12.5" - "@babel/traverse" "^7.12.5" - "@docusaurus/core" "2.0.0-alpha.70" - "@docusaurus/utils" "2.0.0-alpha.70" - "@mdx-js/mdx" "^1.6.21" - "@mdx-js/react" "^1.6.21" +"@docusaurus/mdx-loader@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-alpha.66.tgz#9d4b3bd038587118b7f6d6915ba6c04fdf3f3c5c" + integrity sha512-IvtrTNeAaynEGgfCbC4CeBgO76Mu76cGogBGv8a84bYeyCOtlxOJoH6JHkJ7T/v5D6lM16qzwx5oqesZ0kZuzA== + dependencies: + "@babel/parser" "^7.9.4" + "@babel/traverse" "^7.9.0" + "@docusaurus/core" "2.0.0-alpha.66" + "@docusaurus/utils" "2.0.0-alpha.66" + "@mdx-js/mdx" "^1.5.8" + "@mdx-js/react" "^1.5.8" escape-html "^1.0.3" - file-loader "^6.2.0" - fs-extra "^9.0.1" + file-loader "^6.0.0" + fs-extra "^8.1.0" github-slugger "^1.3.0" gray-matter "^4.0.2" - loader-utils "^2.0.0" + loader-utils "^1.2.3" mdast-util-to-string "^1.1.0" remark-emoji "^2.1.0" stringify-object "^3.3.0" unist-util-visit "^2.0.2" - url-loader "^4.1.1" - webpack "^4.44.1" - -"@docusaurus/plugin-content-blog@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-alpha.70.tgz" - integrity sha512-qWXlSDovkhCZLJR0Wz4e3YcNjlelpuSNkS1rJ8sI1ehs/n32lj7A/nVoRfS/LnOMfIciY48vVPr64VLb6dfEeg== - dependencies: - "@docusaurus/core" "2.0.0-alpha.70" - "@docusaurus/mdx-loader" "2.0.0-alpha.70" - "@docusaurus/types" "2.0.0-alpha.70" - "@docusaurus/utils" "2.0.0-alpha.70" - "@docusaurus/utils-validation" "2.0.0-alpha.70" + url-loader "^4.1.0" + +"@docusaurus/plugin-content-blog@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-alpha.66.tgz#278318aff3993c4a2b0487cc8343354086393ba8" + integrity sha512-voK5ZUZcUn5blIDakYNKQ42wPMZLfrZnvEJuwh/8S/W1oNbPN935NBu9vL23fHEmp9L2MGykAdaCmev0Su04yQ== + dependencies: + "@docusaurus/core" "2.0.0-alpha.66" + "@docusaurus/mdx-loader" "2.0.0-alpha.66" + "@docusaurus/types" "2.0.0-alpha.66" + "@docusaurus/utils" "2.0.0-alpha.66" + "@docusaurus/utils-validation" "2.0.0-alpha.66" + "@hapi/joi" "^17.1.1" chalk "^3.0.0" - feed "^4.2.1" - fs-extra "^9.0.1" + feed "^4.1.0" + fs-extra "^8.1.0" globby "^10.0.1" - joi "^17.2.1" loader-utils "^1.2.3" - lodash "^4.17.20" + lodash "^4.5.2" reading-time "^1.2.0" remark-admonitions "^1.2.1" webpack "^4.44.1" -"@docusaurus/plugin-content-docs@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-alpha.70.tgz" - integrity sha512-LZre12Q0sxLgi2XgjQbNQMV+jFG7v0+8hRzgBL+iCRiLCa4NlV7+M6mEHJGJJXSKqbfH7CelaUOESqEgPpVQXQ== - dependencies: - "@docusaurus/core" "2.0.0-alpha.70" - "@docusaurus/mdx-loader" "2.0.0-alpha.70" - "@docusaurus/types" "2.0.0-alpha.70" - "@docusaurus/utils" "2.0.0-alpha.70" - "@docusaurus/utils-validation" "2.0.0-alpha.70" +"@docusaurus/plugin-content-docs@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-alpha.66.tgz#ace6f69f090883da3b383138718eec08e0fae3c2" + integrity sha512-jvFKJR7BgjIq6xdmPg+7d2DS1fBeuIfmRTtB/apgfIW8NWO5N0DRYXOj0lgpw/ICwW//o8cLbrN+jkLlzTV/eg== + dependencies: + "@docusaurus/core" "2.0.0-alpha.66" + "@docusaurus/mdx-loader" "2.0.0-alpha.66" + "@docusaurus/types" "2.0.0-alpha.66" + "@docusaurus/utils" "2.0.0-alpha.66" + "@docusaurus/utils-validation" "2.0.0-alpha.66" + "@hapi/joi" "17.1.1" chalk "^3.0.0" execa "^3.4.0" - fs-extra "^9.0.1" + fs-extra "^8.1.0" globby "^10.0.1" - import-fresh "^3.2.2" - joi "^17.2.1" + import-fresh "^3.2.1" loader-utils "^1.2.3" lodash "^4.17.19" lodash.flatmap "^4.5.0" @@ -1297,180 +1291,162 @@ utility-types "^3.10.0" webpack "^4.44.1" -"@docusaurus/plugin-content-pages@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-alpha.70.tgz" - integrity sha512-HiFa5l1RDs155ATyYKkPtyIs/d6WJgSAyVfY5ji0Bsixp/K/Kh9YUZYMeTfeMIdhGYe3AAJz+PSZHYRpwTo1wA== - dependencies: - "@docusaurus/core" "2.0.0-alpha.70" - "@docusaurus/mdx-loader" "2.0.0-alpha.70" - "@docusaurus/types" "2.0.0-alpha.70" - "@docusaurus/utils" "2.0.0-alpha.70" - "@docusaurus/utils-validation" "2.0.0-alpha.70" +"@docusaurus/plugin-content-pages@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-alpha.66.tgz#2ae8a0340a1398647cc8a1c941eab15a3196e728" + integrity sha512-mY26Aeb/Wf+NFLy70YvXgdLTB+2iPN0SKOVKYwgg6ZN7Nm2kPwEpSVRq2iwiqlWk2G/vOM+ADm99Gxvm3kS61A== + dependencies: + "@docusaurus/core" "2.0.0-alpha.66" + "@docusaurus/mdx-loader" "2.0.0-alpha.66" + "@docusaurus/types" "2.0.0-alpha.66" + "@docusaurus/utils" "2.0.0-alpha.66" + "@docusaurus/utils-validation" "2.0.0-alpha.66" + "@hapi/joi" "17.1.1" globby "^10.0.1" - joi "^17.2.1" loader-utils "^1.2.3" - lodash "^4.17.19" minimatch "^3.0.4" remark-admonitions "^1.2.1" slash "^3.0.0" webpack "^4.44.1" -"@docusaurus/plugin-debug@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-alpha.70.tgz" - integrity sha512-h/x5KtS/YJerhY6C6sJOaP9gMaSVnjj1qZ6r9E/IFujQJ7bSKnk1unqBQpVXADkQhP081ENPL01ubc0/JbE1Mw== +"@docusaurus/plugin-debug@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-alpha.66.tgz#4f44c39d21c6e85c7c7a24279006323e7b7837a2" + integrity sha512-9AZaEUxaY0CDOCWXQMfY3TzG79HkquZlVeJOZaA6IvCoK/Oq3B58TMNLiQyA6TA2DYf5ZYQorLJaMd02x5qBQw== dependencies: - "@docusaurus/core" "2.0.0-alpha.70" - "@docusaurus/types" "2.0.0-alpha.70" - "@docusaurus/utils" "2.0.0-alpha.70" + "@docusaurus/core" "2.0.0-alpha.66" + "@docusaurus/types" "2.0.0-alpha.66" + "@docusaurus/utils" "2.0.0-alpha.66" react-json-view "^1.19.1" -"@docusaurus/plugin-google-analytics@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-alpha.70.tgz" - integrity sha512-Ah9W83ZnA0VvmflKNuGq5f/CaEjWJxhjkISQn09/ykEvXfWV33000Bhck4RoCr5YxD+GBEBT5suG5LKH7Qkigw== +"@docusaurus/plugin-google-analytics@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-alpha.66.tgz#ac494deb6d94c161dba760ee8221f007b60e83a4" + integrity sha512-HVWRLHtlQYpVqH3MHloUmktJMXt7oMDQzBlKzrwAMiWUK1oXFX35DrKjTt2SE2SADpObnwWFjo0E71YT0ApQLw== dependencies: - "@docusaurus/core" "2.0.0-alpha.70" + "@docusaurus/core" "2.0.0-alpha.66" -"@docusaurus/plugin-google-gtag@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-alpha.70.tgz" - integrity sha512-K3s894PqMPQnGXEZs0bSs2bRE3bVXFYSb/RN+K9sNd7zxGuOX4UytuvpXP+1r0Hj/YTwQIjj7AKsND0ZpDJHyw== +"@docusaurus/plugin-google-gtag@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-alpha.66.tgz#d780ea3ed91a065eb9cf4042fafbdd6a7e7c7d75" + integrity sha512-MVnzApLSQaC38nVS+A/WkXEV4kHeX6Q/KM2DqkLeovNWLBtkQ0aHL3bvn1clAEmB33Pia0v93mzG+I1+9mrquA== dependencies: - "@docusaurus/core" "2.0.0-alpha.70" + "@docusaurus/core" "2.0.0-alpha.66" -"@docusaurus/plugin-sitemap@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-alpha.70.tgz" - integrity sha512-ev9yNLPoeHP03jTz67daGd7yA7YhUwHeoWz14SyiKuU7OYtwL/8SJTn/V5kMDRl7o8FRQt9T//mRkpa270hmXw== +"@docusaurus/plugin-sitemap@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-alpha.66.tgz#afb96066e5b51c2bb3b67ac5d9d13802be5b1d0c" + integrity sha512-ztDevVIREyq8g+QhSGpDqscVqtubcPnEE3a4JwWSALQ2D6JscIxg897axwZSZNUMxrHBuXRjOEYOtVb/O/stVg== dependencies: - "@docusaurus/core" "2.0.0-alpha.70" - "@docusaurus/types" "2.0.0-alpha.70" - fs-extra "^9.0.1" - joi "^17.2.1" + "@docusaurus/core" "2.0.0-alpha.66" + "@docusaurus/types" "2.0.0-alpha.66" + "@hapi/joi" "17.1.1" + fs-extra "^8.1.0" sitemap "^3.2.2" -"@docusaurus/preset-classic@^2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-alpha.70.tgz" - integrity sha512-Zx98KryJjHiqzGisWKR0glXl0HXuf/YbcK9yUl6ySyS+6cIMAuGMS0HGLgbvvEmYjywz7nMLpijzGderEOihjQ== - dependencies: - "@docusaurus/core" "2.0.0-alpha.70" - "@docusaurus/plugin-content-blog" "2.0.0-alpha.70" - "@docusaurus/plugin-content-docs" "2.0.0-alpha.70" - "@docusaurus/plugin-content-pages" "2.0.0-alpha.70" - "@docusaurus/plugin-debug" "2.0.0-alpha.70" - "@docusaurus/plugin-google-analytics" "2.0.0-alpha.70" - "@docusaurus/plugin-google-gtag" "2.0.0-alpha.70" - "@docusaurus/plugin-sitemap" "2.0.0-alpha.70" - "@docusaurus/theme-classic" "2.0.0-alpha.70" - "@docusaurus/theme-search-algolia" "2.0.0-alpha.70" - -"@docusaurus/theme-classic@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-alpha.70.tgz" - integrity sha512-lKU+fgSd08fo3LNYTw31Wty7RgAdFm8bEOwBNkKZcCFnatTSG4qyDbrDZclCQT/SpXSv9XIEKUc0irg2IH6Qrg== - dependencies: - "@docusaurus/core" "2.0.0-alpha.70" - "@docusaurus/plugin-content-blog" "2.0.0-alpha.70" - "@docusaurus/plugin-content-docs" "2.0.0-alpha.70" - "@docusaurus/plugin-content-pages" "2.0.0-alpha.70" - "@docusaurus/theme-common" "2.0.0-alpha.70" - "@docusaurus/types" "2.0.0-alpha.70" - "@docusaurus/utils" "2.0.0-alpha.70" - "@docusaurus/utils-validation" "2.0.0-alpha.70" - "@mdx-js/mdx" "^1.6.21" - "@mdx-js/react" "^1.6.21" +"@docusaurus/preset-classic@^2.0.0-alpha.63": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-alpha.66.tgz#02db88bd1faea52ebc4cd56dd85c5249bd90bab8" + integrity sha512-FjxjchzUS6vOUSr9Pc5kqOSQAnc+cAYsR4pTlqwD2uOJcZMr2vQ6jeKbJnhEmUYwAvzdKOVnCndnxbA+Ii8L3w== + dependencies: + "@docusaurus/core" "2.0.0-alpha.66" + "@docusaurus/plugin-content-blog" "2.0.0-alpha.66" + "@docusaurus/plugin-content-docs" "2.0.0-alpha.66" + "@docusaurus/plugin-content-pages" "2.0.0-alpha.66" + "@docusaurus/plugin-debug" "2.0.0-alpha.66" + "@docusaurus/plugin-google-analytics" "2.0.0-alpha.66" + "@docusaurus/plugin-google-gtag" "2.0.0-alpha.66" + "@docusaurus/plugin-sitemap" "2.0.0-alpha.66" + "@docusaurus/theme-classic" "2.0.0-alpha.66" + "@docusaurus/theme-search-algolia" "2.0.0-alpha.66" + +"@docusaurus/theme-classic@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-alpha.66.tgz#45318a28751cadf59105e8ddb648ac2d1632af9a" + integrity sha512-WsWqzfzA2gIF5TUMGSbiAeDeNZtKvsgymTQzalcwyhyT/QI0ywcag+03Bmjeq4H3PTC3qU+tkhddO2Rh5w/YCw== + dependencies: + "@docusaurus/core" "2.0.0-alpha.66" + "@docusaurus/plugin-content-blog" "2.0.0-alpha.66" + "@docusaurus/plugin-content-docs" "2.0.0-alpha.66" + "@docusaurus/plugin-content-pages" "2.0.0-alpha.66" + "@docusaurus/types" "2.0.0-alpha.66" + "@docusaurus/utils-validation" "2.0.0-alpha.66" + "@hapi/joi" "^17.1.1" + "@mdx-js/mdx" "^1.5.8" + "@mdx-js/react" "^1.5.8" "@types/react-toggle" "^4.0.2" clsx "^1.1.1" copy-text-to-clipboard "^2.2.0" - infima "0.2.0-alpha.18" - joi "^17.2.1" + infima "0.2.0-alpha.13" lodash "^4.17.19" - parse-numeric-range "^1.2.0" - prism-react-renderer "^1.1.1" - prismjs "^1.22.0" + parse-numeric-range "^0.0.2" + prism-react-renderer "^1.1.0" + prismjs "^1.20.0" prop-types "^15.7.2" - react-router-dom "^5.2.0" + react-router-dom "^5.1.2" react-toggle "^4.1.1" -"@docusaurus/theme-common@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-alpha.70.tgz" - integrity sha512-Ge/dLGPCJhtyvumSMg0BlWcF00d1Qd2KnHf8kL/0nTxe257yNTHIOK95LKhIPAdcVgxG+ge9N0XcBm4KaubASQ== - dependencies: - "@docusaurus/core" "2.0.0-alpha.70" - "@docusaurus/plugin-content-blog" "2.0.0-alpha.70" - "@docusaurus/plugin-content-docs" "2.0.0-alpha.70" - "@docusaurus/plugin-content-pages" "2.0.0-alpha.70" - "@docusaurus/types" "2.0.0-alpha.70" - -"@docusaurus/theme-live-codeblock@^2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/theme-live-codeblock/-/theme-live-codeblock-2.0.0-alpha.70.tgz" - integrity sha512-9fFC6MeazqmfzbnKgUFDiKmF1Zs5rG4CXCsxDcNbu/XZMd2xMrI5UlQfo+yfNAKX2aWvjaqThLfxRkJzI2guIA== +"@docusaurus/theme-live-codeblock@^2.0.0-alpha.63": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-live-codeblock/-/theme-live-codeblock-2.0.0-alpha.66.tgz#25a2ad68499963752ab1451acfab855a56454cfe" + integrity sha512-EHDvl5vwZat2N87GuC08PfyB+aMCmH5ngw09fZJXwH4zvkloV67n2GShl7/B0GY6MD4od9QqCZ8tr5eNKqPLkQ== dependencies: - "@docusaurus/core" "2.0.0-alpha.70" + "@docusaurus/core" "2.0.0-alpha.66" "@philpl/buble" "^0.19.7" clsx "^1.1.1" - parse-numeric-range "^1.2.0" - prism-react-renderer "^1.1.1" - react-live "^2.2.3" - -"@docusaurus/theme-search-algolia@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-alpha.70.tgz" - integrity sha512-xuoWZ+HUKzn1A5vPlNZM8mtyRL5uo15o34OX/i7HkTRmBVymWO1bBE0lECfDVJU2JUYGmwjpDXhZzNLDZmZRWg== - dependencies: - "@docsearch/react" "^3.0.0-alpha.31" - "@docusaurus/core" "2.0.0-alpha.70" - "@docusaurus/theme-common" "2.0.0-alpha.70" - "@docusaurus/utils" "2.0.0-alpha.70" + parse-numeric-range "^0.0.2" + prism-react-renderer "^1.1.0" + react-live "^2.2.1" + +"@docusaurus/theme-search-algolia@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-alpha.66.tgz#a808c8618523f473c85c691ea62388688de5e32a" + integrity sha512-5k/Fwt81Gyjv9vPE+gO8mraEHx5IqEmHLwqld5yXj7yix5XrxywkaanHqC0cFJG4MFUBgF6vNjJC8CtfLnT4Tw== + dependencies: + "@docsearch/react" "^1.0.0-alpha.27" + "@docusaurus/core" "2.0.0-alpha.66" + "@docusaurus/utils" "2.0.0-alpha.66" + "@hapi/joi" "^17.1.1" algoliasearch "^4.0.0" algoliasearch-helper "^3.1.1" clsx "^1.1.1" - eta "^1.11.0" - joi "^17.2.1" + eta "^1.1.1" lodash "^4.17.19" -"@docusaurus/types@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-alpha.70.tgz" - integrity sha512-QoHmMiJhRDq5P/4o3eUIiJebdwRjShFlal01DST5B8MZo4k0ogl57FNHqJvIHc93NgonZzFlvC/auLlBnc/d4Q== +"@docusaurus/types@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-alpha.66.tgz#192b166cb62fe85e0218f01e3c8272e2986b5086" + integrity sha512-Zd2Kguw0+3faifr83ruIV4i/+KqfqM+zK3DpqCBxdtkP+ORLKbgsIQ48fJ40OOhQrvl38Ay4E+1w7USrrkj4Qg== dependencies: "@types/webpack" "^4.41.0" commander "^4.0.1" querystring "0.2.0" webpack-merge "^4.2.2" -"@docusaurus/utils-validation@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-alpha.70.tgz" - integrity sha512-GJonaRjiJtlCk1+RfKA9f0YwRsSRGFMVbl6DrFidTgs4FmRb0hQsN4fnllsBvBJtbDZYwPTQ3T7c4cKJ/Ll7bQ== +"@docusaurus/utils-validation@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-alpha.66.tgz#e888332ceb3339fc7e06a2d1d0311f4346747598" + integrity sha512-vlenwY3THondey21x1qAUZyDz9qiG7ec2CBM9HgY1Ns8XhrKah9zz7TEGXjqM9lhqMQQRkvcCcveti9EXR0fcA== dependencies: - "@docusaurus/utils" "2.0.0-alpha.70" + "@docusaurus/utils" "2.0.0-alpha.66" + "@hapi/joi" "17.1.1" chalk "^3.0.0" - joi "^17.2.1" -"@docusaurus/utils@2.0.0-alpha.70": - version "2.0.0-alpha.70" - resolved "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-alpha.70.tgz" - integrity sha512-xNSUcE7fGcneH00CPCEY0SP5V7H6pLEcu620UiU/m1367tCMsmv+MZcnII2ACcjAtvhjS22v/KLippM3VeTXqQ== +"@docusaurus/utils@2.0.0-alpha.66": + version "2.0.0-alpha.66" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-alpha.66.tgz#ef679896e7d7e536cc8196cc303f5f2ced1f5ebb" + integrity sha512-47jGB+Z3YVM6Xf1hxyNbJLMmc1qoTLmfwSf7NseKSkpjucbc5Ueivr+oVYp5yWoZw5sT5bObmdJYfJoD/RrbOg== dependencies: - "@docusaurus/types" "2.0.0-alpha.70" - chalk "^3.0.0" escape-string-regexp "^2.0.0" - fs-extra "^9.0.1" + fs-extra "^8.1.0" gray-matter "^4.0.2" - lodash "^4.17.20" lodash.camelcase "^4.3.0" lodash.kebabcase "^4.1.1" resolve-pathname "^3.0.0" "@endiliey/static-site-generator-webpack-plugin@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@endiliey/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@endiliey/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.0.tgz#94bfe58fd83aeda355de797fcb5112adaca3a6b1" integrity sha512-3MBqYCs30qk1OBRC697NqhGouYbs71D1B8hrk/AFJC6GwF2QaJOQZtA1JYAaGSe650sZ8r5ppRTtCRXepDWlng== dependencies: bluebird "^3.7.1" @@ -1479,48 +1455,127 @@ url "^0.11.0" webpack-sources "^1.4.3" -"@fortawesome/fontawesome-common-types@^0.2.34": - version "0.2.34" - resolved "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.34.tgz" - integrity sha512-XcIn3iYbTEzGIxD0/dY5+4f019jIcEIWBiHc3KrmK/ROahwxmZ/s+tdj97p/5K0klz4zZUiMfUlYP0ajhSJjmA== +"@fortawesome/fontawesome-common-types@^0.2.32": + version "0.2.32" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz#3436795d5684f22742989bfa08f46f50f516f259" + integrity sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w== -"@fortawesome/fontawesome-svg-core@^1.2.34": - version "1.2.34" - resolved "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.34.tgz" - integrity sha512-0KNN0nc5eIzaJxlv43QcDmTkDY1CqeN6J7OCGSs+fwGPdtv0yOQqRjieopBCmw+yd7uD3N2HeNL3Zm5isDleLg== +"@fortawesome/fontawesome-svg-core@^1.2.32": + version "1.2.32" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz#da092bfc7266aa274be8604de610d7115f9ba6cf" + integrity sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ== dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.34" + "@fortawesome/fontawesome-common-types" "^0.2.32" -"@fortawesome/free-solid-svg-icons@^5.15.2": - version "5.15.2" - resolved "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.2.tgz" - integrity sha512-ZfCU+QjaFsdNZmOGmfqEWhzI3JOe37x5dF4kz9GeXvKn/sTxhqMtZ7mh3lBf76SvcYY5/GKFuyG7p1r4iWMQqw== +"@fortawesome/free-solid-svg-icons@^5.15.1": + version "5.15.1" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz#e1432676ddd43108b41197fee9f86d910ad458ef" + integrity sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg== dependencies: - "@fortawesome/fontawesome-common-types" "^0.2.34" + "@fortawesome/fontawesome-common-types" "^0.2.32" -"@fortawesome/react-fontawesome@^0.1.14": - version "0.1.14" - resolved "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.14.tgz" - integrity sha512-4wqNb0gRLVaBm/h+lGe8UfPPivcbuJ6ecI4hIgW0LjI7kzpYB9FkN0L9apbVzg+lsBdcTf0AlBtODjcSX5mmKA== +"@fortawesome/react-fontawesome@^0.1.11": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.12.tgz#fbdea86e8b73032895e6ded1ee1dbb1874902d1a" + integrity sha512-kV6HtqotM3K4YIXlTVvomuIi6QgGCvYm++ImyEx2wwgmSppZ6kbbA29ASwjAUBD63j2OFU0yoxeXpZkjrrX0qQ== dependencies: prop-types "^15.7.2" +"@francoischalifour/autocomplete-core@^1.0.0-alpha.28": + version "1.0.0-alpha.28" + resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-core/-/autocomplete-core-1.0.0-alpha.28.tgz#6b9d8491288e77f831e9b345d461623b0d3f5005" + integrity sha512-rL9x+72btViw+9icfBKUJjZj87FgjFrD2esuTUqtj4RAX3s4AuVZiN8XEsfjQBSc6qJk31cxlvqZHC/BIyYXgg== + +"@francoischalifour/autocomplete-preset-algolia@^1.0.0-alpha.28": + version "1.0.0-alpha.28" + resolved "https://registry.yarnpkg.com/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.28.tgz#a5ad7996f42e43e4acbb4e0010d663746d0e9997" + integrity sha512-bprfNmYt1opFUFEtD2XfY/kEsm13bzHQgU80uMjhuK0DJ914IjolT1GytpkdM6tJ4MBvyiJPP+bTtWO+BZ7c7w== + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/address@^4.0.1": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-4.1.0.tgz#d60c5c0d930e77456fdcde2598e77302e2955e1d" + integrity sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/formula@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-2.0.0.tgz#edade0619ed58c8e4f164f233cda70211e787128" + integrity sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + "@hapi/hoek@^9.0.0": - version "9.1.1" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz" - integrity sha512-CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw== + version "9.1.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.0.tgz#6c9eafc78c1529248f8f4d92b0799a712b6052c6" + integrity sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw== + +"@hapi/joi@17.1.1", "@hapi/joi@^17.1.1": + version "17.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-17.1.1.tgz#9cc8d7e2c2213d1e46708c6260184b447c661350" + integrity sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg== + dependencies: + "@hapi/address" "^4.0.1" + "@hapi/formula" "^2.0.0" + "@hapi/hoek" "^9.0.0" + "@hapi/pinpoint" "^2.0.0" + "@hapi/topo" "^5.0.0" + +"@hapi/joi@^15.1.0": + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-2.0.0.tgz#805b40d4dbec04fc116a73089494e00f073de8df" + integrity sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw== + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" "@hapi/topo@^5.0.0": version "5.0.0" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7" integrity sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw== dependencies: "@hapi/hoek" "^9.0.0" -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== +"@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^13.0.0" + +"@jest/types@^26.6.1": + version "26.6.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.1.tgz#2638890e8031c0bc8b4681e0357ed986e2f866c5" + integrity sha512-ywHavIKNpAVrStiRY5wiyehvcktpijpItvGiK72RAn5ctqmzvPk8OvKnvHeBqa1XdQr959CTWAJMqxI8BTibyg== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" @@ -1528,63 +1583,87 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@ledgerhq/devices@^5.43.0": - version "5.43.0" - resolved "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.43.0.tgz" - integrity sha512-/M5ZLUBdBK7Vl2T4yNJbES3Z4w55LbPdxD9rcOBAKH/5V3V0obQv6MUasP9b7DSkwGSSLCOGZLohoT2NxK2D2A== +"@ledgerhq/devices@^5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.28.0.tgz#e02ef8f98865b6fd46ad90d6d40d8112ccfc14cf" + integrity sha512-Tkygc1nfioxfv4YWF5VGHito3ZHQAiNM7YV+Kqr3n/gz4meT5f9DfvqvikTF5XxX+mXpCMc4IlzwbUAoeNOHiQ== dependencies: - "@ledgerhq/errors" "^5.43.0" - "@ledgerhq/logs" "^5.43.0" + "@ledgerhq/errors" "^5.28.0" + "@ledgerhq/logs" "^5.28.0" rxjs "^6.6.3" - semver "^7.3.4" -"@ledgerhq/errors@^5.34.0", "@ledgerhq/errors@^5.43.0": - version "5.43.0" - resolved "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.43.0.tgz" - integrity sha512-ZjKlUQbIn/DHXAefW3Y1VyDrlVhVqqGnXzrqbOXuDbZ2OAIfSe/A1mrlCbWt98jP/8EJQBuCzBOtnmpXIL/nYg== +"@ledgerhq/errors@^5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.28.0.tgz#117f36d3f9aa7388de31a1d633c3e99ccba0b175" + integrity sha512-dNBVriJbdiTerT7I102sAMBxuJqmuMCQSfIdQ+3euvb+2Fx7UPM/w9RHZ0HZGsz/SdeBblWAH0aIQmtDX/vW9g== + +"@ledgerhq/hw-transport-node-hid-noevents@^5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.28.0.tgz#fad766b876e4299b47ea3838370e78b21db486cb" + integrity sha512-NPxrY0YLfT9fDL5KXY4jIwKPXjpOOS5XEUDYuvfRQLg7yGeDsn9tJbbkP/8FKOap+oKFXCkgOl9rs0VU2khYqg== + dependencies: + "@ledgerhq/devices" "^5.28.0" + "@ledgerhq/errors" "^5.28.0" + "@ledgerhq/hw-transport" "^5.28.0" + "@ledgerhq/logs" "^5.28.0" + node-hid "1.3.0" + +"@ledgerhq/hw-transport-node-hid@^5.25.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.28.0.tgz#9692b97bbf1dba370fa1a38b3079096ed02bfc78" + integrity sha512-ZCOsJs4PL4ndXiyZY++W8als10ARfObE20N92j+/ikvwU5bHjbSFOnoRK23xNj9NawO7aCm0F8ftCrZfYOSq/Q== + dependencies: + "@ledgerhq/devices" "^5.28.0" + "@ledgerhq/errors" "^5.28.0" + "@ledgerhq/hw-transport" "^5.28.0" + "@ledgerhq/hw-transport-node-hid-noevents" "^5.28.0" + "@ledgerhq/logs" "^5.28.0" + lodash "^4.17.20" + node-hid "1.3.0" + usb "^1.6.3" "@ledgerhq/hw-transport-u2f@^5.28.0": - version "5.34.0" - resolved "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.34.0.tgz" - integrity sha512-EM6LcbdD6Xo/msedbAWalBZlv89XAZrAZwL5zN9eKlUcWPjjG8c9+t5NedR/jmIaGuzIUVseUCIRxczqd5byOw== + version "5.28.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.28.0.tgz#dc08d42203de1b3328b5c973628bbf39634a9f47" + integrity sha512-p/4CB+Sf5c1pLUjVWnHCm6Ll6atratfWlgFSmqt8yRxxejB5mwlK+4HkX8Tq4wgooZe2PqDuVTdFxGwiq4nAeg== dependencies: - "@ledgerhq/errors" "^5.34.0" - "@ledgerhq/hw-transport" "^5.34.0" - "@ledgerhq/logs" "^5.30.0" + "@ledgerhq/errors" "^5.28.0" + "@ledgerhq/hw-transport" "^5.28.0" + "@ledgerhq/logs" "^5.28.0" u2f-api "0.2.7" -"@ledgerhq/hw-transport@^5.34.0", "@ledgerhq/hw-transport@^5.41.0": - version "5.43.0" - resolved "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.43.0.tgz" - integrity sha512-0S+TGmiEJOqgM2MWnolZQPVKU3oRtoDj4yUFUZts9Owbgby+hmo4dIKTvv0vs8mwknQbOZByUgh3MQOQiK70MQ== +"@ledgerhq/hw-transport@^5.25.0", "@ledgerhq/hw-transport@^5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.28.0.tgz#69a2572a38a3a2bb16b9f14352f0d6a8b36b1ea3" + integrity sha512-dQm45axzWSJhiaDB2csBCFPH/PGjE8kB+3uSeoUJ752FqgndZgrN9UKOPPxcmaf69jnQeTZAFEWc8g63yMPYOg== dependencies: - "@ledgerhq/devices" "^5.43.0" - "@ledgerhq/errors" "^5.43.0" + "@ledgerhq/devices" "^5.28.0" + "@ledgerhq/errors" "^5.28.0" events "^3.2.0" -"@ledgerhq/logs@^5.30.0", "@ledgerhq/logs@^5.43.0": - version "5.43.0" - resolved "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.43.0.tgz" - integrity sha512-QWfQjea3ekh9ZU+JeL2tJC9cTKLZ/JrcS0JGatLejpRYxQajvnHvHfh0dbHOKXEaXfCskEPTZ3f1kzuts742GA== +"@ledgerhq/logs@^5.28.0": + version "5.28.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.28.0.tgz#bbbd54598fbf9436e02d3b5033c9151fc465295a" + integrity sha512-O+p30yQCJVMHkYRt4mEy2My61JNTyqg9FEs9ZmXXPvXbod85snD6oGaKtDtcvbWCYjiaQt4alD+w/J56hkNBWQ== -"@mdx-js/mdx@^1.6.21": - version "1.6.22" - resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz" - integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== +"@mdx-js/mdx@^1.5.8": + version "1.6.19" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.19.tgz#a89522f53d0712691115b301a4fbd04933714a6f" + integrity sha512-L3eLhEFnV/2bcb9XwOegsRmLHd1oEDQPtTBVezhptQ5U1YM+/WQNzx1apjzVTAyukwOanUXnTUMjRUtqJNgFCg== dependencies: - "@babel/core" "7.12.9" - "@babel/plugin-syntax-jsx" "7.12.1" + "@babel/core" "7.11.6" + "@babel/plugin-syntax-jsx" "7.10.4" "@babel/plugin-syntax-object-rest-spread" "7.8.3" - "@mdx-js/util" "1.6.22" - babel-plugin-apply-mdx-type-prop "1.6.22" - babel-plugin-extract-import-names "1.6.22" + "@mdx-js/util" "1.6.19" + babel-plugin-apply-mdx-type-prop "1.6.19" + babel-plugin-extract-import-names "1.6.19" camelcase-css "2.0.1" - detab "2.0.4" + detab "2.0.3" hast-util-raw "6.0.1" lodash.uniq "4.5.0" - mdast-util-to-hast "10.0.1" + mdast-util-to-hast "9.1.1" remark-footnotes "2.0.0" - remark-mdx "1.6.22" + remark-mdx "1.6.19" remark-parse "8.0.3" remark-squeeze-paragraphs "4.0.0" style-to-object "0.3.0" @@ -1592,61 +1671,60 @@ unist-builder "2.0.3" unist-util-visit "2.0.3" -"@mdx-js/react@^1.6.21": - version "1.6.22" - resolved "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz" - integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== +"@mdx-js/react@^1.5.8": + version "1.6.19" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.19.tgz#fce0f2b802804258b67817550bf3186dde2b1bd6" + integrity sha512-RS37Tagqyp2R0XFPoUZeSbZC5uJQRPhqOHWeT1LEwxESjMWb3VORHz7E827ldeQr3UW6VEQEyq/THegu+bLj6A== -"@mdx-js/util@1.6.22": - version "1.6.22" - resolved "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz" - integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== +"@mdx-js/util@1.6.19": + version "1.6.19" + resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.19.tgz#5d4d8f66536d6653963ab2600490b52c3df546be" + integrity sha512-bkkQNSHz3xSr3KRHUQ2Qk2XhewvvXAOUqjIUKwcQuL4ijOA4tUHZfUgXExi5CpMysrX7izcsyICtXjZHlfJUjg== "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" - resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== dependencies: call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nodelib/fs.scandir@2.1.4": - version "2.1.4" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz" - integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== dependencies: - "@nodelib/fs.stat" "2.0.4" + "@nodelib/fs.stat" "2.0.3" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": - version "2.0.4" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz" - integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== "@nodelib/fs.stat@^1.1.2": version "1.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@nodelib/fs.walk@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz" - integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== dependencies: - "@nodelib/fs.scandir" "2.1.4" + "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" "@npmcli/move-file@^1.0.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.1.tgz" - integrity sha512-LtWTicuF2wp7PNTuyCwABx7nNG+DnzSE8gN0iWxkC6mpgm/iOPu0ZMTkXuCxmJxtWFsDxUaixM9COSNJEMUfuQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" + integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== dependencies: mkdirp "^1.0.4" - rimraf "^3.0.2" "@philpl/buble@^0.19.7": version "0.19.7" - resolved "https://registry.npmjs.org/@philpl/buble/-/buble-0.19.7.tgz" + resolved "https://registry.yarnpkg.com/@philpl/buble/-/buble-0.19.7.tgz#27231e6391393793b64bc1c982fc7b593198b893" integrity sha512-wKTA2DxAGEW+QffRQvOhRQ0VBiYU2h2p8Yc1oBNlqSKws48/8faxqKNIuub0q4iuyTuLwtB8EkwiKwhlfV1PBA== dependencies: acorn "^6.1.1" @@ -1659,72 +1737,55 @@ os-homedir "^1.0.1" regexpu-core "^4.5.4" -"@sideway/address@^4.1.0": - version "4.1.1" - resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz" - integrity sha512-+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz" - integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - "@sindresorhus/is@^0.14.0": version "0.14.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== "@svgr/babel-plugin-add-jsx-attribute@^5.4.0": version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== "@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== "@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": version "5.0.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== "@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": version "5.0.1" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== "@svgr/babel-plugin-svg-dynamic-title@^5.4.0": version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== "@svgr/babel-plugin-svg-em-dimensions@^5.4.0": version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== "@svgr/babel-plugin-transform-react-native-svg@^5.4.0": version "5.4.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== -"@svgr/babel-plugin-transform-svg-component@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz" - integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== +"@svgr/babel-plugin-transform-svg-component@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz#a2212b4d018e6075a058bb7e220a66959ef7a03c" + integrity sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A== -"@svgr/babel-preset@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz" - integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== +"@svgr/babel-preset@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.4.0.tgz#da21854643e1c4ad2279239baa7d5a8b128c1f15" + integrity sha512-Gyx7cCxua04DBtyILTYdQxeO/pwfTBev6+eXTbVbxe4HTGhOUW6yo7PSbG2p6eJMl44j6XSequ0ZDP7bl0nu9A== dependencies: "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" @@ -1733,198 +1794,199 @@ "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" - "@svgr/babel-plugin-transform-svg-component" "^5.5.0" + "@svgr/babel-plugin-transform-svg-component" "^5.4.0" -"@svgr/core@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz" - integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== +"@svgr/core@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.4.0.tgz#655378ee43679eb94fee3d4e1976e38252dff8e7" + integrity sha512-hWGm1DCCvd4IEn7VgDUHYiC597lUYhFau2lwJBYpQWDirYLkX4OsXu9IslPgJ9UpP7wsw3n2Ffv9sW7SXJVfqQ== dependencies: - "@svgr/plugin-jsx" "^5.5.0" - camelcase "^6.2.0" - cosmiconfig "^7.0.0" + "@svgr/plugin-jsx" "^5.4.0" + camelcase "^6.0.0" + cosmiconfig "^6.0.0" -"@svgr/hast-util-to-babel-ast@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz" - integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== +"@svgr/hast-util-to-babel-ast@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz#bb5d002e428f510aa5b53ec0a02377a95b367715" + integrity sha512-+U0TZZpPsP2V1WvVhqAOSTk+N+CjYHdZx+x9UBa1eeeZDXwH8pt0CrQf2+SvRl/h2CAPRFkm+Ey96+jKP8Bsgg== dependencies: - "@babel/types" "^7.12.6" + "@babel/types" "^7.9.5" -"@svgr/plugin-jsx@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz" - integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== +"@svgr/plugin-jsx@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz#ab47504c55615833c6db70fca2d7e489f509787c" + integrity sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw== dependencies: - "@babel/core" "^7.12.3" - "@svgr/babel-preset" "^5.5.0" - "@svgr/hast-util-to-babel-ast" "^5.5.0" + "@babel/core" "^7.7.5" + "@svgr/babel-preset" "^5.4.0" + "@svgr/hast-util-to-babel-ast" "^5.4.0" svg-parser "^2.0.2" -"@svgr/plugin-svgo@^5.5.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz" - integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== +"@svgr/plugin-svgo@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.4.0.tgz#45d9800b7099a6f7b4d85ebac89ab9abe8592f64" + integrity sha512-3Cgv3aYi1l6SHyzArV9C36yo4kgwVdF3zPQUC6/aCDUeXAofDYwE5kk3e3oT5ZO2a0N3lB+lLGvipBG6lnG8EA== dependencies: - cosmiconfig "^7.0.0" - deepmerge "^4.2.2" + cosmiconfig "^6.0.0" + merge-deep "^3.0.2" svgo "^1.2.2" "@svgr/webpack@^5.4.0": - version "5.5.0" - resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz" - integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== - dependencies: - "@babel/core" "^7.12.3" - "@babel/plugin-transform-react-constant-elements" "^7.12.1" - "@babel/preset-env" "^7.12.1" - "@babel/preset-react" "^7.12.5" - "@svgr/core" "^5.5.0" - "@svgr/plugin-jsx" "^5.5.0" - "@svgr/plugin-svgo" "^5.5.0" + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.4.0.tgz#b68bc86e29cf007292b96ced65f80971175632e0" + integrity sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg== + dependencies: + "@babel/core" "^7.9.0" + "@babel/plugin-transform-react-constant-elements" "^7.9.0" + "@babel/preset-env" "^7.9.5" + "@babel/preset-react" "^7.9.4" + "@svgr/core" "^5.4.0" + "@svgr/plugin-jsx" "^5.4.0" + "@svgr/plugin-svgo" "^5.4.0" loader-utils "^2.0.0" "@szmarczak/http-timer@^1.1.2": version "1.1.2" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: defer-to-connect "^1.0.1" -"@taquito/beacon-wallet@^8.1.0-beta-RC.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/beacon-wallet/-/beacon-wallet-8.1.1.tgz#0682fa7f95f5336998c5899182dc69d42684c7f6" - integrity sha512-QGV8dW7gPYoaaKMvZFW7v438rxU5BWj4v7QFM0ZYZdxWG6w7NNEBwpUu1unUcntMPbVW3ZFLVSCZXTx8nfqkOQ== +"@taquito/beacon-wallet@7.1.0-preview.1": + version "7.1.0-preview.1" + resolved "https://registry.yarnpkg.com/@taquito/beacon-wallet/-/beacon-wallet-7.1.0-preview.1.tgz#6c1034e434812d5b2a6a39f9683cf174fd25ba7e" + integrity sha512-IGtawP1+L/N+ld5nWrSrNBUotl9xsRavQVi6wAmZOZxLs2WCiAb/Av0krMQh8mDrNO3z20aWA+Ocp6f/ahgUWw== dependencies: - "@airgap/beacon-sdk" "^2.2.3" - "@taquito/taquito" "^8.1.1" - "@taquito/utils" "^8.1.0" + "@airgap/beacon-sdk" "^2.0.0-beta.12" + "@taquito/taquito" "^7.1.0-preview.1" + "@taquito/utils" "^7.1.0-preview.1" -"@taquito/http-utils@^8.1.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-8.1.1.tgz#62eb983a6e9c1a2f1806327b8c7b6f6dec00024c" - integrity sha512-fSoi1hW2rFMeyjTMm3lGaKpWmtlWK+vbXocgPS7aSZGmTon67aE2RRjjc1ZlfBORWxvbLYuttDW5GypLSxkf7w== +"@taquito/http-utils@^7.1.0-preview-lambdaview.0", "@taquito/http-utils@^7.1.0-preview.1": + version "7.1.0-preview-lambdaview.0" + resolved "https://registry.yarnpkg.com/@taquito/http-utils/-/http-utils-7.1.0-preview-lambdaview.0.tgz#55219aaae2ff588e3d39778a99ad9440b7b85608" + integrity sha512-mHmtIOZUmDKlL1OV/9Xbxo0ipZGqNjwasJLdSyDjaoMWY2F+X/m4tQWqyPZZ4lSYxKgoaHs+rS37KZbweTqykA== dependencies: xhr2-cookies "^1.1.0" -"@taquito/ledger-signer@^8.1.0-beta-RC.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/ledger-signer/-/ledger-signer-8.1.1.tgz#cf678fba5bb875a13bacaf4987bf8a431d7f21ce" - integrity sha512-KkeJ0r8lyJuFR0O+7T6Z/G+mNeApI3KPL26p0PHKhjU93KuipMB6bjc5f67uVoJ85Ke8CTMPi+rJEpJpIN1iXg== +"@taquito/ledger-signer@7.1.0-preview.1": + version "7.1.0-preview.1" + resolved "https://registry.yarnpkg.com/@taquito/ledger-signer/-/ledger-signer-7.1.0-preview.1.tgz#9ddc5368c47e4d69b208a4d92a2bdc367fe4652a" + integrity sha512-+N0hmaZds7Qoy5wBBYFgDsBaQC57++50RwWH2lOmJ4yw2Qh4H+2qV+s63G1XudQHDyqTAsFRgJiSXM6ELoYRAA== dependencies: - "@ledgerhq/hw-transport" "^5.41.0" - "@taquito/taquito" "^8.1.1" - "@taquito/utils" "^8.1.0" - "@types/jest" "^26.0.16" + "@ledgerhq/hw-transport" "^5.25.0" + "@ledgerhq/hw-transport-node-hid" "^5.25.0" + "@taquito/taquito" "^7.1.0-preview.1" + "@taquito/utils" "^7.1.0-preview.1" + "@types/jest" "^26.0.14" buffer "^5.6.0" libsodium-wrappers "^0.7.8" -"@taquito/michel-codec@^8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/michel-codec/-/michel-codec-8.1.1.tgz#23ba8255215db72c60e0f52ff1616cf9830c6aa5" - integrity sha512-Clp6LfFVxXuLIUTdMi0XK7lnPBhrj9p8XIismf1Gobg/nxqMCW5idWAprl4f3ickpOzlNLm8UHjCs4aUee1GiQ== +"@taquito/michel-codec@^7.1.0-preview-lambdaview.0", "@taquito/michel-codec@^7.1.0-preview.1": + version "7.1.0-preview-lambdaview.0" + resolved "https://registry.yarnpkg.com/@taquito/michel-codec/-/michel-codec-7.1.0-preview-lambdaview.0.tgz#514e9d1a2a567940edcd5e5ef6af2d437b72afdb" + integrity sha512-0wka0USOtM9qBvLVpszVJIvgW3/qyqe92GFPQjeEUl8uHExgMk/ShnB/kxcKnWaH08aO2LF7Mad/dkQkcxAoxA== -"@taquito/michelson-encoder@^8.1.0-beta-RC.0", "@taquito/michelson-encoder@^8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/michelson-encoder/-/michelson-encoder-8.1.1.tgz#153e45cb90028a13aa2f18571185e93047dcb3be" - integrity sha512-5axhQr82wkM4J1YHf1nQ8jx7gp45kJFk6D/CcfNeIWHSrGFxQCzHCYkXhYOViCnmhsgJgKrNfqB8UyPeNfFsVg== +"@taquito/michelson-encoder@^7.1.0-preview-lambdaview.0", "@taquito/michelson-encoder@^7.1.0-preview.1": + version "7.1.0-preview-lambdaview.0" + resolved "https://registry.yarnpkg.com/@taquito/michelson-encoder/-/michelson-encoder-7.1.0-preview-lambdaview.0.tgz#32a0931d6c3c20ac2e6d8d7657a54e9ba20b0291" + integrity sha512-S+sGejQZLHvLD2w6ki0flmJy6Fa7TQMJAwDGTI4a4JJ/rKnphU7QFN6JFKYdhBg7+1Hi1mLdd42mvKgZdK0l8A== dependencies: - "@taquito/rpc" "^8.1.1" - "@taquito/utils" "^8.1.0" + "@taquito/rpc" "^7.1.0-preview-lambdaview.0" + "@taquito/utils" "^7.1.0-preview-lambdaview.0" bignumber.js "^9.0.1" fast-json-stable-stringify "^2.1.0" -"@taquito/rpc@^8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/rpc/-/rpc-8.1.1.tgz#cdbf9d7ba24346034bf0f02ebf634e846801811a" - integrity sha512-NS1aoVy+co5xCe41wM67PEMZHt88RtxpsGPvsYs0TO1sJN6JFgwkZYE/ZQULRHPb6JXNxY/KOCVnYahFM+a8pg== +"@taquito/rpc@^7.1.0-preview-lambdaview.0", "@taquito/rpc@^7.1.0-preview.1": + version "7.1.0-preview-lambdaview.0" + resolved "https://registry.yarnpkg.com/@taquito/rpc/-/rpc-7.1.0-preview-lambdaview.0.tgz#b35a1f7bebeb8e9af2cd639f179c541b14424b07" + integrity sha512-je2gQmVPYxPQdYIOPvPWQhNaHVkMws5q8YyTxacWU93Y5IBw1a3hKX7J1dymomlfeP3fJWHViYuwJKPQdmifXg== dependencies: - "@taquito/http-utils" "^8.1.0" + "@taquito/http-utils" "^7.1.0-preview-lambdaview.0" bignumber.js "^9.0.1" lodash "^4.17.20" -"@taquito/signer@^8.1.0-beta-RC.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/signer/-/signer-8.1.1.tgz#6fca53fc479dfcb2c6a199b9ff3b8282990b973a" - integrity sha512-3uBfjj/GsptAkE8uKycipIy+Dk9TCsaaxr6LgS2JoNFwJCIbBTYtxbKdFdEwXBa9q4AbysjkuOhsD1QKdnK+7g== +"@taquito/signer@7.1.0-preview.1": + version "7.1.0-preview.1" + resolved "https://registry.yarnpkg.com/@taquito/signer/-/signer-7.1.0-preview.1.tgz#31b47055a08843f5bf1a54cbadee3793d98e8ffb" + integrity sha512-4cVWqTje53M75s/5T2YLMJHNut+jvS0dL5LGaOlyv/MYRClG7edc3lTjlkeBcs9VFpK2q/rAIjzr5Xgfkzu9JQ== dependencies: - "@taquito/taquito" "^8.1.1" - "@taquito/utils" "^8.1.0" + "@taquito/taquito" "^7.1.0-preview.1" + "@taquito/utils" "^7.1.0-preview.1" bignumber.js "^9.0.1" bip39 "^3.0.2" - elliptic "^6.5.4" + elliptic "^6.5.3" libsodium-wrappers "^0.7.8" pbkdf2 "^3.1.1" typedarray-to-buffer "^3.1.5" -"@taquito/taquito@^8.1.0-beta-RC.0", "@taquito/taquito@^8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-8.1.1.tgz#284c760414013d9aa12343a4784c3057f62ffa8b" - integrity sha512-A8aOYaaAxiwcdGhftdg8lgiX1ZivtrLoqvhWow+JGfvAyAsVabAvckpEgEHgBUvmFClSFVbuM/TOAarnHUfd3A== +"@taquito/taquito@7.1.0-preview.1": + version "7.1.0-preview.1" + resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-7.1.0-preview.1.tgz#84132e7a289af0c2be72a78c1134598d4375e113" + integrity sha512-XYSHAxXW4c+GWPy4Qh0bE3fzTx4UqzKkbsmukTRvw1Pp2mgMNgSF0cD0R8Xej0gxg9PBy/zBR5FvNXHM/V2zNQ== dependencies: - "@taquito/http-utils" "^8.1.0" - "@taquito/michel-codec" "^8.1.1" - "@taquito/michelson-encoder" "^8.1.1" - "@taquito/rpc" "^8.1.1" - "@taquito/utils" "^8.1.0" + "@taquito/http-utils" "^7.1.0-preview.1" + "@taquito/michel-codec" "^7.1.0-preview.1" + "@taquito/michelson-encoder" "^7.1.0-preview.1" + "@taquito/rpc" "^7.1.0-preview.1" + "@taquito/utils" "^7.1.0-preview.1" bignumber.js "^9.0.1" rx-sandbox "^1.0.3" rxjs "^6.6.3" -"@taquito/tezbridge-wallet@^8.1.0-beta-RC.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/tezbridge-wallet/-/tezbridge-wallet-8.1.1.tgz#dd6ae1af46ad69a216cc4b1b375dbf91824f0ec2" - integrity sha512-Tf3fZB0OhGaLDNLua0CpmvnIHsIziuhvjkzejNdNad/+AGPpMsmGYjNKwx20tKJ3IFdHebHtS+GPyDv/emnTSA== +"@taquito/taquito@^7.1.0-preview.1": + version "7.1.0-preview-lambdaview.0" + resolved "https://registry.yarnpkg.com/@taquito/taquito/-/taquito-7.1.0-preview-lambdaview.0.tgz#0aceeda01f2a62788dfc2177ff8299a7f0fc6420" + integrity sha512-bqjyzuZm1v6MyOGXTuudcgQqGni6v8L5q5q2u4grtMi14T6WYOAyBLI7Mu7jcM6E4zVhc+7v7525Y4Ukl9ee/w== dependencies: - "@taquito/taquito" "^8.1.1" + "@taquito/http-utils" "^7.1.0-preview-lambdaview.0" + "@taquito/michel-codec" "^7.1.0-preview-lambdaview.0" + "@taquito/michelson-encoder" "^7.1.0-preview-lambdaview.0" + "@taquito/rpc" "^7.1.0-preview-lambdaview.0" + "@taquito/utils" "^7.1.0-preview-lambdaview.0" + bignumber.js "^9.0.1" + rx-sandbox "^1.0.3" + rxjs "^6.6.3" -"@taquito/tzip12@^8.1.0-beta-RC.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/tzip12/-/tzip12-8.1.1.tgz#a8b06ef38c9db47a80545c929f8a12b165b38431" - integrity sha512-upLQYLAI4aEBkwJGYcc+4OjTlYyA1T6kPSiQ69Pc6OK4lZSzm+bz47dV0SU7Y8PBiLaek2OrLlmACZKSublGeQ== +"@taquito/tezbridge-wallet@7.1.0-preview.1": + version "7.1.0-preview.1" + resolved "https://registry.yarnpkg.com/@taquito/tezbridge-wallet/-/tezbridge-wallet-7.1.0-preview.1.tgz#b57d4d88b22b6c156de571b2c01c44f88de102d4" + integrity sha512-yhEeeqUIVdtPVoboiE0FAoFi8zo8oI36ZPFkL9Bkk2aCDW7wy43xs0fCiPKnGMr60mybi/s2hwjOhfjqncTYaw== dependencies: - "@taquito/michelson-encoder" "^8.1.1" - "@taquito/taquito" "^8.1.1" - "@taquito/tzip16" "^8.1.1" - bignumber.js "^9.0.1" + "@taquito/taquito" "^7.1.0-preview.1" -"@taquito/tzip16@^8.1.0-beta-RC.0", "@taquito/tzip16@^8.1.1": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/tzip16/-/tzip16-8.1.1.tgz#0dd4b00c046d86417237e2c1b08ac9cfdcba0a3f" - integrity sha512-+pnCv2CuPAWLSNVU3logNd6kmOG6mItAoRi49zJjVD8F/96gY4xNKrjdF+BbgY3pmEhF/h7E5chuTmK9waDtaQ== +"@taquito/utils@7.1.0-preview.1": + version "7.1.0-preview.1" + resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-7.1.0-preview.1.tgz#9274af7f6d66df030f1c5c8569478039b5796a4a" + integrity sha512-GaGL0w33be/EMlMv3+Tu6X/6HbGMJuq+o5g4diQYlGP2J2CG7bXJiLfTUAEtOd5Opq9UbN0VRx+OtO2NP26UWg== dependencies: - "@taquito/http-utils" "^8.1.0" - "@taquito/michelson-encoder" "^8.1.1" - "@taquito/rpc" "^8.1.1" - "@taquito/taquito" "^8.1.1" - "@taquito/utils" "^8.1.0" - bignumber.js "^9.0.1" - crypto-js "^4.0.0" + blakejs "^1.1.0" + bs58check "^2.1.2" + buffer "^5.6.0" -"@taquito/utils@^8.1.0", "@taquito/utils@^8.1.0-beta-RC.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-8.1.1.tgz#b9fbc880308ad814ae15b4f3402fd40c4ecc7c23" - integrity sha512-ZsHYxEZ+voTjnFZM/iQXeCDUSa2eH5n9PMSX0DNq85hN6S5Q0ZP/4CGznOf+RJj7p1GF2cbKf9wUJrOMFdN+0g== +"@taquito/utils@^7.1.0-preview-lambdaview.0", "@taquito/utils@^7.1.0-preview.1": + version "7.1.0-preview-lambdaview.0" + resolved "https://registry.yarnpkg.com/@taquito/utils/-/utils-7.1.0-preview-lambdaview.0.tgz#89c5207ec7f753a0170dd41c10551a748dffa1d1" + integrity sha512-Nm2v8TO+jho2ZsV3IGqymPkkiaZXVBVB6eMTDzqRx3BGzn2lTrYT5XqVoRCWZdkeavnrnu75ntMBrhMNpfDfLA== dependencies: blakejs "^1.1.0" bs58check "^2.1.2" buffer "^5.6.0" -"@thanos-wallet/dapp@^2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/@thanos-wallet/dapp/-/dapp-2.2.1.tgz" - integrity sha512-3j8Q2E5W7XQyMSKxlKNbjn4GBNASVkAGryOj9mf5NxrwuMjk4LJSziJRrzefoYduKbBvnHB2xHPOoctnOgc4hg== +"@thanos-wallet/dapp@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@thanos-wallet/dapp/-/dapp-0.7.0.tgz#bbe49b879431e6c79e8271364c1943532c7bb9e4" + integrity sha512-eXa8NwHYmlXo1ZWbLfW0tVRAjame92NKJo1I+EsS0ZQyoz9dJTIQSsqwA1cfzIoXV/wFSXmfhTnHniraCtc2fQ== dependencies: nanoid "^3.1.10" "@types/anymatch@*": version "1.3.1" - resolved "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== "@types/chrome@0.0.115": version "0.0.115" - resolved "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.115.tgz" + resolved "https://registry.yarnpkg.com/@types/chrome/-/chrome-0.0.115.tgz#dde40ff715a76d8c8125b0fe35287b9fdbc9f3de" integrity sha512-pNoYoYgGuI1/kiz53kjrXrKIjn2H8YWOI+vxVTOubX6arCHk/m/jInoyflKiP2qZHZf8+P+hh6d2y9tjaG4BPQ== dependencies: "@types/filesystem" "*" @@ -1932,175 +1994,178 @@ "@types/filesystem@*": version "0.0.29" - resolved "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.29.tgz" + resolved "https://registry.yarnpkg.com/@types/filesystem/-/filesystem-0.0.29.tgz#ee3748eb5be140dcf980c3bd35f11aec5f7a3748" integrity sha512-85/1KfRedmfPGsbK8YzeaQUyV1FQAvMPMTuWFQ5EkLd2w7szhNO96bk3Rh/SKmOfd9co2rCLf0Voy4o7ECBOvw== dependencies: "@types/filewriter" "*" "@types/filewriter@*": version "0.0.28" - resolved "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.28.tgz" + resolved "https://registry.yarnpkg.com/@types/filewriter/-/filewriter-0.0.28.tgz#c054e8af4d9dd75db4e63abc76f885168714d4b3" integrity sha1-wFTor02d11205jq8dviFFocU1LM= "@types/glob@^7.1.1": version "7.1.3" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== dependencies: "@types/minimatch" "*" "@types/node" "*" "@types/har-format@*": - version "1.2.5" - resolved "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.5.tgz" - integrity sha512-IG8AE1m2pWtPqQ7wXhFhy6Q59bwwnLwO36v5Rit2FrbXCIp8Sk8E2PfUCreyrdo17STwFSKDAkitVuVYbpEHvQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/har-format/-/har-format-1.2.4.tgz#3275842095abb60d14b47fa798cc9ff708dab6d4" + integrity sha512-iUxzm1meBm3stxUMzRqgOVHjj4Kgpgu5w9fm4X7kPRfSgVRzythsucEN7/jtOo8SQzm+HfcxWWzJS0mJDH/3DQ== "@types/hast@^2.0.0": version "2.3.1" - resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.1.tgz#b16872f2a6144c7025f296fb9636a667ebb79cd9" integrity sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q== dependencies: "@types/unist" "*" "@types/html-minifier-terser@^5.0.0": version "5.1.1" - resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": version "2.0.3" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== "@types/istanbul-lib-report@*": version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== dependencies: "@types/istanbul-lib-coverage" "*" +"@types/istanbul-reports@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + "@types/istanbul-reports@^3.0.0": version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^26.0.16": - version "26.0.20" - resolved "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz" - integrity sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA== +"@types/jest@^26.0.14": + version "26.0.15" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.15.tgz#12e02c0372ad0548e07b9f4e19132b834cb1effe" + integrity sha512-s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog== dependencies: jest-diff "^26.0.0" pretty-format "^26.0.0" "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.7" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== "@types/libsodium-wrappers@0.7.7": version "0.7.7" - resolved "https://registry.npmjs.org/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.7.tgz" + resolved "https://registry.yarnpkg.com/@types/libsodium-wrappers/-/libsodium-wrappers-0.7.7.tgz#cdb25e85458612ec80f0157c3815fac187d0b6d2" integrity sha512-Li91pVKcLvQJK3ZolwCPo85oxf2gKBCApgnesRxYg4OVYchLXcJB2eivX8S87vfQVv6ZRnyCO1lLDosZGJfpRg== "@types/mdast@^3.0.0": version "3.0.3" - resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw== dependencies: "@types/unist" "*" "@types/minimatch@*": version "3.0.3" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": - version "14.14.11" - resolved "https://registry.npmjs.org/@types/node/-/node-14.14.11.tgz" - integrity sha512-BJ97wAUuU3NUiUCp44xzUFquQEvnk1wu7q4CMEUYKJWjdkr0YWYDsm4RFtAvxYsNjLsKcrFt6RvK8r+mnzMbEQ== + version "14.14.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.6.tgz#146d3da57b3c636cc0d1769396ce1cfa8991147f" + integrity sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw== "@types/node@11.11.6": version "11.11.6" - resolved "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== "@types/parse-json@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/parse5@^5.0.0": version "5.0.3" - resolved "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== "@types/prop-types@*": version "15.7.3" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== "@types/q@^1.5.1": version "1.5.4" - resolved "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== "@types/react-toggle@^4.0.2": version "4.0.2" - resolved "https://registry.npmjs.org/@types/react-toggle/-/react-toggle-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/@types/react-toggle/-/react-toggle-4.0.2.tgz#46ffa5af1a55de5f25d0aa78ef0b557b5c8bf276" integrity sha512-sHqfoKFnL0YU2+OC4meNEC8Ptx9FE8/+nFeFvNcdBa6ANA8KpAzj3R9JN8GtrvlLgjKDoYgI7iILgXYcTPo2IA== dependencies: "@types/react" "*" "@types/react@*": - version "17.0.1" - resolved "https://registry.npmjs.org/@types/react/-/react-17.0.1.tgz" - integrity sha512-w8t9f53B2ei4jeOqf/gxtc2Sswnc3LBK5s0DyJcg5xd10tMHXts2N31cKjWfH9IC/JvEPa/YF1U4YeP1t4R6HQ== + version "16.9.55" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.55.tgz#47078587f5bfe028a23b6b46c7b94ac0d436acff" + integrity sha512-6KLe6lkILeRwyyy7yG9rULKJ0sXplUsl98MGoCfpteXf9sPWFWWMknDcsvubcpaTdBuxtsLF6HDUwdApZL/xIg== dependencies: "@types/prop-types" "*" csstype "^3.0.2" "@types/source-list-map@*": version "0.1.2" - resolved "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== -"@types/stack-utils@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz" - integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== - "@types/tapable@*", "@types/tapable@^1.0.5": version "1.0.6" - resolved "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== "@types/uglify-js@*": - version "3.12.0" - resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.12.0.tgz" - integrity sha512-sYAF+CF9XZ5cvEBkI7RtrG9g2GtMBkviTnBxYYyq+8BWvO4QtXfwwR6a2LFwCi4evMKZfpv6U43ViYvv17Wz3Q== + version "3.11.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.11.1.tgz#97ff30e61a0aa6876c270b5f538737e2d6ab8ceb" + integrity sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q== dependencies: source-map "^0.6.1" "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": version "2.0.3" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== "@types/webpack-sources@*": - version "2.1.0" - resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz" - integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.0.0.tgz#08216ab9be2be2e1499beaebc4d469cec81e82a7" + integrity sha512-a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.7.3" "@types/webpack@^4.41.0", "@types/webpack@^4.41.8": - version "4.41.26" - resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz" - integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA== + version "4.41.24" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.24.tgz#75b664abe3d5bcfe54e64313ca3b43e498550422" + integrity sha512-1A0MXPwZiMOD3DPMuOKUKcpkdPo8Lq33UGggZ7xio6wJ/jV1dAu5cXDrOfGDnldUroPIRLsr/DT43/GqOA4RFQ== dependencies: "@types/anymatch" "*" "@types/node" "*" @@ -2110,20 +2175,27 @@ source-map "^0.6.0" "@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz" - integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + version "15.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + +"@types/yargs@^13.0.0": + version "13.0.11" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.11.tgz#def2f0c93e4bdf2c61d7e34899b17e34be28d3b1" + integrity sha512-NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ== + dependencies: + "@types/yargs-parser" "*" "@types/yargs@^15.0.0": - version "15.0.13" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz" - integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + version "15.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.9.tgz#524cd7998fe810cdb02f26101b699cccd156ff19" + integrity sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g== dependencies: "@types/yargs-parser" "*" "@webassemblyjs/ast@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== dependencies: "@webassemblyjs/helper-module-context" "1.9.0" @@ -2132,46 +2204,46 @@ "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== "@webassemblyjs/helper-code-frame@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== dependencies: "@webassemblyjs/wast-printer" "1.9.0" "@webassemblyjs/helper-fsm@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== "@webassemblyjs/helper-module-context@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2181,26 +2253,26 @@ "@webassemblyjs/ieee754@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2214,7 +2286,7 @@ "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2225,7 +2297,7 @@ "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2235,7 +2307,7 @@ "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2247,7 +2319,7 @@ "@webassemblyjs/wast-parser@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2259,7 +2331,7 @@ "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== dependencies: "@webassemblyjs/ast" "1.9.0" @@ -2268,17 +2340,17 @@ "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: mime-types "~2.1.24" @@ -2286,42 +2358,42 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: acorn-class-fields@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/acorn-class-fields/-/acorn-class-fields-0.2.1.tgz#748058bceeb0ef25164bbc671993984083f5a085" integrity sha512-US/kqTe0H8M4LN9izoL+eykVAitE68YMuYZ3sHn3i1fjniqR7oQ3SPvuMK/VT1kjOQHrx5Q88b90TtOKgAv2hQ== acorn-dynamic-import@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== acorn-jsx@^5.0.1: version "5.3.1" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== acorn-walk@^7.1.1: version "7.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn@^6.1.1, acorn@^6.4.1: version "6.4.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== acorn@^7.1.1: version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== address@1.1.2, address@^1.0.1: version "1.1.2" - resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -2329,17 +2401,17 @@ aggregate-error@^3.0.0: ajv-errors@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -2348,98 +2420,103 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" algoliasearch-helper@^3.1.1: - version "3.4.2" - resolved "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.4.2.tgz" - integrity sha512-xuNY+xfyMmrTyD6c8vdYdsBkWqsFGmBM/uxZs4lWgjWxeNb2Jsi2ZaMR51aBn4DeCK4NRdp4LOLvdFEOCoeBkQ== + version "3.2.2" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.2.2.tgz#12451c8e368935348453c8879785b20e1788c33c" + integrity sha512-/3XvE33R+gQKaiPdy3nmHYqhF8hqIu8xnlOicVxb1fD6uMFmxW8rGLzzrRfsPfxgAfm+c1NslLb3TzQVIB8aVA== dependencies: events "^1.1.1" algoliasearch@^4.0.0: - version "4.8.5" - resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.8.5.tgz" - integrity sha512-GjKjpeevpePEJYinGokASNtIkl1t5EseNMlqDNAc+sXE8+iyyeqTyiJsN7bwlRG2BIremuslE/NlwdEfUuBLJw== - dependencies: - "@algolia/cache-browser-local-storage" "4.8.5" - "@algolia/cache-common" "4.8.5" - "@algolia/cache-in-memory" "4.8.5" - "@algolia/client-account" "4.8.5" - "@algolia/client-analytics" "4.8.5" - "@algolia/client-common" "4.8.5" - "@algolia/client-recommendation" "4.8.5" - "@algolia/client-search" "4.8.5" - "@algolia/logger-common" "4.8.5" - "@algolia/logger-console" "4.8.5" - "@algolia/requester-browser-xhr" "4.8.5" - "@algolia/requester-common" "4.8.5" - "@algolia/requester-node-http" "4.8.5" - "@algolia/transporter" "4.8.5" + version "4.5.1" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.5.1.tgz#fd20cd76f6ba3fbecdd4e11bdaefefb44abc0b38" + integrity sha512-b6yT1vWMlBdVObQipKxvt0M6SEvGetVj+FFFlo0Fy06gkdj6WCJaS4t10Q/hC3I2VG9QmpCqlK3Esgg1y1E+uw== + dependencies: + "@algolia/cache-browser-local-storage" "4.5.1" + "@algolia/cache-common" "4.5.1" + "@algolia/cache-in-memory" "4.5.1" + "@algolia/client-account" "4.5.1" + "@algolia/client-analytics" "4.5.1" + "@algolia/client-common" "4.5.1" + "@algolia/client-recommendation" "4.5.1" + "@algolia/client-search" "4.5.1" + "@algolia/logger-common" "4.5.1" + "@algolia/logger-console" "4.5.1" + "@algolia/requester-browser-xhr" "4.5.1" + "@algolia/requester-common" "4.5.1" + "@algolia/requester-node-http" "4.5.1" + "@algolia/transporter" "4.5.1" alphanum-sort@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= ansi-align@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== dependencies: string-width "^3.0.0" ansi-colors@^3.0.0: version "3.2.4" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-escapes@^4.2.1: version "4.3.1" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== dependencies: type-fest "^0.11.0" ansi-html@0.0.7: version "0.0.7" - resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= -ansi-regex@^2.0.0: +ansi-regex@^2.0.0, ansi-regex@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= -ansi-regex@^4.1.0: +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.0.0, ansi-regex@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== ansi-regex@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.0.0, ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" anymatch@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" @@ -2447,84 +2524,104 @@ anymatch@^2.0.0: anymatch@~3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.1.1: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + arr-diff@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= -arr-flatten@^1.1.0: +arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= array-flatten@^2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-union@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + array-unique@^0.3.2: version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= arrify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= asap@~2.0.3: version "2.0.6" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= asn1.js@^5.2.0: version "5.4.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" @@ -2534,7 +2631,7 @@ asn1.js@^5.2.0: assert@^1.1.1: version "1.5.0" - resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: object-assign "^4.1.1" @@ -2542,39 +2639,34 @@ assert@^1.1.1: assign-symbols@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= async-each@^1.0.1: version "1.0.3" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async@^2.6.2: version "2.6.3" - resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== dependencies: lodash "^4.17.14" -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - atob@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^9.4.7, autoprefixer@^9.6.1: +autoprefixer@^9.6.1: version "9.8.6" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== dependencies: browserslist "^4.12.0" @@ -2585,91 +2677,85 @@ autoprefixer@^9.4.7, autoprefixer@^9.6.1: postcss "^7.0.32" postcss-value-parser "^4.1.0" -axios@0.21.1, axios@^0.21.1: - version "0.21.1" - resolved "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== +axios@0.19.2: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== dependencies: - follow-redirects "^1.10.0" + follow-redirects "1.5.10" babel-code-frame@^6.22.0: version "6.26.0" - resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= dependencies: chalk "^1.1.3" esutils "^2.0.2" js-tokens "^3.0.2" -babel-loader@^8.2.1: - version "8.2.2" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz" - integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== +babel-loader@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== dependencies: - find-cache-dir "^3.3.1" + find-cache-dir "^2.1.0" loader-utils "^1.4.0" - make-dir "^3.1.0" + mkdirp "^0.5.3" + pify "^4.0.1" schema-utils "^2.6.5" -babel-plugin-apply-mdx-type-prop@1.6.22: - version "1.6.22" - resolved "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz" - integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== +babel-plugin-apply-mdx-type-prop@1.6.19: + version "1.6.19" + resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.19.tgz#423792e9f7cd06e5b270e66c661ac9e454cdb4fe" + integrity sha512-zAuL11EaBbeNpfTqsa9xP7mkvX3V4LaEV6M9UUaI4zQtTqN5JwvDyhNsALQs5Ud7WFQSXtoqU74saTgE+rgZOw== dependencies: "@babel/helper-plugin-utils" "7.10.4" - "@mdx-js/util" "1.6.22" - -babel-plugin-dynamic-import-node@2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== - dependencies: - object.assign "^4.1.0" + "@mdx-js/util" "1.6.19" -babel-plugin-dynamic-import-node@^2.3.3: +babel-plugin-dynamic-import-node@^2.3.0, babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" -babel-plugin-extract-import-names@1.6.22: - version "1.6.22" - resolved "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz" - integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== +babel-plugin-extract-import-names@1.6.19: + version "1.6.19" + resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.19.tgz#637fad6c47e6dc69e08716cc90e3a87a2fba8c9c" + integrity sha512-5kbSEhQdg1ybR9OnxybbyR1PXw51z6T6ZCtX3vYSU6t1pC/+eBlSzWXyU2guStbwQgJyxS+mHWSNnL7PUdzAlw== dependencies: "@babel/helper-plugin-utils" "7.10.4" bail@^1.0.0: version "1.0.5" - resolved "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base-x@^3.0.2: version "3.0.8" - resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== dependencies: safe-buffer "^5.0.1" base16@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA= base64-js@^1.0.2, base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== base@^0.11.1: version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" @@ -2682,12 +2768,12 @@ base@^0.11.1: batch@0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= bfj@^6.1.1: version "6.1.2" - resolved "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== dependencies: bluebird "^3.5.5" @@ -2697,30 +2783,30 @@ bfj@^6.1.1: big.js@^5.2.2: version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== bignumber.js@9.0.0: version "9.0.0" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== bignumber.js@^9.0.1: version "9.0.1" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== binary-extensions@^1.0.0: version "1.13.1" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== -bindings@^1.5.0: +bindings@^1.4.0, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== @@ -2728,43 +2814,47 @@ bindings@^1.5.0: file-uri-to-path "1.0.0" bip39@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/bip39/-/bip39-3.0.3.tgz" - integrity sha512-P0dKrz4g0V0BjXfx7d9QNkJ/Txcz/k+hM9TnjqjUaXtuOfAvxXSw2rJw8DX0e3ZPwnK/IgDxoRqf0bvoVCqbMg== + version "3.0.2" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.2.tgz#2baf42ff3071fc9ddd5103de92e8f80d9257ee32" + integrity sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ== dependencies: "@types/node" "11.11.6" create-hash "^1.1.0" pbkdf2 "^3.0.9" randombytes "^2.0.1" +bl@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" + integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + blakejs@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= bluebird@^3.5.5, bluebird@^3.7.1: version "3.7.2" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: version "4.11.9" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: +bn.js@^5.1.1: version "5.1.3" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== body-parser@1.19.0: version "1.19.0" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== dependencies: bytes "3.1.0" @@ -2780,7 +2870,7 @@ body-parser@1.19.0: bonjour@^3.5.0: version "3.5.0" - resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= dependencies: array-flatten "^2.1.0" @@ -2792,12 +2882,12 @@ bonjour@^3.5.0: boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= boxen@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== dependencies: ansi-align "^3.0.0" @@ -2811,15 +2901,24 @@ boxen@^4.2.0: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + braces@^2.3.1, braces@^2.3.2: version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" @@ -2835,19 +2934,19 @@ braces@^2.3.1, braces@^2.3.2: braces@^3.0.1, braces@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -2859,7 +2958,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: browserify-cipher@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" @@ -2868,7 +2967,7 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" @@ -2877,16 +2976,16 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: - bn.js "^5.0.0" + bn.js "^4.1.0" randombytes "^2.0.1" browserify-sign@^4.0.0: version "4.2.1" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== dependencies: bn.js "^5.1.1" @@ -2901,14 +3000,14 @@ browserify-sign@^4.0.0: browserify-zlib@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" browserslist@4.10.0: version "4.10.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.10.0.tgz#f179737913eaf0d2b98e4926ac1ca6a15cbcc6a9" integrity sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA== dependencies: caniuse-lite "^1.0.30001035" @@ -2916,27 +3015,26 @@ browserslist@4.10.0: node-releases "^1.1.52" pkg-up "^3.1.0" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.1, browserslist@^4.6.4: - version "4.16.3" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz" - integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.6.4, browserslist@^4.8.5: + version "4.14.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015" + integrity sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA== dependencies: - caniuse-lite "^1.0.30001181" - colorette "^1.2.1" - electron-to-chromium "^1.3.649" - escalade "^3.1.1" - node-releases "^1.1.70" + caniuse-lite "^1.0.30001135" + electron-to-chromium "^1.3.571" + escalade "^3.1.0" + node-releases "^1.1.61" bs58@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= dependencies: base-x "^3.0.2" bs58check@2.1.2, bs58check@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== dependencies: bs58 "^4.0.0" @@ -2945,7 +3043,7 @@ bs58check@2.1.2, bs58check@^2.1.2: buble@0.19.6: version "0.19.6" - resolved "https://registry.npmjs.org/buble/-/buble-0.19.6.tgz" + resolved "https://registry.yarnpkg.com/buble/-/buble-0.19.6.tgz#915909b6bd5b11ee03b1c885ec914a8b974d34d3" integrity sha512-9kViM6nJA1Q548Jrd06x0geh+BG2ru2+RMDkIHHgJY/8AcyCs34lTHwra9BX7YdPrZXd5aarkpr/SY8bmPgPdg== dependencies: chalk "^2.4.1" @@ -2957,59 +3055,59 @@ buble@0.19.6: buffer-from@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-indexof@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== buffer-json@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23" integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== +buffer@^5.5.0, buffer@^5.6.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.0.tgz#88afbd29fc89fa7b58e82b39206f31f2cf34feed" + integrity sha512-cd+5r1VLBwUqTrmnzW+D7ABkJUM6mr7uv1dv+6jRw4Rcl7tFIFHDqHPL98LhpGFn3dbAt3gtLxtrWp4m1kFrqg== dependencies: base64-js "^1.3.1" ieee754 "^1.1.13" builtin-status-codes@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= bytes@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= bytes@3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cacache@^12.0.2: version "12.0.4" - resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== dependencies: bluebird "^3.5.5" @@ -3030,7 +3128,7 @@ cacache@^12.0.2: cacache@^15.0.5: version "15.0.5" - resolved "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== dependencies: "@npmcli/move-file" "^1.0.1" @@ -3053,7 +3151,7 @@ cacache@^15.0.5: cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" @@ -3068,7 +3166,7 @@ cache-base@^1.0.1: cache-loader@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/cache-loader/-/cache-loader-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e" integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw== dependencies: buffer-json "^2.0.0" @@ -3080,7 +3178,7 @@ cache-loader@^4.1.0: cacheable-request@^6.0.0: version "6.1.0" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== dependencies: clone-response "^1.0.2" @@ -3091,69 +3189,61 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - call-me-maybe@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= caller-callsite@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@^4.1.1: - version "4.1.2" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + version "4.1.1" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547" + integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q== dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" + pascal-case "^3.1.1" + tslib "^1.10.0" camelcase-css@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +camelcase@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.1.0.tgz#27dc176173725fb0adf8a48b647f4d7871944d78" + integrity sha512-WCMml9ivU60+8rEJgELlFp1gxFcEGxwYleE3bziHEDeqsqAWGHdimB7beBFGjLzVNgPGyDsfgXLQEYMpmIFnVQ== caniuse-api@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== dependencies: browserslist "^4.0.0" @@ -3161,19 +3251,19 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001181: - version "1.0.30001185" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz" - integrity sha512-Fpi4kVNtNvJ15H0F6vwmXtb3tukv3Zg3qhKkOGUq7KJ1J6b9kf4dnNgtEAFXhRsJo0gNj9W60+wBvn0JcTvdTg== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001135: + version "1.0.30001151" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001151.tgz#1ddfde5e6fff02aad7940b4edb7d3ac76b0cb00b" + integrity sha512-Zh3sHqskX6mHNrqUerh+fkf0N72cMxrmflzje/JyVImfpknscMnkeJrlFGJcqTmaa0iszdYptGpWMJCRQDkBVw== ccount@^1.0.0, ccount@^1.0.3: version "1.1.0" - resolved "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== -chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -3182,7 +3272,7 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: chalk@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" @@ -3193,7 +3283,7 @@ chalk@^1.1.3: chalk@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: ansi-styles "^4.1.0" @@ -3201,7 +3291,7 @@ chalk@^3.0.0: chalk@^4.0.0, chalk@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== dependencies: ansi-styles "^4.1.0" @@ -3209,32 +3299,32 @@ chalk@^4.0.0, chalk@^4.1.0: character-entities-legacy@^1.0.0: version "1.1.4" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== character-entities@^1.0.0: version "1.2.4" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== character-reference-invalid@^1.0.0: version "1.1.4" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== chardet@^0.7.0: version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== check-types@^8.0.3: version "8.0.3" - resolved "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== cheerio@^0.22.0: version "0.22.0" - resolved "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= dependencies: css-select "~1.2.0" @@ -3256,7 +3346,7 @@ cheerio@^0.22.0: chokidar@^2.1.8: version "2.1.8" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" @@ -3273,10 +3363,10 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.3.0, chokidar@^3.4.1, chokidar@^3.4.3: - version "3.5.1" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== +chokidar@^3.3.0, chokidar@^3.4.1: + version "3.4.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" + integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -3286,38 +3376,38 @@ chokidar@^3.3.0, chokidar@^3.4.1, chokidar@^3.4.3: normalize-path "~3.0.0" readdirp "~3.5.0" optionalDependencies: - fsevents "~2.3.1" + fsevents "~2.1.2" chownr@^1.1.1: version "1.1.4" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chownr@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chrome-trace-event@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== dependencies: tslib "^1.9.0" ci-info@^1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== ci-info@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -3325,7 +3415,7 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: class-utils@^0.3.5: version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" @@ -3335,46 +3425,46 @@ class-utils@^0.3.5: classnames@^2.2.5, classnames@^2.2.6: version "2.2.6" - resolved "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== clean-css@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== dependencies: source-map "~0.6.0" clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-width@^2.0.0: version "2.2.1" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== cli-width@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== clipboard@^2.0.0: version "2.0.6" - resolved "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg== dependencies: good-listener "^1.2.2" @@ -3383,42 +3473,58 @@ clipboard@^2.0.0: cliui@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: string-width "^3.1.0" strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +clone-deep@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" + integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= + dependencies: + for-own "^0.1.3" + is-plain-object "^2.0.1" + kind-of "^3.0.2" + lazy-cache "^1.0.3" + shallow-clone "^0.1.2" + clone-response@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= dependencies: mimic-response "^1.0.0" clsx@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== coa@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== dependencies: "@types/q" "^1.5.1" chalk "^2.4.1" q "^1.1.2" +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + collapse-white-space@^1.0.2: version "1.0.6" - resolved "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== collection-visit@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" @@ -3426,31 +3532,31 @@ collection-visit@^1.0.0: color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@1.1.3, color-name@^1.0.0: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.5.4: version "1.5.4" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== dependencies: color-name "^1.0.0" @@ -3458,7 +3564,7 @@ color-string@^1.5.4: color@^3.0.0: version "3.1.3" - resolved "https://registry.npmjs.org/color/-/color-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== dependencies: color-convert "^1.9.1" @@ -3466,54 +3572,54 @@ color@^3.0.0: colorette@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== comma-separated-tokens@^1.0.0: version "1.0.8" - resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== commander@^2.18.0, commander@^2.20.0: version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^4.0.1, commander@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-emitter@^1.2.1: version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== component-props@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/component-props/-/component-props-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/component-props/-/component-props-1.1.1.tgz#f9b7df9b9927b6e6d97c9bd272aa867670f34944" integrity sha1-+bffm5kntubZfJvScqqGdnDzSUQ= component-xor@0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/component-xor/-/component-xor-0.0.4.tgz" + resolved "https://registry.yarnpkg.com/component-xor/-/component-xor-0.0.4.tgz#c55d83ccc1b94cd5089a4e93fa7891c7263e59aa" integrity sha1-xV2DzMG5TNUImk6T+niRxyY+Wao= compressible@~2.0.16: version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" compression@^1.7.4: version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== dependencies: accepts "~1.3.5" @@ -3526,12 +3632,12 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.5.0: version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -3541,7 +3647,7 @@ concat-stream@^1.5.0: configstore@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== dependencies: dot-prop "^5.2.0" @@ -3553,66 +3659,71 @@ configstore@^5.0.1: connect-history-api-fallback@^1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== consola@^2.10.0: - version "2.15.3" - resolved "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz" - integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== + version "2.15.0" + resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.0.tgz#40fc4eefa4d2f8ef2e2806147f056ea207fcc0e9" + integrity sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ== console-browserify@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + constants-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= content-disposition@0.5.2: version "0.5.2" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ= content-disposition@0.5.3: version "0.5.3" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== dependencies: safe-buffer "5.1.2" content-type@~1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.7.0: version "1.7.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie@0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== cookiejar@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== copy-concurrently@^1.0.0: version "1.0.5" - resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" @@ -3624,18 +3735,18 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= copy-text-to-clipboard@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-2.2.0.tgz#329dd6daf8c42034c763ace567418401764579ae" integrity sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ== -copy-webpack-plugin@^6.3.0: - version "6.4.1" - resolved "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz" - integrity sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA== +copy-webpack-plugin@^6.0.3: + version "6.2.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz#8015e4d5c5e637ab7b39c76daa9e03c7a4bf1ae5" + integrity sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q== dependencies: cacache "^15.0.5" fast-glob "^3.2.4" @@ -3649,32 +3760,37 @@ copy-webpack-plugin@^6.3.0: serialize-javascript "^5.0.1" webpack-sources "^1.4.3" -core-js-compat@^3.8.0: - version "3.8.3" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.3.tgz" - integrity sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog== +core-js-compat@^3.6.2: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== dependencies: - browserslist "^4.16.1" + browserslist "^4.8.5" semver "7.0.0" core-js-pure@^3.0.0: - version "3.8.3" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.3.tgz" - integrity sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA== + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" + integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= core-js@^2.4.1, core-js@^2.6.5: - version "2.6.12" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== core-util-is@~1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^5.0.0: version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== dependencies: import-fresh "^2.0.0" @@ -3682,20 +3798,20 @@ cosmiconfig@^5.0.0: js-yaml "^3.13.1" parse-json "^4.0.0" -cosmiconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz" - integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== dependencies: "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" + import-fresh "^3.1.0" parse-json "^5.0.0" path-type "^4.0.0" - yaml "^1.10.0" + yaml "^1.7.2" create-ecdh@^4.0.0: version "4.0.4" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" @@ -3703,7 +3819,7 @@ create-ecdh@^4.0.0: create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -3714,7 +3830,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -3724,16 +3840,17 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-fetch@^3.0.4: - version "3.0.6" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz" - integrity sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ== +create-react-context@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.2.tgz#9836542f9aaa22868cd7d4a6f82667df38019dca" + integrity sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A== dependencies: - node-fetch "2.6.1" + fbjs "^0.8.0" + gud "^1.0.0" cross-spawn@7.0.1, cross-spawn@^7.0.0: version "7.0.1" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== dependencies: path-key "^3.1.0" @@ -3742,7 +3859,7 @@ cross-spawn@7.0.1, cross-spawn@^7.0.0: cross-spawn@^6.0.0: version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" @@ -3753,7 +3870,7 @@ cross-spawn@^6.0.0: crypto-browserify@^3.11.0: version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" @@ -3768,31 +3885,26 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -crypto-js@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz" - integrity sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg== - crypto-random-string@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== css-blank-pseudo@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== dependencies: postcss "^7.0.5" css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= css-declaration-sorter@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== dependencies: postcss "^7.0.1" @@ -3800,7 +3912,7 @@ css-declaration-sorter@^4.0.1: css-has-pseudo@^0.10.0: version "0.10.0" - resolved "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== dependencies: postcss "^7.0.6" @@ -3808,7 +3920,7 @@ css-has-pseudo@^0.10.0: css-loader@^3.4.2: version "3.6.0" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== dependencies: camelcase "^5.3.1" @@ -3827,29 +3939,19 @@ css-loader@^3.4.2: css-prefers-color-scheme@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== dependencies: postcss "^7.0.5" css-select-base-adapter@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== -css-select@^2.0.0, css-select@^2.0.2: - version "2.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-select@~1.2.0: +css-select@^1.1.0, css-select@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= dependencies: boolbase "~1.0.0" @@ -3857,62 +3959,60 @@ css-select@~1.2.0: domutils "1.5.1" nth-check "~1.0.1" +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== dependencies: mdn-data "2.0.4" source-map "^0.6.1" -css-tree@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz" - integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== +css-tree@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0.tgz#21993fa270d742642a90409a2c0cb3ac0298adf6" + integrity sha512-CdVYz/Yuqw0VdKhXPBIgi8DO3NicJVYZNWeX9XcIuSp9ZoFT5IcleVRW07O5rMjdcx1mb+MEJPknTTEW7DdsYw== dependencies: - mdn-data "2.0.14" + mdn-data "2.0.12" source-map "^0.6.1" css-what@2.1: version "2.1.3" - resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== css-what@^3.2.1: version "3.4.2" - resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== cssdb@^4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== cssesc@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-advanced@^4.0.7: - version "4.0.7" - resolved "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-4.0.7.tgz" - integrity sha512-j1O5/DQnaAqEyFFQfC+Z/vRlLXL3LxJHN+lvsfYqr7KgPH74t69+Rsy2yXkovWNaJjZYBpdz2Fj8ab2nH7pZXw== - dependencies: - autoprefixer "^9.4.7" - cssnano-preset-default "^4.0.7" - postcss-discard-unused "^4.0.1" - postcss-merge-idents "^4.0.1" - postcss-reduce-idents "^4.0.2" - postcss-zindex "^4.0.1" - cssnano-preset-default@^4.0.7: version "4.0.7" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== dependencies: css-declaration-sorter "^4.0.1" @@ -3948,29 +4048,29 @@ cssnano-preset-default@^4.0.7: cssnano-util-get-arguments@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= cssnano-util-get-match@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= cssnano-util-raw-cache@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== dependencies: postcss "^7.0.0" cssnano-util-same-parent@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== cssnano@^4.1.10: version "4.1.10" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== dependencies: cosmiconfig "^5.0.0" @@ -3979,63 +4079,77 @@ cssnano@^4.1.10: postcss "^7.0.0" csso@^4.0.2: - version "4.2.0" - resolved "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + version "4.1.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.1.0.tgz#1d31193efa99b87aa6bad6c0cef155e543d09e8b" + integrity sha512-h+6w/W1WqXaJA4tb1dk7r5tVbOm97MsKxzwnvOR04UQ6GILroryjMWu3pmCCtL2mLaEStQ0fZgeGiy99mo7iyg== dependencies: - css-tree "^1.1.2" + css-tree "^1.0.0" csstype@^3.0.2: - version "3.0.6" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.6.tgz" - integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.4.tgz#b156d7be03b84ff425c9a0a4b1e5f4da9c5ca888" + integrity sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA== cyclist@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.1.1, debug@^3.2.6: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.1.1, debug@^3.2.5: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" debug@^4.1.0, debug@^4.1.1: - version "4.3.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" + integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== dependencies: ms "2.1.2" decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= decompress-response@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= dependencies: mimic-response "^1.0.0" +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + deep-equal@^1.0.1: version "1.1.1" - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== dependencies: is-arguments "^1.0.4" @@ -4047,17 +4161,12 @@ deep-equal@^1.0.1: deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - default-gateway@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== dependencies: execa "^1.0.0" @@ -4065,33 +4174,33 @@ default-gateway@^4.2.0: defer-to-connect@^1.0.1: version "1.1.3" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" @@ -4099,7 +4208,7 @@ define-property@^2.0.2: del@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== dependencies: "@types/glob" "^7.1.1" @@ -4112,7 +4221,7 @@ del@^4.1.1: del@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/del/-/del-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== dependencies: globby "^10.0.1" @@ -4126,17 +4235,22 @@ del@^5.1.0: delegate@^3.1.2: version "3.2.0" - resolved "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + depd@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" @@ -4144,24 +4258,29 @@ des.js@^1.0.0: destroy@~1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detab@2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz" - integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== +detab@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.3.tgz#33e5dd74d230501bd69985a0d2b9a3382699a130" + integrity sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A== dependencies: repeat-string "^1.5.4" +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + detect-node@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== detect-port-alt@1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== dependencies: address "^1.0.1" @@ -4169,20 +4288,30 @@ detect-port-alt@1.1.6: detect-port@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== dependencies: address "^1.0.1" debug "^2.6.0" -diff-sequences@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz" - integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== + +diff-sequences@^26.5.0: + version "26.5.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.5.0.tgz#ef766cf09d43ed40406611f11c6d8d9dd8b2fefd" + integrity sha512-ZXx86srb/iYy6jG71k++wBN9P9J05UNQ5hQHQd9MtMPvcqXPx/vKU69jfHV637D00Q2gSgPk2D+jSx3l1lDW/Q== + +diff@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diffie-hellman@^5.0.0: version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" @@ -4191,7 +4320,7 @@ diffie-hellman@^5.0.0: dir-glob@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== dependencies: arrify "^1.0.1" @@ -4199,19 +4328,19 @@ dir-glob@2.0.0: dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" dns-equal@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== dependencies: ip "^1.1.0" @@ -4219,37 +4348,29 @@ dns-packet@^1.3.1: dns-txt@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= dependencies: buffer-indexof "^1.0.0" dom-converter@^0.2: version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== dependencies: utila "~0.4" dom-iterator@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/dom-iterator/-/dom-iterator-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/dom-iterator/-/dom-iterator-1.0.0.tgz#9c09899846ec41c2d257adc4d6015e4759ef05ad" integrity sha512-7dsMOQI07EMU98gQM8NSB3GsAiIeBYIPKpnxR3c9xOvdvBjChAcOM0iJ222I3p5xyiZO9e5oggkNaCusuTdYig== dependencies: component-props "1.1.1" component-xor "0.0.4" -dom-serializer@0: - version "0.2.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -dom-serializer@~0.1.0: +dom-serializer@0, dom-serializer@~0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== dependencies: domelementtype "^1.3.0" @@ -4257,70 +4378,65 @@ dom-serializer@~0.1.0: domain-browser@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== - domhandler@^2.3.0: version "2.4.2" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== dependencies: domelementtype "1" -domutils@1.5.1: +domutils@1.5.1, domutils@^1.5.1: version "1.5.1" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= dependencies: dom-serializer "0" domelementtype "1" -domutils@^1.5.1, domutils@^1.7.0: +domutils@^1.7.0: version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" domelementtype "1" -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== +dot-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" + integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA== dependencies: - no-case "^3.0.4" - tslib "^2.0.3" + no-case "^3.0.3" + tslib "^1.10.0" dot-prop@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" duplexer3@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= duplexer@^0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" @@ -4330,22 +4446,22 @@ duplexify@^3.4.2, duplexify@^3.6.0: ee-first@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= ejs@^2.6.1: version "2.7.4" - resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== -electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.649: - version "1.3.662" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.662.tgz" - integrity sha512-IGBXmTGwdVGUVTnZ8ISEvkhDfhhD+CDFndG4//BhvDcEtPYiVrzoB+rzT/Y12OQCf5bvRCrVmrUbGrS9P7a6FQ== +electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.571: + version "1.3.584" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.584.tgz#506cf7ba5895aafa8241876ab028654b61fd9ceb" + integrity sha512-NB3DzrTzJFhWkUp+nl2KtUtoFzrfGXTir2S+BU4tXGyXH9vlluPuFpE3pTKeH7+PY460tHLjKzh6K2+TWwW+Ww== elliptic@^6.5.3: version "6.5.3" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== dependencies: bn.js "^4.4.0" @@ -4356,65 +4472,59 @@ elliptic@^6.5.3: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -elliptic@^6.5.4: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - 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" - "emoji-regex@>=6.0.0 <=6.1.1": version "6.1.1" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emojis-list@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== emoticon@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-3.2.0.tgz#c008ca7d7620fac742fe1bf4af8ff8fed154ae7f" integrity sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" -enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== +enhanced-resolve@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" @@ -4422,31 +4532,26 @@ enhanced-resolve@^4.5.0: entities@^1.1.1, entities@~1.1.1: version "1.1.2" - resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - errno@^0.1.3, errno@~0.1.7: - version "0.1.8" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" - integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: prr "~1.0.1" error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.2: +es-abstract@^1.17.0-next.1, es-abstract@^1.17.2: version "1.17.7" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== dependencies: es-to-primitive "^1.2.1" @@ -4461,63 +4566,61 @@ es-abstract@^1.17.2: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" -es-abstract@^1.18.0-next.1: - version "1.18.0-next.2" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz" - integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== +es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1: + version "1.18.0-next.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" + integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== dependencies: - call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" - get-intrinsic "^1.0.2" has "^1.0.3" has-symbols "^1.0.1" is-callable "^1.2.2" - is-negative-zero "^2.0.1" + is-negative-zero "^2.0.0" is-regex "^1.1.1" - object-inspect "^1.9.0" + object-inspect "^1.8.0" object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.3" - string.prototype.trimstart "^1.0.3" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.1.1: +escalade@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-goat@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= eslint-scope@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== dependencies: esrecurse "^4.1.0" @@ -4525,73 +4628,73 @@ eslint-scope@^4.0.3: esprima@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esrecurse@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -eta@^1.11.0: - version "1.12.1" - resolved "https://registry.npmjs.org/eta/-/eta-1.12.1.tgz" - integrity sha512-H8npoci2J/7XiPnVcCVulBSPsTNGvGaINyMjQDU8AFqp9LGsEYS88g2CiU+d01Sg44WtX7o4nb8wUJ9vnI+tiA== +eta@^1.1.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/eta/-/eta-1.11.0.tgz#cfc260fb4e77e1be96ac141f3e50b28da3e3c182" + integrity sha512-lfqIE6qD55WFYT6E0phTBUe0sapHJhfvRDB7jSpXxFGwzDaP69kQqRyF7krBe8I1QzF5nE1yAByiIOLB630x4Q== etag@~1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= eval@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/eval/-/eval-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.4.tgz#e05dbe0dab4b9330215cbb7bf4886eb24bd58700" integrity sha512-npGsebJejyjMRnLdFu+T/97dnigqIU0Ov3IGrZ8ygd1v7RL1vGkEKtvyWZobqUH1AQgKlg0Yqqe2BtMA9/QZLw== dependencies: require-like ">= 0.1.1" eventemitter3@^4.0.0: version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= events@^3.0.0, events@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/events/-/events-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== eventsource@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== dependencies: original "^1.0.0" evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -4599,7 +4702,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: execa@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: cross-spawn "^6.0.0" @@ -4612,7 +4715,7 @@ execa@^1.0.0: execa@^3.4.0: version "3.4.0" - resolved "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== dependencies: cross-spawn "^7.0.0" @@ -4626,9 +4729,16 @@ execa@^3.4.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + expand-brackets@^2.1.4: version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" @@ -4639,21 +4749,21 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^26.6.1: - version "26.6.2" - resolved "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz" - integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= dependencies: - "@jest/types" "^26.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" + fill-range "^2.1.0" + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== express@^4.16.3, express@^4.17.1: version "4.17.1" - resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== dependencies: accepts "~1.3.7" @@ -4689,14 +4799,14 @@ express@^4.16.3, express@^4.17.1: extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" @@ -4704,21 +4814,28 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: extend@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^3.0.3: version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" iconv-lite "^0.4.24" tmp "^0.0.33" +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + extglob@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" @@ -4732,12 +4849,12 @@ extglob@^2.0.4: fast-deep-equal@^3.1.1: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^2.0.2: version "2.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== dependencies: "@mrmlnc/readdir-enhanced" "^2.2.1" @@ -4748,9 +4865,9 @@ fast-glob@^2.0.2: micromatch "^3.1.10" fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.4: - version "3.2.5" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + version "3.2.4" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" + integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -4761,77 +4878,79 @@ fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.4: fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-url-parser@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0= dependencies: punycode "^1.3.2" fastq@^1.6.0: - version "1.10.1" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz" - integrity sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== + version "1.9.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947" + integrity sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w== dependencies: reusify "^1.0.4" -faye-websocket@^0.11.3: +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: version "0.11.3" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: websocket-driver ">=0.5.1" -fbemitter@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz" - integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== +fbemitter@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-2.1.1.tgz#523e14fdaf5248805bb02f62efc33be703f51865" + integrity sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU= dependencies: - fbjs "^3.0.0" + fbjs "^0.8.4" -fbjs-css-vars@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz" - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== - -fbjs@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz" - integrity sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg== +fbjs@^0.8.0, fbjs@^0.8.4: + version "0.8.17" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" + integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= dependencies: - cross-fetch "^3.0.4" - fbjs-css-vars "^1.0.0" + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" loose-envify "^1.0.0" object-assign "^4.1.0" promise "^7.1.1" setimmediate "^1.0.5" ua-parser-js "^0.7.18" -feed@^4.2.1: - version "4.2.2" - resolved "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz" - integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== +feed@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.1.tgz#b246ef891051c7dbf088ca203341d9fb0444baee" + integrity sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg== dependencies: xml-js "^1.6.11" figgy-pudding@^3.5.1: version "3.5.2" - resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== figures@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" -file-loader@^6.2.0: +file-loader@^6.0.0: version "6.2.0" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== dependencies: loader-utils "^2.0.0" @@ -4842,19 +4961,35 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + filesize@6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f" integrity sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg== filesize@^3.6.1: version "3.6.1" - resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + fill-range@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" @@ -4864,14 +4999,14 @@ fill-range@^4.0.0: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" finalhandler@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" @@ -4884,7 +5019,7 @@ finalhandler@~1.1.2: find-cache-dir@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" @@ -4893,7 +5028,7 @@ find-cache-dir@^2.1.0: find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: version "3.3.1" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== dependencies: commondir "^1.0.1" @@ -4902,7 +5037,7 @@ find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: find-up@4.1.0, find-up@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -4910,45 +5045,64 @@ find-up@4.1.0, find-up@^4.0.0: find-up@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" flatten@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== flush-write-stream@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" readable-stream "^2.3.6" -flux@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/flux/-/flux-4.0.1.tgz" - integrity sha512-emk4RCvJ8RzNP2lNpphKnG7r18q8elDYNAPx7xn+bDeOIo9FFfxEfIQ2y6YbQNmnsGD3nH1noxtLE64Puz1bRQ== +flux@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/flux/-/flux-3.1.3.tgz#d23bed515a79a22d933ab53ab4ada19d05b2f08a" + integrity sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io= + dependencies: + fbemitter "^2.0.0" + fbjs "^0.8.0" + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== dependencies: - fbemitter "^3.0.0" - fbjs "^3.0.0" + debug "=3.1.0" -follow-redirects@^1.0.0, follow-redirects@^1.10.0: - version "1.13.2" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz" - integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== +follow-redirects@^1.0.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" + integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA== -for-in@^1.0.2: +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= + +for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +for-own@^0.1.3, for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + fork-ts-checker-webpack-plugin@3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz#a1642c0d3e65f50c2cc1742e9c0a80f441f86b19" integrity sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ== dependencies: babel-code-frame "^6.22.0" @@ -4962,49 +5116,53 @@ fork-ts-checker-webpack-plugin@3.1.1: forwarded@~0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= fragment-cache@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= from2@^2.1.0: version "2.3.0" - resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^9.0.1: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: - at-least-node "^1.0.0" graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" + jsonfile "^4.0.0" + universalify "^0.1.0" fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs-write-stream-atomic@^1.0.8: version "1.0.10" - resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= dependencies: graceful-fs "^4.1.2" @@ -5014,80 +5172,105 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: version "1.2.13" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.3.1: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + gensync@^1.0.0-beta.1: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.1: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + github-slugger@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== dependencies: emoji-regex ">=6.0.0 <=6.1.1" +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + glob-parent@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" @@ -5095,19 +5278,19 @@ glob-parent@^3.1.0: glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: version "5.1.1" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" glob-to-regexp@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.6" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" @@ -5118,22 +5301,22 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: path-is-absolute "^1.0.0" global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" + integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== dependencies: - ini "1.3.7" + ini "^1.3.5" global-modules@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: global-prefix "^3.0.0" global-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: ini "^1.3.5" @@ -5142,12 +5325,12 @@ global-prefix@^3.0.0: globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globby@8.0.2: version "8.0.2" - resolved "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== dependencies: array-union "^1.0.1" @@ -5160,7 +5343,7 @@ globby@8.0.2: globby@^10.0.1: version "10.0.2" - resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== dependencies: "@types/glob" "^7.1.1" @@ -5173,9 +5356,9 @@ globby@^10.0.1: slash "^3.0.0" globby@^11.0.1: - version "11.0.2" - resolved "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz" - integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" @@ -5186,7 +5369,7 @@ globby@^11.0.1: globby@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: array-union "^1.0.1" @@ -5197,14 +5380,14 @@ globby@^6.1.0: good-listener@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= dependencies: delegate "^3.1.2" got@^9.6.0: version "9.6.0" - resolved "https://registry.npmjs.org/got/-/got-9.6.0.tgz" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== dependencies: "@sindresorhus/is" "^0.14.0" @@ -5219,14 +5402,14 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.4" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== gray-matter@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.2.tgz#9aa379e3acaf421193fce7d2a28cebd4518ac454" integrity sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw== dependencies: js-yaml "^3.11.0" @@ -5234,9 +5417,14 @@ gray-matter@^4.0.2: section-matter "^1.0.0" strip-bom-string "^1.0.0" +gud@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" + integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== + gzip-size@5.1.1, gzip-size@^5.0.0: version "5.1.1" - resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== dependencies: duplexer "^0.1.1" @@ -5244,34 +5432,39 @@ gzip-size@5.1.1, gzip-size@^5.0.0: handle-thing@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-symbols@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + has-value@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" @@ -5280,7 +5473,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" @@ -5289,12 +5482,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" @@ -5302,19 +5495,19 @@ has-values@^1.0.0: has-yarn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== has@^1.0.0, has@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" @@ -5323,16 +5516,16 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" hast-to-hyperscript@^9.0.0: - version "9.0.1" - resolved "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz" - integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== + version "9.0.0" + resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.0.tgz#768fb557765fe28749169c885056417342d71e83" + integrity sha512-NJvMYU3GlMLs7hN3CRbsNlMzusVNkYBogVWDGybsuuVQ336gFLiD+q9qtFZT2meSHzln3pNISZWTASWothMSMg== dependencies: "@types/unist" "^2.0.3" comma-separated-tokens "^1.0.0" @@ -5344,7 +5537,7 @@ hast-to-hyperscript@^9.0.0: hast-util-from-parse5@^5.0.0: version "5.0.3" - resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz#3089dc0ee2ccf6ec8bc416919b51a54a589e097c" integrity sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA== dependencies: ccount "^1.0.3" @@ -5354,25 +5547,25 @@ hast-util-from-parse5@^5.0.0: xtend "^4.0.1" hast-util-from-parse5@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz" - integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== + version "6.0.0" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.0.tgz#b38793c81e1a99f5fd592a4a88fc2731dccd0f30" + integrity sha512-3ZYnfKenbbkhhNdmOQqgH10vnvPivTdsOJCri+APn0Kty+nRkDHArnaX9Hiaf8H+Ig+vkNptL+SRY/6RwWJk1Q== dependencies: "@types/parse5" "^5.0.0" - hastscript "^6.0.0" + ccount "^1.0.0" + hastscript "^5.0.0" property-information "^5.0.0" vfile "^4.0.0" - vfile-location "^3.2.0" web-namespaces "^1.0.0" hast-util-parse-selector@^2.0.0: - version "2.2.5" - resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz" - integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + version "2.2.4" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz#60c99d0b519e12ab4ed32e58f150ec3f61ed1974" + integrity sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA== hast-util-raw@6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== dependencies: "@types/hast" "^2.0.0" @@ -5388,7 +5581,7 @@ hast-util-raw@6.0.1: hast-util-to-parse5@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== dependencies: hast-to-hyperscript "^9.0.0" @@ -5399,7 +5592,7 @@ hast-util-to-parse5@^6.0.0: hastscript@^5.0.0: version "5.1.2" - resolved "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.1.2.tgz#bde2c2e56d04c62dd24e8c5df288d050a355fb8a" integrity sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ== dependencies: comma-separated-tokens "^1.0.0" @@ -5407,30 +5600,19 @@ hastscript@^5.0.0: property-information "^5.0.0" space-separated-tokens "^1.0.0" -hastscript@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz" - integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== - dependencies: - "@types/hast" "^2.0.0" - comma-separated-tokens "^1.0.0" - hast-util-parse-selector "^2.0.0" - property-information "^5.0.0" - space-separated-tokens "^1.0.0" - he@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== hex-color-regex@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== history@^4.9.0: version "4.10.1" - resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== dependencies: "@babel/runtime" "^7.1.2" @@ -5440,9 +5622,9 @@ history@^4.9.0: tiny-warning "^1.0.0" value-equal "^1.0.1" -hmac-drbg@^1.0.0, hmac-drbg@^1.0.1: +hmac-drbg@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" @@ -5451,19 +5633,19 @@ hmac-drbg@^1.0.0, hmac-drbg@^1.0.1: hoist-non-react-statics@^3.1.0: version "3.3.2" - resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" hoopy@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== hpack.js@^2.1.6: version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= dependencies: inherits "^2.0.1" @@ -5473,27 +5655,27 @@ hpack.js@^2.1.6: hsl-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= hsla-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= html-comment-regex@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" + integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== -html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: +html-minifier-terser@^5.0.1, html-minifier-terser@^5.0.5: version "5.1.1" - resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== dependencies: camel-case "^4.1.1" @@ -5506,32 +5688,32 @@ html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: html-tags@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== html-void-elements@^1.0.0: version "1.0.5" - resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== -html-webpack-plugin@^4.5.0: - version "4.5.1" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.1.tgz" - integrity sha512-yzK7RQZwv9xB+pcdHNTjcqbaaDZ+5L0zJHXfi89iWIZmb/FtzxhLk0635rmJihcQbs3ZUF27Xp4oWGx6EK56zg== +html-webpack-plugin@^4.0.4: + version "4.5.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c" + integrity sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw== dependencies: "@types/html-minifier-terser" "^5.0.0" "@types/tapable" "^1.0.5" "@types/webpack" "^4.41.8" html-minifier-terser "^5.0.1" loader-utils "^1.2.3" - lodash "^4.17.20" + lodash "^4.17.15" pretty-error "^2.1.1" tapable "^1.1.3" util.promisify "1.0.0" -htmlparser2@^3.10.1, htmlparser2@^3.9.1: +htmlparser2@^3.3.0, htmlparser2@^3.9.1: version "3.10.1" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== dependencies: domelementtype "^1.3.1" @@ -5543,17 +5725,17 @@ htmlparser2@^3.10.1, htmlparser2@^3.9.1: http-cache-semantics@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== http-deceiver@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= http-errors@1.7.2, http-errors@~1.7.2: version "1.7.2" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== dependencies: depd "~1.1.2" @@ -5564,7 +5746,7 @@ http-errors@1.7.2, http-errors@~1.7.2: http-errors@~1.6.2: version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" @@ -5572,14 +5754,9 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" -http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== - http-proxy-middleware@0.19.1: version "0.19.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== dependencies: http-proxy "^1.17.0" @@ -5589,7 +5766,7 @@ http-proxy-middleware@0.19.1: http-proxy@^1.17.0: version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" @@ -5598,91 +5775,98 @@ http-proxy@^1.17.0: https-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= human-signals@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== dependencies: postcss "^7.0.14" ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== iferr@^0.1.5: version "0.1.5" - resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore@^3.3.5: version "3.3.10" - resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== ignore@^5.1.1, ignore@^5.1.4: version "5.1.8" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== immer@1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== import-cwd@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= dependencies: import-from "^2.1.0" import-fresh@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" -import-fresh@^3.2.1, import-fresh@^3.2.2: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== +import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" import-from@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" integrity sha1-M1238qev/VOqpHHUuAId7ja387E= dependencies: resolve-from "^3.0.0" import-lazy@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= import-local@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== dependencies: pkg-dir "^3.0.0" @@ -5690,32 +5874,32 @@ import-local@^2.0.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== indexes-of@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== -infima@0.2.0-alpha.18: - version "0.2.0-alpha.18" - resolved "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.18.tgz" - integrity sha512-ndSEffXzjgM/eiSm5jpLTX6ON9MmylzxqBnV2bTiC3kCSyDYdvzTs+bSwf+C4TWayuqnRTnBK1JUePo3m6Bnfg== +infima@0.2.0-alpha.13: + version "0.2.0-alpha.13" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.13.tgz#2d28a4cf0af988abe804cdab34652df921201055" + integrity sha512-BxCZ1pMcUF0PcL4WV07l/lvaeBBdUUw7uVqNyyeGAutzDpkDyFOl5gOv9wFAJKLo5yerPNFXxFPgDitNjctqIA== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" @@ -5723,37 +5907,32 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= inherits@2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== inline-style-parser@0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== inquirer@7.0.4: version "7.0.4" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" integrity sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ== dependencies: ansi-escapes "^4.2.1" @@ -5772,7 +5951,7 @@ inquirer@7.0.4: inquirer@^7.2.0: version "7.3.3" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== dependencies: ansi-escapes "^4.2.1" @@ -5791,7 +5970,7 @@ inquirer@^7.2.0: internal-ip@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== dependencies: default-gateway "^4.2.0" @@ -5799,117 +5978,115 @@ internal-ip@^4.3.0: interpret@^1.0.0: version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== ip-regex@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: version "1.1.5" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-absolute-url@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= is-absolute-url@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== is-accessor-descriptor@^0.1.6: version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-alphabetical@1.0.4, is-alphabetical@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== is-alphanumerical@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== dependencies: is-alphabetical "^1.0.0" is-decimal "^1.0.0" is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== - dependencies: - call-bind "^1.0.0" + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-arrayish@^0.3.1: version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-binary-path@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" -is-buffer@^1.1.5: +is-buffer@^1.0.2, is-buffer@^1.1.5: version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-buffer@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" - integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== is-callable@^1.1.4, is-callable@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== is-ci@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== dependencies: ci-info "^2.0.0" is-color-stop@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= dependencies: css-color-names "^0.0.4" @@ -5919,40 +6096,40 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" -is-core-module@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== +is-core-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz#58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d" + integrity sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw== dependencies: has "^1.0.3" is-data-descriptor@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-decimal@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== is-descriptor@^0.1.0: version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" @@ -5961,7 +6138,7 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" @@ -5970,432 +6147,523 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-docker@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + is-glob@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" is-hexadecimal@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== is-installed-globally@^0.3.1: version "0.3.2" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== dependencies: global-dirs "^2.0.1" is-path-inside "^3.0.1" -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= is-npm@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + is-number@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== is-path-in-cwd@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== dependencies: is-path-inside "^2.1.0" is-path-inside@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== dependencies: path-is-inside "^1.0.2" is-path-inside@^3.0.1: version "3.0.2" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== is-plain-obj@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-obj@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + is-regex@^1.0.4, is-regex@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== dependencies: - call-bind "^1.0.2" has-symbols "^1.0.1" is-regexp@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= is-resolvable@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== is-root@2.1.0, is-root@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== -is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== is-svg@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== dependencies: html-comment-regex "^1.1.0" is-symbol@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: has-symbols "^1.0.1" is-typedarray@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-whitespace-character@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-word-character@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== is-wsl@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= is-wsl@^2.1.1: version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" is-yarn-global@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== isarray@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -jest-diff@^26.0.0, jest-diff@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz" - integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +jest-diff@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.3.tgz#81f288fd9e675f0fb23c75f1c2b19445fe586617" + integrity sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc= + dependencies: + chalk "^1.1.3" + diff "^3.2.0" + jest-matcher-utils "^20.0.3" + pretty-format "^20.0.3" + +jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== + dependencies: + chalk "^2.0.1" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-diff@^26.0.0: + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.1.tgz#38aa194979f454619bb39bdee299fb64ede5300c" + integrity sha512-BBNy/zin2m4kG5In126O8chOBxLLS/XMTuuM2+YhgyHk87ewPzKTuTJcqj3lOWOi03NNgrl+DkMeV/exdvG9gg== dependencies: chalk "^4.0.0" - diff-sequences "^26.6.2" + diff-sequences "^26.5.0" jest-get-type "^26.3.0" - pretty-format "^26.6.2" + pretty-format "^26.6.1" + +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== jest-get-type@^26.3.0: version "26.3.0" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-matcher-utils@^26.6.1, jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== +jest-matcher-utils@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz#b3a6b8e37ca577803b0832a98b164f44b7815612" + integrity sha1-s6a443yld4A7CDKpixZPRLeBVhI= dependencies: - chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" + chalk "^1.1.3" + pretty-format "^20.0.3" -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== +jest-matcher-utils@^24.8.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" - slash "^3.0.0" - stack-utils "^2.0.2" + chalk "^2.0.1" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" + +jest-matchers@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60" + integrity sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA= + dependencies: + jest-diff "^20.0.3" + jest-matcher-utils "^20.0.3" + jest-message-util "^20.0.3" + jest-regex-util "^20.0.3" + +jest-message-util@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.3.tgz#6aec2844306fcb0e6e74d5796c1006d96fdd831c" + integrity sha1-auwoRDBvyw5udNV5bBAG2W/dgxw= + dependencies: + chalk "^1.1.3" + micromatch "^2.3.11" + slash "^1.0.0" -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== +jest-regex-util@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762" + integrity sha1-hburXRM+RGJbGfr4xqpRItCF12I= jest-worker@^26.5.0: - version "26.6.2" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + version "26.6.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.1.tgz#c2ae8cde6802cc14056043f997469ec170d9c32a" + integrity sha512-R5IE3qSGz+QynJx8y+ICEkdI2OJ3RJjRQVEyCcFAd3yVhQSEtquziPO29Mlzgn07LOVE8u8jhJ1FqcwegiXWOw== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.0" -joi@^17.2.1, joi@^17.3.0: - version "17.4.0" - resolved "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz" - integrity sha512-F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.0" - "@sideway/formula" "^3.0.0" - "@sideway/pinpoint" "^2.0.0" - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-tokens@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= js-yaml@^3.11.0, js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== dependencies: argparse "^1.0.7" esprima "^4.0.0" jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= json-buffer@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json3@^3.3.3: +json3@^3.3.2: version "3.3.3" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== json5@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" json5@^2.1.2: - version "2.2.0" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== dependencies: minimist "^1.2.5" -jsonfile@^6.0.1: - 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" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" keyv@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== dependencies: json-buffer "3.0.0" killable@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== +kind-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= + dependencies: + is-buffer "^1.0.2" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== last-call-webpack-plugin@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== dependencies: lodash "^4.17.5" @@ -6403,41 +6671,51 @@ last-call-webpack-plugin@^3.0.0: latest-version@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== dependencies: package-json "^6.3.0" +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + leven@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== libsodium-wrappers@0.7.8, libsodium-wrappers@^0.7.8: version "0.7.8" - resolved "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz#d95cdf3e7236c2aef76844bf8e1929ba9eef3e9e" integrity sha512-PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg== dependencies: libsodium "0.7.8" libsodium@0.7.8: version "0.7.8" - resolved "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.8.tgz#fbd12247b7b1353f88d8de1cbc66bc1a07b2e008" integrity sha512-/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ== lines-and-columns@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= loader-runner@^2.4.0: version "2.4.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== loader-utils@1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== dependencies: big.js "^5.2.2" @@ -6446,7 +6724,7 @@ loader-utils@1.2.3: loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" @@ -6455,7 +6733,7 @@ loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: loader-utils@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== dependencies: big.js "^5.2.2" @@ -6464,7 +6742,7 @@ loader-utils@^2.0.0: locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -6472,149 +6750,149 @@ locate-path@^3.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" lodash._reinterpolate@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= lodash.assignin@^4.0.9: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= lodash.bind@^4.1.4: version "4.2.1" - resolved "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35" integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU= lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= lodash.chunk@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw= lodash.curry@^4.0.1: version "4.1.1" - resolved "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" integrity sha1-JI42By7ekGUB11lmIAqG2riyMXA= lodash.defaults@^4.0.1: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= lodash.filter@^4.4.0: version "4.6.0" - resolved "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= lodash.flatmap@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" integrity sha1-74y/QI9uSCaGYzRTBcaswLd4cC4= lodash.flatten@^4.2.0: version "4.4.0" - resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= lodash.flow@^3.3.0: version "3.5.0" - resolved "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" integrity sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o= lodash.foreach@^4.3.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= lodash.groupby@^4.6.0: version "4.6.0" - resolved "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" integrity sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E= lodash.has@^4.5.2: version "4.5.2" - resolved "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= lodash.isplainobject@^4.0.6: version "4.0.6" - resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= lodash.isstring@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= lodash.kebabcase@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= lodash.map@^4.4.0: version "4.6.0" - resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= lodash.memoize@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= lodash.merge@^4.4.0: version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.padstart@^4.6.1: version "4.6.1" - resolved "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs= lodash.pick@^4.2.1, lodash.pick@^4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= lodash.pickby@^4.6.0: version "4.6.0" - resolved "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" integrity sha1-feoh2MGNdwOifHBMFdO4SmfjOv8= lodash.reduce@^4.4.0: version "4.6.0" - resolved "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= lodash.reject@^4.4.0: version "4.6.0" - resolved "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415" integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU= lodash.some@^4.4.0: version "4.6.0" - resolved "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= lodash.sortby@^4.6.0, lodash.sortby@^4.7.0: version "4.7.0" - resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= lodash.template@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== dependencies: lodash._reinterpolate "^3.0.0" @@ -6622,111 +6900,116 @@ lodash.template@^4.5.0: lodash.templatesettings@^4.0.0: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== dependencies: lodash._reinterpolate "^3.0.0" lodash.toarray@^4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= lodash.uniq@4.5.0, lodash.uniq@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5, lodash@^4.5.2: version "4.17.20" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + version "1.7.0" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0" + integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== +lower-case@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7" + integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ== dependencies: - tslib "^2.0.3" + tslib "^1.10.0" lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" magic-string@^0.25.1, magic-string@^0.25.2: version "0.25.7" - resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== dependencies: sourcemap-codec "^1.4.4" make-dir@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" map-cache@^0.2.2: version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" markdown-escapes@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -6735,26 +7018,26 @@ md5.js@^1.3.4: mdast-squeeze-paragraphs@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== dependencies: unist-util-remove "^2.0.0" -mdast-util-definitions@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz" - integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== +mdast-util-definitions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-3.0.1.tgz#06af6c49865fc63d6d7d30125569e2f7ae3d0a86" + integrity sha512-BAv2iUm/e6IK/b2/t+Fx69EL/AGcq/IG2S+HxHjDJGfLJtd6i9SZUS76aC9cig+IEucsqxKTR0ot3m933R3iuA== dependencies: unist-util-visit "^2.0.0" -mdast-util-to-hast@10.0.1: - version "10.0.1" - resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz" - integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== +mdast-util-to-hast@9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-9.1.1.tgz#953ff12aed57464b11d7e5549a45913e561909fa" + integrity sha512-vpMWKFKM2mnle+YbNgDXxx95vv0CoLU0v/l3F5oFAG5DV7qwkZVWA206LsAdOnEVyf5vQcLnb3cWJywu7mUxsQ== dependencies: "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - mdast-util-definitions "^4.0.0" + "@types/unist" "^2.0.3" + mdast-util-definitions "^3.0.0" mdurl "^1.0.0" unist-builder "^2.0.0" unist-util-generated "^1.0.0" @@ -6763,32 +7046,32 @@ mdast-util-to-hast@10.0.1: mdast-util-to-string@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== +mdn-data@2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.12.tgz#bbb658d08b38f574bbb88f7b83703defdcc46844" + integrity sha512-ULbAlgzVb8IqZ0Hsxm6hHSlQl3Jckst2YEQS7fODu9ilNWy2LvcoSY7TRFIktABP2mdppBioc66va90T+NUs8Q== mdn-data@2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== mdurl@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= memory-fs@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" @@ -6796,40 +7079,68 @@ memory-fs@^0.4.1: memory-fs@^0.5.0: version "0.5.0" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== dependencies: errno "^0.1.3" readable-stream "^2.0.1" +merge-deep@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" + integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA== + dependencies: + arr-union "^3.1.0" + clone-deep "^0.2.4" + kind-of "^3.0.2" + merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.2.3, merge2@^1.3.0: version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== methods@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= microevent.ts@~0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== +micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" @@ -6848,7 +7159,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: micromatch@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== dependencies: braces "^3.0.1" @@ -6856,59 +7167,64 @@ micromatch@^4.0.2: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.45.0, "mime-db@>= 1.43.0 < 2": - version "1.45.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz" - integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== +mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== mime-db@~1.33.0: version "1.33.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== mime-types@2.1.18: version "2.1.18" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== dependencies: mime-db "~1.33.0" mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24: - version "2.1.28" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz" - integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ== + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== dependencies: - mime-db "1.45.0" + mime-db "1.44.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.4: - version "2.5.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz" - integrity sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag== + version "2.4.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + mini-create-react-context@^0.4.0: version "0.4.1" - resolved "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== dependencies: "@babel/runtime" "^7.12.1" @@ -6916,7 +7232,7 @@ mini-create-react-context@^0.4.0: mini-css-extract-plugin@^0.8.0: version "0.8.2" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz#a875e169beb27c88af77dd962771c9eedc3da161" integrity sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw== dependencies: loader-utils "^1.1.0" @@ -6926,57 +7242,57 @@ mini-css-extract-plugin@^0.8.0: minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: version "1.2.5" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: minipass "^3.0.0" minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== dependencies: minipass "^3.0.0" minipass-pipeline@^1.2.2: version "1.2.4" - resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.1: version "3.1.3" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== dependencies: yallist "^4.0.0" minizlib@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -6984,7 +7300,7 @@ minizlib@^2.1.1: mississippi@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== dependencies: concat-stream "^1.5.0" @@ -7000,27 +7316,40 @@ mississippi@^3.0.0: mixin-deep@^1.2.0: version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== move-concurrently@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= dependencies: aproba "^1.1.1" @@ -7032,27 +7361,27 @@ move-concurrently@^1.0.1: ms@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== ms@2.1.2, ms@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== multicast-dns-service-types@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= multicast-dns@^6.0.1: version "6.2.3" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== dependencies: dns-packet "^1.3.1" @@ -7060,22 +7389,27 @@ multicast-dns@^6.0.1: mute-stream@0.0.8: version "0.0.8" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.12.1: +nan@2.13.2: + version "2.13.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" + integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== + +nan@^2.12.1, nan@^2.14.0: version "2.14.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanoid@^3.1.10: - version "3.1.20" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz" - integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + version "3.1.16" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.16.tgz#b21f0a7d031196faf75314d7c65d36352beeef64" + integrity sha512-+AK8MN0WHji40lj8AEuwLOvLSbWYApQpre/aFJZD71r43wVRLrOYS4FmJOPQYon1TqB462RzrrxlfA74XRES8w== nanomatch@^1.2.9: version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" @@ -7090,49 +7424,74 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + negotiator@0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== neo-async@^2.5.0, neo-async@^2.6.1: version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== +no-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8" + integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw== dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" + lower-case "^2.0.1" + tslib "^1.10.0" + +node-abi@^2.18.0, node-abi@^2.7.0: + version "2.19.1" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz#6aa32561d0a5e2fdb6810d8c25641b657a8cea85" + integrity sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A== + dependencies: + semver "^5.4.1" node-emoji@^1.10.0: version "1.10.0" - resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== dependencies: lodash.toarray "^4.4.0" -node-fetch@2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" node-forge@^0.10.0: version "0.10.0" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== +node-hid@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-1.3.0.tgz#346a468505cee13d69ccd760052cbaf749f66a41" + integrity sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g== + dependencies: + bindings "^1.5.0" + nan "^2.14.0" + node-abi "^2.18.0" + prebuild-install "^5.3.4" + node-libs-browser@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== dependencies: assert "^1.1.1" @@ -7159,31 +7518,36 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^1.1.52, node-releases@^1.1.70: - version "1.1.70" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz" - integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== +node-releases@^1.1.52, node-releases@^1.1.61: + version "1.1.64" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.64.tgz#71b4ae988e9b1dd7c1ffce58dd9e561752dfebc5" + integrity sha512-Iec8O9166/x2HRMJyLLLWkd0sFFLrFNy+Xf+JQfSQsdBJzPcHpNl3JQ9gD4j+aJxmCa25jNsIbM4bmACtSbkSg== + +noop-logger@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" + integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= -normalize-path@^2.1.1: +normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= normalize-url@1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= dependencies: object-assign "^4.0.1" @@ -7193,43 +7557,53 @@ normalize-url@1.9.1: normalize-url@^3.0.0: version "3.3.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== normalize-url@^4.1.0: version "4.5.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== npm-run-path@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" npm-run-path@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" +npmlog@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + nprogress@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= nth-check@^1.0.2, nth-check@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" null-loader@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/null-loader/-/null-loader-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-3.0.0.tgz#3e2b6c663c5bda8c73a54357d8fa0708dc61b245" integrity sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw== dependencies: loader-utils "^1.2.3" @@ -7237,138 +7611,150 @@ null-loader@^3.0.0: num2fraction@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-copy@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.8.0, object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== +object-inspect@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== object-is@^1.0.1: - version "1.1.4" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz" - integrity sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg== + version "1.1.3" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81" + integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg== dependencies: - call-bind "^1.0.0" define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.0, object.assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd" + integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA== dependencies: - call-bind "^1.0.0" define-properties "^1.1.3" + es-abstract "^1.18.0-next.0" has-symbols "^1.0.1" object-keys "^1.1.1" object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz" - integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== dependencies: - call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + es-abstract "^1.17.0-next.1" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" object.pick@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" object.values@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz" - integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== dependencies: - call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" has "^1.0.3" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" on-headers@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" onetime@^5.1.0: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" open@^7.0.2: - version "7.4.0" - resolved "https://registry.npmjs.org/open/-/open-7.4.0.tgz" - integrity sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA== + version "7.3.0" + resolved "https://registry.yarnpkg.com/open/-/open-7.3.0.tgz#45461fdee46444f3645b6e14eb3ca94b82e1be69" + integrity sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw== dependencies: is-docker "^2.0.0" is-wsl "^2.1.1" opener@^1.5.1: version "1.5.2" - resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== opn@^5.5.0: version "5.5.0" - resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== dependencies: is-wsl "^1.1.0" -optimize-css-assets-webpack-plugin@^5.0.4: +optimize-css-assets-webpack-plugin@^5.0.3: version "5.0.4" - resolved "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== dependencies: cssnano "^4.1.10" @@ -7376,103 +7762,103 @@ optimize-css-assets-webpack-plugin@^5.0.4: original@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== dependencies: url-parse "^1.4.3" os-browserify@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-homedir@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= p-cancelable@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-finally@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + version "3.0.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" + integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== dependencies: - yocto-queue "^0.1.0" + p-try "^2.0.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-map@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== p-map@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== dependencies: aggregate-error "^3.0.0" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-retry@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== dependencies: retry "^0.12.0" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-json@^6.3.0: version "6.5.0" - resolved "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== dependencies: got "^9.6.0" @@ -7482,12 +7868,12 @@ package-json@^6.3.0: pako@~1.0.5: version "1.0.11" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parallel-transform@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== dependencies: cyclist "^1.0.1" @@ -7495,23 +7881,23 @@ parallel-transform@^1.1.0: readable-stream "^2.1.5" param-case@^3.0.3: - version "3.0.4" - resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + version "3.0.3" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238" + integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA== dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" + dot-case "^3.0.3" + tslib "^1.10.0" parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.6" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: asn1.js "^5.2.0" @@ -7522,7 +7908,7 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: parse-entities@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== dependencies: character-entities "^1.0.0" @@ -7532,134 +7918,144 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + parse-json@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" + integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== 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" -parse-numeric-range@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.2.0.tgz" - integrity sha512-1q2tXpAOplPxcl8vrIGPWz1dJxxfmdRkCFcpxxMBerDnGuuHalOWF/xj9L8Nn5XoTUoB/6F0CeQBp2fMgkOYFg== +parse-numeric-range@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz#b4f09d413c7adbcd987f6e9233c7b4b210c938e4" + integrity sha1-tPCdQTx6282Yf26SM8e0shDJOOQ= parse5@^5.0.0: version "5.1.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== parse5@^6.0.0: version "6.0.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== +pascal-case@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f" + integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA== dependencies: - no-case "^3.0.4" - tslib "^2.0.3" + no-case "^3.0.3" + tslib "^1.10.0" pascalcase@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-browserify@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== path-dirname@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@1.0.2, path-is-inside@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= path-to-regexp@2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== path-to-regexp@^1.7.0: version "1.8.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== dependencies: isarray "0.0.1" path-type@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: pify "^3.0.0" path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== dependencies: create-hash "^1.1.2" @@ -7670,67 +8066,67 @@ pbkdf2@^3.0.3, pbkdf2@^3.0.9, pbkdf2@^3.1.1: picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== pify@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pify@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= pkg-dir@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: find-up "^3.0.0" pkg-dir@^4.1.0: version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" pkg-up@3.1.0, pkg-up@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== dependencies: find-up "^3.0.0" pnp-webpack-plugin@^1.6.4: version "1.6.4" - resolved "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== dependencies: ts-pnp "^1.1.6" portfinder@^1.0.26: version "1.0.28" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== dependencies: async "^2.6.2" @@ -7739,12 +8135,12 @@ portfinder@^1.0.26: posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-attribute-case-insensitive@^4.0.1: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== dependencies: postcss "^7.0.2" @@ -7752,7 +8148,7 @@ postcss-attribute-case-insensitive@^4.0.1: postcss-calc@^7.0.1: version "7.0.5" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== dependencies: postcss "^7.0.27" @@ -7761,7 +8157,7 @@ postcss-calc@^7.0.1: postcss-color-functional-notation@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== dependencies: postcss "^7.0.2" @@ -7769,7 +8165,7 @@ postcss-color-functional-notation@^2.0.1: postcss-color-gray@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== dependencies: "@csstools/convert-colors" "^1.4.0" @@ -7778,7 +8174,7 @@ postcss-color-gray@^5.0.0: postcss-color-hex-alpha@^5.0.3: version "5.0.3" - resolved "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== dependencies: postcss "^7.0.14" @@ -7786,7 +8182,7 @@ postcss-color-hex-alpha@^5.0.3: postcss-color-mod-function@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== dependencies: "@csstools/convert-colors" "^1.4.0" @@ -7795,7 +8191,7 @@ postcss-color-mod-function@^3.0.3: postcss-color-rebeccapurple@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== dependencies: postcss "^7.0.2" @@ -7803,7 +8199,7 @@ postcss-color-rebeccapurple@^4.0.1: postcss-colormin@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== dependencies: browserslist "^4.0.0" @@ -7812,17 +8208,9 @@ postcss-colormin@^4.0.3: postcss "^7.0.0" postcss-value-parser "^3.0.0" -postcss-combine-duplicated-selectors@^9.1.0: - version "9.4.0" - resolved "https://registry.npmjs.org/postcss-combine-duplicated-selectors/-/postcss-combine-duplicated-selectors-9.4.0.tgz" - integrity sha512-rMnO1H3wgR1T6QSlK3i8Slz9p3xD+0yOi4J7qwh/5PGR3z8jbgYvRlNKAIvXDtGBQbJKoWs4df5skL3a/fdUEA== - dependencies: - postcss "^7.0.0" - postcss-selector-parser "^6.0.0" - postcss-convert-values@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== dependencies: postcss "^7.0.0" @@ -7830,14 +8218,14 @@ postcss-convert-values@^4.0.1: postcss-custom-media@^7.0.8: version "7.0.8" - resolved "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== dependencies: postcss "^7.0.14" postcss-custom-properties@^8.0.11: version "8.0.11" - resolved "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== dependencies: postcss "^7.0.17" @@ -7845,7 +8233,7 @@ postcss-custom-properties@^8.0.11: postcss-custom-selectors@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== dependencies: postcss "^7.0.2" @@ -7853,7 +8241,7 @@ postcss-custom-selectors@^5.1.2: postcss-dir-pseudo-class@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== dependencies: postcss "^7.0.2" @@ -7861,44 +8249,35 @@ postcss-dir-pseudo-class@^5.0.0: postcss-discard-comments@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== dependencies: postcss "^7.0.0" postcss-discard-duplicates@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== dependencies: postcss "^7.0.0" postcss-discard-empty@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== dependencies: postcss "^7.0.0" postcss-discard-overridden@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== dependencies: postcss "^7.0.0" -postcss-discard-unused@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-4.0.1.tgz" - integrity sha512-/3vq4LU0bLH2Lj4NYN7BTf2caly0flUB7Xtrk9a5K3yLuXMkHMqMO/x3sDq8W2b1eQFSCyY0IVz2L+0HP8kUUA== - dependencies: - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - uniqs "^2.0.0" - postcss-double-position-gradients@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== dependencies: postcss "^7.0.5" @@ -7906,7 +8285,7 @@ postcss-double-position-gradients@^1.0.0: postcss-env-function@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== dependencies: postcss "^7.0.2" @@ -7914,35 +8293,35 @@ postcss-env-function@^2.0.2: postcss-focus-visible@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== dependencies: postcss "^7.0.2" postcss-focus-within@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== dependencies: postcss "^7.0.2" postcss-font-variant@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== dependencies: postcss "^7.0.2" postcss-gap-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== dependencies: postcss "^7.0.2" postcss-image-set-function@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== dependencies: postcss "^7.0.2" @@ -7950,7 +8329,7 @@ postcss-image-set-function@^3.0.1: postcss-initial@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== dependencies: lodash.template "^4.5.0" @@ -7958,7 +8337,7 @@ postcss-initial@^3.0.0: postcss-lab-function@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== dependencies: "@csstools/convert-colors" "^1.4.0" @@ -7967,7 +8346,7 @@ postcss-lab-function@^2.0.1: postcss-load-config@^2.0.0: version "2.1.2" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== dependencies: cosmiconfig "^5.0.0" @@ -7975,7 +8354,7 @@ postcss-load-config@^2.0.0: postcss-loader@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== dependencies: loader-utils "^1.1.0" @@ -7985,31 +8364,21 @@ postcss-loader@^3.0.0: postcss-logical@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== dependencies: postcss "^7.0.2" postcss-media-minmax@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== dependencies: postcss "^7.0.2" -postcss-merge-idents@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-4.0.1.tgz" - integrity sha512-43S/VNdF6II0NZ31YxcvNYq4gfURlPAAsJW/z84avBXQCaP4I4qRHUH18slW/SOlJbcxxCobflPNUApYDddS7A== - dependencies: - cssnano-util-same-parent "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - postcss-merge-longhand@^4.0.11: version "4.0.11" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== dependencies: css-color-names "0.0.4" @@ -8019,7 +8388,7 @@ postcss-merge-longhand@^4.0.11: postcss-merge-rules@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== dependencies: browserslist "^4.0.0" @@ -8031,7 +8400,7 @@ postcss-merge-rules@^4.0.3: postcss-minify-font-values@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== dependencies: postcss "^7.0.0" @@ -8039,7 +8408,7 @@ postcss-minify-font-values@^4.0.2: postcss-minify-gradients@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== dependencies: cssnano-util-get-arguments "^4.0.0" @@ -8049,7 +8418,7 @@ postcss-minify-gradients@^4.0.2: postcss-minify-params@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== dependencies: alphanum-sort "^1.0.0" @@ -8061,7 +8430,7 @@ postcss-minify-params@^4.0.2: postcss-minify-selectors@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== dependencies: alphanum-sort "^1.0.0" @@ -8071,14 +8440,14 @@ postcss-minify-selectors@^4.0.2: postcss-modules-extract-imports@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== dependencies: postcss "^7.0.5" postcss-modules-local-by-default@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== dependencies: icss-utils "^4.1.1" @@ -8088,7 +8457,7 @@ postcss-modules-local-by-default@^3.0.2: postcss-modules-scope@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== dependencies: postcss "^7.0.6" @@ -8096,7 +8465,7 @@ postcss-modules-scope@^2.2.0: postcss-modules-values@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== dependencies: icss-utils "^4.0.0" @@ -8104,21 +8473,21 @@ postcss-modules-values@^3.0.0: postcss-nesting@^7.0.0: version "7.0.1" - resolved "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== dependencies: postcss "^7.0.2" postcss-normalize-charset@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== dependencies: postcss "^7.0.0" postcss-normalize-display-values@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== dependencies: cssnano-util-get-match "^4.0.0" @@ -8127,7 +8496,7 @@ postcss-normalize-display-values@^4.0.2: postcss-normalize-positions@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== dependencies: cssnano-util-get-arguments "^4.0.0" @@ -8137,7 +8506,7 @@ postcss-normalize-positions@^4.0.2: postcss-normalize-repeat-style@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== dependencies: cssnano-util-get-arguments "^4.0.0" @@ -8147,7 +8516,7 @@ postcss-normalize-repeat-style@^4.0.2: postcss-normalize-string@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== dependencies: has "^1.0.0" @@ -8156,7 +8525,7 @@ postcss-normalize-string@^4.0.2: postcss-normalize-timing-functions@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== dependencies: cssnano-util-get-match "^4.0.0" @@ -8165,7 +8534,7 @@ postcss-normalize-timing-functions@^4.0.2: postcss-normalize-unicode@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== dependencies: browserslist "^4.0.0" @@ -8174,7 +8543,7 @@ postcss-normalize-unicode@^4.0.1: postcss-normalize-url@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== dependencies: is-absolute-url "^2.0.0" @@ -8184,7 +8553,7 @@ postcss-normalize-url@^4.0.1: postcss-normalize-whitespace@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== dependencies: postcss "^7.0.0" @@ -8192,7 +8561,7 @@ postcss-normalize-whitespace@^4.0.2: postcss-ordered-values@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== dependencies: cssnano-util-get-arguments "^4.0.0" @@ -8201,21 +8570,21 @@ postcss-ordered-values@^4.1.2: postcss-overflow-shorthand@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== dependencies: postcss "^7.0.2" postcss-page-break@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== dependencies: postcss "^7.0.2" postcss-place@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== dependencies: postcss "^7.0.2" @@ -8223,7 +8592,7 @@ postcss-place@^4.0.1: postcss-preset-env@^6.7.0: version "6.7.0" - resolved "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== dependencies: autoprefixer "^9.6.1" @@ -8266,23 +8635,15 @@ postcss-preset-env@^6.7.0: postcss-pseudo-class-any-link@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== dependencies: postcss "^7.0.2" postcss-selector-parser "^5.0.0-rc.3" -postcss-reduce-idents@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-4.0.2.tgz" - integrity sha512-Tz70Ri10TclPoCtFfftjFVddx3fZGUkr0dEDbIEfbYhFUOFQZZ77TEqRrU0e6TvAvF+Wa5VVzYTpFpq0uwFFzw== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - postcss-reduce-initial@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== dependencies: browserslist "^4.0.0" @@ -8292,7 +8653,7 @@ postcss-reduce-initial@^4.0.3: postcss-reduce-transforms@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== dependencies: cssnano-util-get-match "^4.0.0" @@ -8302,30 +8663,30 @@ postcss-reduce-transforms@^4.0.2: postcss-replace-overflow-wrap@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== dependencies: postcss "^7.0.2" postcss-selector-matches@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== dependencies: balanced-match "^1.0.0" postcss "^7.0.2" postcss-selector-not@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz" - integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" + integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== dependencies: balanced-match "^1.0.0" postcss "^7.0.2" postcss-selector-parser@^3.0.0: version "3.1.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== dependencies: dot-prop "^5.2.0" @@ -8334,7 +8695,7 @@ postcss-selector-parser@^3.0.0: postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: version "5.0.0" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== dependencies: cssesc "^2.0.0" @@ -8343,7 +8704,7 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: version "6.0.4" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== dependencies: cssesc "^3.0.0" @@ -8351,17 +8712,9 @@ postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: uniq "^1.0.1" util-deprecate "^1.0.2" -postcss-sort-media-queries@^1.7.26: - version "1.31.21" - resolved "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-1.31.21.tgz" - integrity sha512-h+HbXXfOVFeLvCJOzl/Z9SqQ25MNpG/73k71756ftisaaJy75h06/Dn6KOwC4OCMN10ewT2PXMzHV03JNKwBbg== - dependencies: - postcss "^7.0.27" - sort-css-media-queries "1.5.0" - postcss-svgo@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== dependencies: is-svg "^3.0.0" @@ -8371,7 +8724,7 @@ postcss-svgo@^4.0.2: postcss-unique-selectors@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== dependencies: alphanum-sort "^1.0.0" @@ -8380,111 +8733,146 @@ postcss-unique-selectors@^4.0.1: postcss-value-parser@^3.0.0: version "3.3.1" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== dependencies: flatten "^1.0.2" indexes-of "^1.0.1" uniq "^1.0.1" -postcss-zindex@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-4.0.1.tgz" - integrity sha512-d/8BlQcUdEugZNRM9AdCA2V4fqREUtn/wcixLN3L6ITgc2P/FMcVVYz8QZkhItWT9NB5qr8wuN2dJCE4/+dlrA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: version "7.0.35" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== dependencies: chalk "^2.4.2" source-map "^0.6.1" supports-color "^6.1.0" +prebuild-install@^5.3.3, prebuild-install@^5.3.4: + version "5.3.6" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz#7c225568d864c71d89d07f8796042733a3f54291" + integrity sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^2.7.0" + noop-logger "^0.1.1" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + which-pm-runs "^1.0.0" + prepend-http@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= prepend-http@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + pretty-error@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== dependencies: lodash "^4.17.20" renderkid "^2.0.4" -pretty-format@^26.0.0, pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== +pretty-format@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14" + integrity sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ= dependencies: - "@jest/types" "^26.6.2" + ansi-regex "^2.1.1" + ansi-styles "^3.0.0" + +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== + dependencies: + "@jest/types" "^24.9.0" + ansi-regex "^4.0.0" + ansi-styles "^3.2.0" + react-is "^16.8.4" + +pretty-format@^26.0.0, pretty-format@^26.6.1: + version "26.6.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.1.tgz#af9a2f63493a856acddeeb11ba6bcf61989660a8" + integrity sha512-MeqqsP5PYcRBbGMvwzsyBdmAJ4EFX7pWFyl7x4+dMVg5pE0ZDdBIvEH2ergvIO+Gvwv1wh64YuOY9y5LuyY/GA== + dependencies: + "@jest/types" "^26.6.1" ansi-regex "^5.0.0" ansi-styles "^4.0.0" react-is "^17.0.1" pretty-time@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== -prism-react-renderer@^1.0.1, prism-react-renderer@^1.1.1: +prism-react-renderer@^1.0.1, prism-react-renderer@^1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.1.1.tgz#1c1be61b1eb9446a146ca7a50b7bcf36f2a70a44" integrity sha512-MgMhSdHuHymNRqD6KM3eGS0PNqgK9q4QF5P0yoQQvpB6jNjeSAi3jcSAz0Sua/t9fa4xDOMar9HJbLa08gl9ug== -prismjs@^1.22.0: - version "1.23.0" - resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.23.0.tgz" - integrity sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA== +prismjs@^1.20.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.22.0.tgz#73c3400afc58a823dd7eed023f8e1ce9fd8977fa" + integrity sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w== optionalDependencies: clipboard "^2.0.0" process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= promise@^7.1.1: version "7.3.1" - resolved "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== dependencies: asap "~2.0.3" prop-types@^15.5.0, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== dependencies: loose-envify "^1.4.0" @@ -8493,14 +8881,14 @@ prop-types@^15.5.0, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.2, property-information@^5.0.0, property-information@^5.3.0: version "5.6.0" - resolved "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== dependencies: xtend "^4.0.0" proxy-addr@~2.0.5: version "2.0.6" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== dependencies: forwarded "~0.1.2" @@ -8508,12 +8896,12 @@ proxy-addr@~2.0.5: prr@~1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= public-encrypt@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" @@ -8525,7 +8913,7 @@ public-encrypt@^4.0.0: pump@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" @@ -8533,7 +8921,7 @@ pump@^2.0.0: pump@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -8541,7 +8929,7 @@ pump@^3.0.0: pumpify@^1.3.3: version "1.5.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" @@ -8550,44 +8938,44 @@ pumpify@^1.3.3: punycode@1.3.2, punycode@^1.2.4, punycode@^1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== pupa@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== dependencies: escape-goat "^2.0.0" pure-color@^1.2.0: version "1.3.0" - resolved "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" integrity sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4= q@^1.1.2: version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qrcode-generator@1.4.4: version "1.4.4" - resolved "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/qrcode-generator/-/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7" integrity sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw== qs@6.7.0: version "6.7.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== query-string@^4.1.0: version "4.3.4" - resolved "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= dependencies: object-assign "^4.1.0" @@ -8595,34 +8983,38 @@ query-string@^4.1.0: querystring-es3@^0.2.0: version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= querystringify@^2.1.1: version "2.2.0" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -queue-microtask@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz" - integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" @@ -8630,17 +9022,17 @@ randomfill@^1.0.3: range-parser@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== raw-body@2.4.0: version "2.4.0" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== dependencies: bytes "3.1.0" @@ -8648,9 +9040,9 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8: +rc@^1.2.7, rc@^1.2.8: version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -8660,7 +9052,7 @@ rc@^1.2.8: react-base16-styling@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" integrity sha1-7yFW1mz0E5aVyKFniGy2nqZgeSw= dependencies: base16 "^1.0.0" @@ -8670,7 +9062,7 @@ react-base16-styling@^0.6.0: react-dev-utils@^10.2.1: version "10.2.1" - resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-10.2.1.tgz#f6de325ae25fa4d546d09df4bb1befdc6dd19c19" integrity sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ== dependencies: "@babel/code-frame" "7.8.3" @@ -8698,28 +9090,29 @@ react-dev-utils@^10.2.1: strip-ansi "6.0.0" text-table "0.2.0" -react-dom@^17.0.1: - version "17.0.1" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz" - integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== +react-dom@^16.13.1: + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" + integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - scheduler "^0.20.1" + prop-types "^15.6.2" + scheduler "^0.19.1" react-error-overlay@^6.0.7: - version "6.0.9" - resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz" - integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== + version "6.0.8" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.8.tgz#474ed11d04fc6bda3af643447d85e9127ed6b5de" + integrity sha512-HvPuUQnLp5H7TouGq3kzBeioJmXms1wHy9EGjz2OURWBp4qZO6AfGEcnxts1D/CbwPLRAgTMPCEgYhA3sEM4vw== react-fast-compare@^3.1.1: version "3.2.0" - resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== -react-helmet@^6.1.0: +react-helmet@^6.0.0-beta: version "6.1.0" - resolved "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== dependencies: object-assign "^4.1.1" @@ -8727,38 +9120,39 @@ react-helmet@^6.1.0: react-fast-compare "^3.1.1" react-side-effect "^2.1.0" -react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: +react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4: version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-is@^17.0.1: version "17.0.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== react-json-view@^1.19.1: - version "1.21.1" - resolved "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.1.tgz" - integrity sha512-AonvGea4nWlsnNXCbnSdUHsetyNS8rUMhbFHS9eFaDB1oeaxgHcVsqo5LhGRMvWybfDdjVUo0xzDoMQP7jbrXw== + version "1.19.1" + resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.19.1.tgz#95d8e59e024f08a25e5dc8f076ae304eed97cf5c" + integrity sha512-u5e0XDLIs9Rj43vWkKvwL8G3JzvXSl6etuS5G42a8klMohZuYFQzSN6ri+/GiBptDqlrXPTdExJVU7x9rrlXhg== dependencies: - flux "^4.0.1" + flux "^3.1.3" react-base16-styling "^0.6.0" react-lifecycles-compat "^3.0.4" react-textarea-autosize "^6.1.0" react-lifecycles-compat@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== -react-live@^2.2.3: - version "2.2.3" - resolved "https://registry.npmjs.org/react-live/-/react-live-2.2.3.tgz" - integrity sha512-tpKruvfytNETuzO3o1mrQUj180GVrq35IE8F5gH1NJVPt4szYCx83/dOSCOyjgRhhc3gQvl0pQ3k/CjOjwJkKQ== +react-live@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/react-live/-/react-live-2.2.2.tgz#834edf1c11204e49fa7468166316b2e70da1a6b0" + integrity sha512-kJYAzKnPsR4oXleAX9lLsJA330BhTmSWHhr3ienZA2E/0eFDRodGl3I7sge8pp1vjc2K5Aaz73KpFUnV7Lq/DQ== dependencies: buble "0.19.6" core-js "^2.4.1" + create-react-context "0.2.2" dom-iterator "^1.0.0" prism-react-renderer "^1.0.1" prop-types "^15.5.8" @@ -8767,28 +9161,28 @@ react-live@^2.2.3: react-loadable-ssr-addon@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/react-loadable-ssr-addon/-/react-loadable-ssr-addon-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon/-/react-loadable-ssr-addon-0.3.0.tgz#ae9b2d3b11721930f8d8255476d288c0e9f9290f" integrity sha512-E+lnmDakV0k6ut6R2J77vurwCOwTKEwKlHs9S62G8ez+ujecLPcqjt3YAU8M58kIGjp2QjFlZ7F9QWkq/mr6Iw== dependencies: "@babel/runtime" "^7.10.3" react-loadable@^5.5.0: version "5.5.0" - resolved "https://registry.npmjs.org/react-loadable/-/react-loadable-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/react-loadable/-/react-loadable-5.5.0.tgz#582251679d3da86c32aae2c8e689c59f1196d8c4" integrity sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg== dependencies: prop-types "^15.5.0" react-router-config@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== dependencies: "@babel/runtime" "^7.1.2" -react-router-dom@^5.2.0: +react-router-dom@^5.1.2: version "5.2.0" - resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== dependencies: "@babel/runtime" "^7.1.2" @@ -8799,9 +9193,9 @@ react-router-dom@^5.2.0: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@5.2.0, react-router@^5.2.0: +react-router@5.2.0, react-router@^5.1.2: version "5.2.0" - resolved "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== dependencies: "@babel/runtime" "^7.1.2" @@ -8816,40 +9210,41 @@ react-router@5.2.0, react-router@^5.2.0: tiny-warning "^1.0.0" react-side-effect@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz" - integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.0.tgz#1ce4a8b4445168c487ed24dab886421f74d380d3" + integrity sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg== react-simple-code-editor@^0.10.0: version "0.10.0" - resolved "https://registry.npmjs.org/react-simple-code-editor/-/react-simple-code-editor-0.10.0.tgz" + resolved "https://registry.yarnpkg.com/react-simple-code-editor/-/react-simple-code-editor-0.10.0.tgz#73e7ac550a928069715482aeb33ccba36efe2373" integrity sha512-bL5W5mAxSW6+cLwqqVWY47Silqgy2DKDTR4hDBrLrUqC5BXc29YVx17l2IZk5v36VcDEq1Bszu2oHm1qBwKqBA== react-textarea-autosize@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-6.1.0.tgz#df91387f8a8f22020b77e3833c09829d706a09a5" integrity sha512-F6bI1dgib6fSvG8so1HuArPUv+iVEfPliuLWusLF+gAKz0FbB4jLrWUrTAeq1afnPT2c9toEZYUdz/y1uKMy4A== dependencies: prop-types "^15.6.0" react-toggle@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/react-toggle/-/react-toggle-4.1.1.tgz#2317f67bf918ea3508a96b09dd383efd9da572af" integrity sha512-+wXlMcSpg8SmnIXauMaZiKpR+r2wp2gMUteroejp2UTSqGTVvZLN+m9EhMzFARBKEw7KpQOwzCyfzeHeAndQGw== dependencies: classnames "^2.2.5" -react@^17.0.1: - version "17.0.1" - resolved "https://registry.npmjs.org/react/-/react-17.0.1.tgz" - integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== +react@^16.13.1: + version "16.14.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" + integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" + prop-types "^15.6.2" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" @@ -8860,9 +9255,9 @@ react@^17.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" @@ -8871,7 +9266,7 @@ readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: readdirp@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" @@ -8880,73 +9275,80 @@ readdirp@^2.2.1: readdirp@~3.5.0: version "3.5.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" reading-time@^1.2.0: - version "1.3.0" - resolved "https://registry.npmjs.org/reading-time/-/reading-time-1.3.0.tgz" - integrity sha512-RJ8J5O6UvrclfZpcPSPuKusrdRfoY7uXXoYOOdeswZNtSkQaewT3919yz6RyloDBR+iwcUyz5zGOUjhgvfuv3g== + version "1.2.0" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.2.0.tgz#ced71c06715762f805506328dcc1fd45d8249ac4" + integrity sha512-5b4XmKK4MEss63y0Lw0vn0Zn6G5kiHP88mUnD8UeEsyORj3sh1ghTH0/u6m1Ax9G2F4wUZrknlp6WlIsCvoXVA== rechoir@^0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= dependencies: resolve "^1.1.6" recursive-readdir@2.2.2: version "2.2.2" - resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== dependencies: minimatch "3.0.4" regenerate-unicode-properties@^8.2.0: version "8.2.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + version "1.4.1" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" + integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== regenerator-runtime@^0.13.4: version "0.13.7" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regenerator-transform@^0.14.2: version "0.14.5" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== dependencies: "@babel/runtime" "^7.8.4" +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== + dependencies: + is-equal-shallow "^0.1.3" + regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" regexp.prototype.flags@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz" - integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== dependencies: - call-bind "^1.0.2" define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" regexpu-core@^4.2.0, regexpu-core@^4.5.4, regexpu-core@^4.7.1: version "4.7.1" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== dependencies: regenerate "^1.4.0" @@ -8957,34 +9359,34 @@ regexpu-core@^4.2.0, regexpu-core@^4.5.4, regexpu-core@^4.7.1: unicode-match-property-value-ecmascript "^1.2.0" registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" + integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== dependencies: rc "^1.2.8" registry-url@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== dependencies: rc "^1.2.8" regjsgen@^0.5.1: version "0.5.2" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== regjsparser@^0.6.4: - version "0.6.7" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz" - integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== dependencies: jsesc "~0.5.0" rehype-parse@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-6.0.2.tgz#aeb3fdd68085f9f796f1d3137ae2b85a98406964" integrity sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug== dependencies: hast-util-from-parse5 "^5.0.0" @@ -8993,12 +9395,12 @@ rehype-parse@^6.0.2: relateurl@^0.2.7: version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= remark-admonitions@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/remark-admonitions/-/remark-admonitions-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/remark-admonitions/-/remark-admonitions-1.2.1.tgz#87caa1a442aa7b4c0cafa04798ed58a342307870" integrity sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow== dependencies: rehype-parse "^6.0.2" @@ -9007,7 +9409,7 @@ remark-admonitions@^1.2.1: remark-emoji@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-2.1.0.tgz#69165d1181b98a54ad5d9ef811003d53d7ebc7db" integrity sha512-lDddGsxXURV01WS9WAiS9rO/cedO1pvr9tahtLhr6qCGFhHG4yZSJW3Ha4Nw9Uk1hLNmUBtPC0+m45Ms+xEitg== dependencies: emoticon "^3.2.0" @@ -9016,26 +9418,26 @@ remark-emoji@^2.1.0: remark-footnotes@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== -remark-mdx@1.6.22: - version "1.6.22" - resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz" - integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== +remark-mdx@1.6.19: + version "1.6.19" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.19.tgz#9f5330a6b151c40643ddda81714d45a751b158e0" + integrity sha512-UKK1CFatVPNhgjsIlNQ3GjVl3+6O7x7Hag6oyntFTg8s7sgq+rhWaSfM/6lW5UWU6hzkj520KYBuBlsaSriGtA== dependencies: - "@babel/core" "7.12.9" + "@babel/core" "7.11.6" "@babel/helper-plugin-utils" "7.10.4" - "@babel/plugin-proposal-object-rest-spread" "7.12.1" - "@babel/plugin-syntax-jsx" "7.12.1" - "@mdx-js/util" "1.6.22" + "@babel/plugin-proposal-object-rest-spread" "7.11.0" + "@babel/plugin-syntax-jsx" "7.10.4" + "@mdx-js/util" "1.6.19" is-alphabetical "1.0.4" remark-parse "8.0.3" unified "9.2.0" remark-parse@8.0.3: version "8.0.3" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== dependencies: ccount "^1.0.0" @@ -9057,102 +9459,107 @@ remark-parse@8.0.3: remark-squeeze-paragraphs@4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== dependencies: mdast-squeeze-paragraphs "^4.0.0" remove-trailing-separator@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= renderkid@^2.0.4: - version "2.0.5" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz" - integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.4.tgz#d325e532afb28d3f8796ffee306be8ffd6fc864c" + integrity sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g== dependencies: - css-select "^2.0.2" + css-select "^1.1.0" dom-converter "^0.2" - htmlparser2 "^3.10.1" + htmlparser2 "^3.3.0" lodash "^4.17.20" strip-ansi "^3.0.0" repeat-element@^1.1.2: version "1.1.3" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.5.4, repeat-string@^1.6.1: +repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +replace-ext@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= "require-like@>= 0.1.1": version "0.1.2" - resolved "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" integrity sha1-rW8wwTvs15cBDEaK+ndcDAprR/o= require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= resolve-cwd@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: resolve-from "^3.0.0" resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-pathname@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== resolve-url@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.3.2: - version "1.19.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== +resolve@^1.1.6, resolve@^1.3.2, resolve@^1.8.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== dependencies: - is-core-module "^2.1.0" + is-core-module "^2.0.0" path-parse "^1.0.6" responselike@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= dependencies: lowercase-keys "^1.0.0" restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -9160,46 +9567,46 @@ restore-cursor@^3.1.0: ret@~0.1.10: version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== retry@^0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= reusify@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rgb-regex@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= rgba-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" @@ -9207,76 +9614,80 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: run-async@^2.2.0, run-async@^2.4.0: version "2.4.1" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= dependencies: aproba "^1.1.1" rx-sandbox@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/rx-sandbox/-/rx-sandbox-1.0.4.tgz" - integrity sha512-+/9MHDYNoF9ca/2RR+L2LloXXeQyIR3k/wjK03IicrxxlbkhmKF4ejPiWeafMWDg7otF+pnX5NE/8v/rX6ICJA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/rx-sandbox/-/rx-sandbox-1.0.3.tgz#92556d1302fa916e3477afdbd3c4077a779bd330" + integrity sha512-plOYi1XYKYHI2xFa0oyWTLP60mHk6s4ggDhXPoKOfUMBdH6Zxz2ToH3Aa3Rk2Bf5B5V3tLGLJR8lVHfRyqx+Xw== dependencies: - expect "^26.6.1" - jest-matcher-utils "^26.6.1" + jest-matcher-utils "^24.8.0" + jest-matchers "^20.0.3" + tslib "^1.10.0" + +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= rxjs@^6.5.3, rxjs@^6.6.0, rxjs@^6.6.3: version "6.6.3" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== dependencies: tslib "^1.9.0" -safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sax@^1.2.4, sax@~1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -scheduler@^0.20.1: - version "0.20.1" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz" - integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw== +scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" schema-utils@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== dependencies: ajv "^6.1.0" @@ -9285,7 +9696,7 @@ schema-utils@^1.0.0: schema-utils@^2.0.0, schema-utils@^2.6.5, schema-utils@^2.7.0: version "2.7.1" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: "@types/json-schema" "^7.0.5" @@ -9294,7 +9705,7 @@ schema-utils@^2.0.0, schema-utils@^2.6.5, schema-utils@^2.7.0: schema-utils@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== dependencies: "@types/json-schema" "^7.0.6" @@ -9303,7 +9714,7 @@ schema-utils@^3.0.0: section-matter@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== dependencies: extend-shallow "^2.0.1" @@ -9311,53 +9722,46 @@ section-matter@^1.0.0: select-hose@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= select@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/select/-/select-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= -selfsigned@^1.10.8: +selfsigned@^1.10.7: version "1.10.8" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== dependencies: node-forge "^0.10.0" semver-diff@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== dependencies: semver "^6.3.0" semver@7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.4: - version "7.3.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - send@0.17.1: version "0.17.1" - resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== dependencies: debug "2.6.9" @@ -9376,21 +9780,21 @@ send@0.17.1: serialize-javascript@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== dependencies: randombytes "^2.1.0" serialize-javascript@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== dependencies: randombytes "^2.1.0" serve-handler@^6.1.3: version "6.1.3" - resolved "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.3.tgz#1bf8c5ae138712af55c758477533b9117f6435e8" integrity sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w== dependencies: bytes "3.0.0" @@ -9404,7 +9808,7 @@ serve-handler@^6.1.3: serve-index@^1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= dependencies: accepts "~1.3.4" @@ -9417,7 +9821,7 @@ serve-index@^1.9.1: serve-static@1.14.1: version "1.14.1" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== dependencies: encodeurl "~1.0.2" @@ -9425,14 +9829,14 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" @@ -9442,59 +9846,69 @@ set-value@^2.0.0, set-value@^2.0.1: setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= setprototypeof@1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== setprototypeof@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@1.7.2: version "1.7.2" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== shelljs@^0.8.4: version "0.8.4" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== dependencies: glob "^7.0.0" @@ -9503,19 +9917,33 @@ shelljs@^0.8.4: signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-swizzle@^0.2.2: version "0.2.2" - resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= dependencies: is-arrayish "^0.3.1" sitemap@^3.2.2: version "3.2.2" - resolved "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-3.2.2.tgz#3f77c358fa97b555c879e457098e39910095c62b" integrity sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg== dependencies: lodash.chunk "^4.2.0" @@ -9525,17 +9953,17 @@ sitemap@^3.2.2: slash@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== snapdragon-node@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" @@ -9544,14 +9972,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" @@ -9563,47 +9991,42 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz" - integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== dependencies: - debug "^3.2.6" + debug "^3.2.5" eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.4.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" -sockjs@^0.3.21: - version "0.3.21" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz" - integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== +sockjs@0.3.20: + version "0.3.20" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" + integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== dependencies: - faye-websocket "^0.11.3" + faye-websocket "^0.10.0" uuid "^3.4.0" - websocket-driver "^0.7.4" - -sort-css-media-queries@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-1.5.0.tgz" - integrity sha512-QofNE7CEVH1AKdhS7L9IPbV9UtyQYNXyw++8lC+xG6iOLlpzsmncZRiKbihTAESvZ8wOhwnPoesHbMrehrQyyw== + websocket-driver "0.6.5" sort-keys@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= dependencies: is-plain-obj "^1.0.0" source-list-map@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: atob "^2.1.2" @@ -9614,45 +10037,45 @@ source-map-resolve@^0.5.0: source-map-support@~0.5.12, source-map-support@~0.5.19: version "0.5.19" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== sourcemap-codec@^1.4.4: version "1.4.8" - resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== space-separated-tokens@^1.0.0: version "1.1.5" - resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== spdy-transport@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: debug "^4.1.0" @@ -9664,7 +10087,7 @@ spdy-transport@^3.0.0: spdy@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== dependencies: debug "^4.1.0" @@ -9675,50 +10098,43 @@ spdy@^4.0.2: split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= ssri@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== dependencies: figgy-pudding "^3.5.1" ssri@^8.0.0: - version "8.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + version "8.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" + integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== dependencies: minipass "^3.1.1" stable@^0.1.8: version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stack-utils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz" - integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== - dependencies: - escape-string-regexp "^2.0.0" - state-toggle@^1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== static-extend@^0.1.1: version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" @@ -9726,19 +10142,19 @@ static-extend@^0.1.1: "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= std-env@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/std-env/-/std-env-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.2.1.tgz#2ffa0fdc9e2263e0004c1211966e960948a40f6b" integrity sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ== dependencies: ci-info "^1.6.0" stream-browserify@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== dependencies: inherits "~2.0.1" @@ -9746,7 +10162,7 @@ stream-browserify@^2.0.1: stream-each@^1.1.0: version "1.2.3" - resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: end-of-stream "^1.1.0" @@ -9754,7 +10170,7 @@ stream-each@^1.1.0: stream-http@^2.7.2: version "2.8.3" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== dependencies: builtin-status-codes "^3.0.0" @@ -9765,17 +10181,34 @@ stream-http@^2.7.2: stream-shift@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== strict-uri-encode@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" @@ -9784,46 +10217,46 @@ string-width@^3.0.0, string-width@^3.1.0: string-width@^4.0.0, string-width@^4.1.0: version "4.2.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz" - integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== +string.prototype.trimend@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46" + integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw== dependencies: - call-bind "^1.0.0" define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" -string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz" - integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== +string.prototype.trimstart@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7" + integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg== dependencies: - call-bind "^1.0.0" define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" stringify-object@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== dependencies: get-own-enumerable-property-symbols "^3.0.0" @@ -9832,55 +10265,62 @@ stringify-object@^3.3.0: strip-ansi@6.0.0, strip-ansi@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: ansi-regex "^5.0.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" strip-bom-string@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= strip-eof@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= style-to-object@0.3.0, style-to-object@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== dependencies: inline-style-parser "0.1.1" stylehacks@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== dependencies: browserslist "^4.0.0" @@ -9889,38 +10329,38 @@ stylehacks@^4.0.0: supports-color@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: has-flag "^3.0.0" supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" svg-parser@^2.0.2: version "2.0.4" - resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== svgo@^1.0.0, svgo@^1.2.2: version "1.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== dependencies: chalk "^2.4.1" @@ -9939,13 +10379,34 @@ svgo@^1.0.0, svgo@^1.2.2: tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tar-fs@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5" + integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-stream@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa" + integrity sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + tar@^6.0.2: - version "6.1.0" - resolved "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + version "6.0.5" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -9956,12 +10417,12 @@ tar@^6.0.2: term-size@^2.1.0: version "2.2.1" - resolved "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== terser-webpack-plugin@^1.4.3: version "1.4.5" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== dependencies: cacache "^12.0.2" @@ -9976,7 +10437,7 @@ terser-webpack-plugin@^1.4.3: terser-webpack-plugin@^4.1.0: version "4.2.3" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== dependencies: cacache "^15.0.5" @@ -9991,7 +10452,7 @@ terser-webpack-plugin@^4.1.0: terser@^4.1.2, terser@^4.6.3: version "4.8.0" - resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== dependencies: commander "^2.20.0" @@ -9999,9 +10460,9 @@ terser@^4.1.2, terser@^4.6.3: source-map-support "~0.5.12" terser@^5.3.4: - version "5.5.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz" - integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== + version "5.3.8" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.8.tgz#991ae8ba21a3d990579b54aa9af11586197a75dd" + integrity sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -10009,12 +10470,12 @@ terser@^5.3.4: text-table@0.2.0, text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= through2@^2.0.0: version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" @@ -10022,73 +10483,73 @@ through2@^2.0.0: through@^2.3.6: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= thunky@^1.0.2: version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== timers-browserify@^2.0.4: version "2.0.12" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" timsort@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-emitter@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== tiny-invariant@^1.0.2: version "1.1.0" - resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== tiny-warning@^1.0.0, tiny-warning@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== tmp@^0.0.33: version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-arraybuffer@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-readable-stream@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== to-regex-range@^2.1.0: version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" @@ -10096,14 +10557,14 @@ to-regex-range@^2.1.0: to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" @@ -10113,69 +10574,71 @@ to-regex@^3.0.1, to-regex@^3.0.2: toidentifier@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== tr46@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= dependencies: punycode "^2.1.0" trim-trailing-lines@^1.0.0: version "1.1.4" - resolved "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== trim@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= trough@^1.0.0: version "1.0.5" - resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== tryer@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== ts-pnp@^1.1.6: version "1.2.0" - resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== -tslib@^1.9.0: +tslib@^1.10.0, tslib@^1.9.0: version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3: - version "2.1.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== - tty-browserify@0.0.0: version "0.0.0" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + type-fest@^0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== type-fest@^0.8.1: version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" @@ -10183,41 +10646,36 @@ type-is@~1.6.17, type-is@~1.6.18: typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.1.5: - version "4.1.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz" - integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA== - u2f-api@0.2.7: version "0.2.7" - resolved "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz" + resolved "https://registry.yarnpkg.com/u2f-api/-/u2f-api-0.2.7.tgz#17bf196b242f6bf72353d9858e6a7566cc192720" integrity sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg== ua-parser-js@^0.7.18: - version "0.7.23" - resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.23.tgz" - integrity sha512-m4hvMLxgGHXG3O3fQVAyyAQpZzDOvwnhOTjYz5Xmr7r/+LpkNy3vJXdVRWgd1TkAb7NGROZuSy96CrlNVjA7KA== + version "0.7.22" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" + integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== unescape@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/unescape/-/unescape-1.0.1.tgz#956e430f61cad8a4d57d82c518f5e6cc5d0dda96" integrity sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ== dependencies: extend-shallow "^2.0.1" unherit@^1.0.4: version "1.1.3" - resolved "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== dependencies: inherits "^2.0.0" @@ -10225,12 +10683,12 @@ unherit@^1.0.4: unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== unicode-match-property-ecmascript@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== dependencies: unicode-canonical-property-names-ecmascript "^1.0.4" @@ -10238,17 +10696,17 @@ unicode-match-property-ecmascript@^1.0.4: unicode-match-property-value-ecmascript@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== unicode-property-aliases-ecmascript@^1.0.4: version "1.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== unified@9.2.0: version "9.2.0" - resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== dependencies: bail "^1.0.0" @@ -10260,7 +10718,7 @@ unified@9.2.0: unified@^8.4.2: version "8.4.2" - resolved "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz" + resolved "https://registry.yarnpkg.com/unified/-/unified-8.4.2.tgz#13ad58b4a437faa2751a4a4c6a16f680c500fff1" integrity sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA== dependencies: bail "^1.0.0" @@ -10271,7 +10729,7 @@ unified@^8.4.2: union-value@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" @@ -10281,79 +10739,79 @@ union-value@^1.0.0: uniq@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= uniqs@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" unique-string@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== dependencies: crypto-random-string "^2.0.0" unist-builder@2.0.3, unist-builder@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== unist-util-generated@^1.0.0: - version "1.1.6" - resolved "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz" - integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + version "1.1.5" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.5.tgz#1e903e68467931ebfaea386dae9ea253628acd42" + integrity sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw== unist-util-is@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.4.tgz" - integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.2.tgz#c7d1341188aa9ce5b3cff538958de9895f14a5de" + integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ== unist-util-position@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== unist-util-remove-position@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== dependencies: unist-util-visit "^2.0.0" unist-util-remove@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.0.1.tgz" - integrity sha512-YtuetK6o16CMfG+0u4nndsWpujgsHDHHLyE0yGpJLLn5xSjKeyGyzEBOI2XbmoUHCYabmNgX52uxlWoQhcvR7Q== + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.0.0.tgz#32c2ad5578802f2ca62ab808173d505b2c898488" + integrity sha512-HwwWyNHKkeg/eXRnE11IpzY8JT55JNM1YCwwU9YNCnfzk6s8GhPXrVBBZWiwLeATJbI7euvoGSzcy9M29UeW3g== dependencies: unist-util-is "^4.0.0" unist-util-stringify-position@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== dependencies: "@types/unist" "^2.0.2" unist-util-visit-parents@^3.0.0: version "3.1.1" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== dependencies: "@types/unist" "^2.0.0" @@ -10361,31 +10819,31 @@ unist-util-visit-parents@^3.0.0: unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.1, unist-util-visit@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== dependencies: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" unist-util-visit-parents "^3.0.0" -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= unquote@~1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= unset-value@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" @@ -10393,12 +10851,12 @@ unset-value@^1.0.0: upath@^1.1.1: version "1.2.0" - resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== update-notifier@^4.1.0: version "4.1.3" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== dependencies: boxen "^4.2.0" @@ -10416,20 +10874,20 @@ update-notifier@^4.1.0: xdg-basedir "^4.0.0" uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-loader@^4.1.1: +url-loader@^4.1.0: version "4.1.1" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== dependencies: loader-utils "^2.0.0" @@ -10438,14 +10896,14 @@ url-loader@^4.1.1: url-parse-lax@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= dependencies: prepend-http "^2.0.0" -url-parse@^1.4.3, url-parse@^1.4.7: +url-parse@^1.4.3: version "1.4.7" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== dependencies: querystringify "^2.1.1" @@ -10453,25 +10911,34 @@ url-parse@^1.4.3, url-parse@^1.4.7: url@^0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" querystring "0.2.0" +usb@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/usb/-/usb-1.6.3.tgz#c0bc14994e8f9cb16f9602ec0dbadaa57cb919f5" + integrity sha512-23KYMjaWydACd8wgGKMQ4MNwFspAT6Xeim4/9Onqe5Rz/nMb4TM/WHL+qPT0KNFxzNKzAs63n1xQWGEtgaQ2uw== + dependencies: + bindings "^1.4.0" + nan "2.13.2" + prebuild-install "^5.3.3" + use@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== dependencies: define-properties "^1.1.2" @@ -10479,7 +10946,7 @@ util.promisify@1.0.0: util.promisify@~1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== dependencies: define-properties "^1.1.3" @@ -10489,135 +10956,134 @@ util.promisify@~1.0.0: util@0.10.3: version "0.10.3" - resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" util@^0.11.0: version "0.11.1" - resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== dependencies: inherits "2.0.3" utila@~0.4: version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= utility-types@^3.10.0: version "3.10.0" - resolved "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== value-equal@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== vary@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vendors@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== -vfile-location@^3.0.0, vfile-location@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz" - integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== +vfile-location@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.1.0.tgz#81cd8a04b0ac935185f4fce16f270503fc2f692f" + integrity sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g== vfile-message@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" vfile@^4.0.0: - version "4.2.1" - resolved "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz" - integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + version "4.2.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.0.tgz#26c78ac92eb70816b01d4565e003b7e65a2a0e01" + integrity sha512-a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" + replace-ext "1.0.0" unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" vlq@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468" integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w== vm-browserify@^1.0.1: version "1.1.2" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -wait-on@^5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/wait-on/-/wait-on-5.2.1.tgz" - integrity sha512-H2F986kNWMU9hKlI9l/ppO6tN8ZSJd35yBljMLa1/vjzWP++Qh6aXyt77/u7ySJFZQqBtQxnvm/xgG48AObXcw== +wait-file@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/wait-file/-/wait-file-1.0.5.tgz#377f48795f1765046a41bb0671c142ef8e509ae6" + integrity sha512-udLpJY/eOxlrMm3+XD1RLuF2oT9B7J7wiyR5/9xrvQymS6YR6trWvVhzOldHrVbLwyiRmLj9fcvsjzpSXeZHkw== dependencies: - axios "^0.21.1" - joi "^17.3.0" - lodash "^4.17.20" - minimist "^1.2.5" - rxjs "^6.6.3" + "@hapi/joi" "^15.1.0" + fs-extra "^8.1.0" + rx "^4.1.0" -watchpack-chokidar2@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz" - integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== dependencies: chokidar "^2.1.8" watchpack@^1.7.4: - version "1.7.5" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz" - integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + version "1.7.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.1" + watchpack-chokidar2 "^2.0.0" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== dependencies: minimalistic-assert "^1.0.0" web-namespaces@^1.0.0, web-namespaces@^1.1.2: version "1.1.4" - resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== webidl-conversions@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== webpack-bundle-analyzer@^3.6.1: version "3.9.0" - resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA== dependencies: acorn "^7.1.1" @@ -10635,9 +11101,9 @@ webpack-bundle-analyzer@^3.6.1: ws "^6.0.0" webpack-dev-middleware@^3.7.2: - version "3.7.3" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz" - integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== dependencies: memory-fs "^0.4.1" mime "^2.4.4" @@ -10646,9 +11112,9 @@ webpack-dev-middleware@^3.7.2: webpack-log "^2.0.0" webpack-dev-server@^3.11.0: - version "3.11.2" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz" - integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" + integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -10670,11 +11136,11 @@ webpack-dev-server@^3.11.0: p-retry "^3.0.1" portfinder "^1.0.26" schema-utils "^1.0.0" - selfsigned "^1.10.8" + selfsigned "^1.10.7" semver "^6.3.0" serve-index "^1.9.1" - sockjs "^0.3.21" - sockjs-client "^1.5.0" + sockjs "0.3.20" + sockjs-client "1.4.0" spdy "^4.0.2" strip-ansi "^3.0.1" supports-color "^6.1.0" @@ -10686,7 +11152,7 @@ webpack-dev-server@^3.11.0: webpack-log@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== dependencies: ansi-colors "^3.0.0" @@ -10694,23 +11160,23 @@ webpack-log@^2.0.0: webpack-merge@^4.2.2: version "4.2.2" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== dependencies: lodash "^4.17.15" webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" webpack@^4.44.1: - version "4.46.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -10720,7 +11186,7 @@ webpack@^4.44.1: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" + enhanced-resolve "^4.3.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -10738,7 +11204,7 @@ webpack@^4.44.1: webpackbar@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/webpackbar/-/webpackbar-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-4.0.0.tgz#ee7a87f16077505b5720551af413c8ecd5b1f780" integrity sha512-k1qRoSL/3BVuINzngj09nIwreD8wxV4grcuhHTD8VJgUbGcy8lQSPqv+bM00B7F+PffwIsQ8ISd4mIwRbr23eQ== dependencies: ansi-escapes "^4.2.1" @@ -10750,23 +11216,26 @@ webpackbar@^4.0.0: text-table "^0.2.0" wrap-ansi "^6.0.0" -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: - version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" - integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== +websocket-driver@0.6.5, websocket-driver@>=0.5.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= dependencies: - http-parser-js ">=0.5.1" - safe-buffer ">=5.1.0" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: version "0.1.4" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +whatwg-fetch@>=0.10.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz#e5f871572d6879663fa5674c8f833f15a8425ab3" + integrity sha512-sofZVzE1wKwO+EYPbWfiwzaKovWiZXf4coEzjGP9b2GBVgQRLQUZ2QcuPpQExGDAW5GItpEm6Tl4OU5mywnAoQ== + whatwg-url@^7.0.0: version "7.1.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== dependencies: lodash.sortby "^4.7.0" @@ -10775,47 +11244,59 @@ whatwg-url@^7.0.0: which-module@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + which@^1.2.9, which@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + widest-line@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: string-width "^4.0.0" worker-farm@^1.7.0: version "1.7.0" - resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" worker-rpc@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== dependencies: microevent.ts "~0.1.1" wrap-ansi@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== dependencies: ansi-styles "^3.2.0" @@ -10824,7 +11305,7 @@ wrap-ansi@^5.1.0: wrap-ansi@^6.0.0: version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -10833,12 +11314,12 @@ wrap-ansi@^6.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^3.0.0: version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -10848,63 +11329,63 @@ write-file-atomic@^3.0.0: ws@^6.0.0, ws@^6.2.1: version "6.2.1" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== dependencies: async-limiter "~1.0.0" xdg-basedir@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== xhr2-cookies@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= dependencies: cookiejar "^2.1.1" xml-js@^1.6.11: version "1.6.11" - resolved "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== dependencies: sax "^1.2.4" xmlbuilder@^13.0.0: version "13.0.2" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-13.0.2.tgz#02ae33614b6a047d1c32b5389c1fdacb2bce47a7" integrity sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ== xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0: +yaml@^1.7.2: version "1.10.0" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== yargs-parser@^13.1.2: version "13.1.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" @@ -10912,7 +11393,7 @@ yargs-parser@^13.1.2: yargs@^13.3.2: version "13.3.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" @@ -10926,12 +11407,7 @@ yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - zwitch@^1.0.0: version "1.0.5" - resolved "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==